1.1 现象
假设我们访问后台的请求地址为:http://localhost:9101/admin/index.html
1.2 问题
现在访问的路径:http://127.0.0.1:9101/admin/index.html
存在的问题开发环境和测试环境的ip不一样,每次环境变化时,都需要修改访问地址。页面加载资源文件,有可能使用url的全路径,一旦更换了环境(ip变了),资源文件则无法加载。ip地址没有记忆的意义,不容易记忆,用户不通过ip访问,一般通过域名访问。
1.3 域名访问
可以修改windows/system32/drivers/etc/hosts文件,实现域名和ip地址的映射。
使用域名访问后的流程为:
1.4 SwitchHosts工具
手动修改hosts文件,如果以后ip多了,配置和切换都比较麻烦;一般可以使用工具进行管理。而SwitchHosts则可以管理hosts文件。百度网盘下载链接:/s/1YiDQU27s2Iis3QGNyLVe-w提取码:5mc3
以管理员模式运行SwitchHosts工具
问题:ip不用输入了,但是端口还在。可使用nginx解决。
2.Nginx反向代理服务器
2.1 Nginx简介
Nginx(“engine x”)是一个高性能的HTTP和反向代理服务器;可实现负载均衡;Rewrite功能强大;电商架构大部分都采用Nginx+Tomcat的架构;
反向代理(Reverse proxy)方式是指以代理服务器来接受Internet上的连接请求,然后将请求转发给内部网络上的服务器,并将服务器上得到的结果返回给internet上请求连接的客户端,此时代理服务器对外就表现为一个反向代理服务器。
2.2安装与命令
拷贝 “nginx-1.11.13.zip”到任意一个磁盘路径解压,解压路径不能包含中文。
用cmd进入nginx解压所在的根目录:
启动: start nginx停止:nginx -s stop重新启动:nginx -s reload
注意:启动nginx后在任务管理器中要能看到两个nginx服务启动才是正确的。
如果启动报错,查看日志文件发现80端口被占用;可以使用命令netstat -ano命令查看端口占用情况。再打开任务管理器,查看pid然后停止程序即可。
netstat -ano|findstr "80"
2.3 相关配置
修改“nginx-1.11.13\conf\nginx.conf”文件,配置内部服务器:
对于运营商后台管理系统,可以添加如下nginx完整配置:
#user nobody;worker_processes 1;#error_log logs/error.log;#error_log logs/error.log notice;#error_log logs/error.log info;#pid logs/nginx.pid;events {worker_connections 1024;}http {include mime.types;default_type application/octet-stream;#log_format main '$remote_addr - $remote_user [$time_local] "$request" '# '$status $body_bytes_sent "$http_referer" '# '"$http_user_agent" "$http_x_forwarded_for"';#access_log logs/access.log main;sendfile on;#tcp_nopushon;#keepalive_timeout 0;keepalive_timeout 65;gzip on;server {listen 80;server_name ;proxy_set_header X-Forwarded-Host $host;proxy_set_header X-Forwarded-Server $host;location / {proxy_pass http://127.0.0.1:9101;proxy_connect_timeout 600;proxy_read_timeout 600;} }}
请求地址:/admin/index.html