下载安装windows下的nginx
官网下载
添加本机host域名
安装switchhosts.exe工具,更换本机域名
管理员模式打开,添加两个test中本机域名并确认。
配置nginx
- 修改配置文件 conf/nginx.conf
#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_nopush on;
#keepalive_timeout 0;
keepalive_timeout 65;
#gzip on;
#设置反向代理1
upstream wptweb.test{#wptweb.test和下文server中对应
server 192.168.0.169:80;#被代理的web1的实际地址(域名)和端口
}
#设置反向代理2
upstream zsfzlab.tpddns.test{#zsfzlab.tpddns.test和下文server中对应
server zsfzlab.tpddns.cn:8888;#被代理的web2的实际地址(域名)和端口
}
#配置要代理的服务器信息1
#192.168.0.169
server{
#监听的端口
listen 80;#需要连接的web服务器端口
#通过什么域名访问服务器
server_name wptweb.com;#设置的本机host域名
location /{
# 设置代理
proxy_pass http://wptweb.test;#proxy_pass后面的只需要是http://(随意名字和上面upstream中对应就可以)
}
}
#配置要代理的服务器信息2
#192.168.1.106
server{
listen 8888;
server_name zsfzweb.com;
location /{
proxy_pass http://zsfzlab.tpddns.test;
}
}
# another virtual host using mix of IP-, name-, and port-based configuration
#
#server {
# listen 8000;
# listen somename:8080;
# server_name somename alias another.alias;
# location / {
# root html;
# index index.html index.htm;
# }
#}
# HTTPS server
#
#server {
# listen 443 ssl;
# server_name localhost;
# ssl_certificate cert.pem;
# ssl_certificate_key cert.key;
# ssl_session_cache shared:SSL:1m;
# ssl_session_timeout 5m;
# ssl_ciphers HIGH:!aNULL:!MD5;
# ssl_prefer_server_ciphers on;
# location / {
# root html;
# index index.html index.htm;
# }
#}
}
启动nginx&重启nginx加载配置文件
- 在这个目录下打开shift+鼠标右键打开powershell命令窗口
启动nginx:在命令窗口中启动nginx
./nginx.exe
重启nginx加载nginx配置:
./nginx.exe -s reload
输入域名代理成功
输入域名zsfzweb.com,访问到web1
输入域名wptweb.com,访问到web2
反向代理工作流程
- 通过浏览器输入域名访问到server模块中的server_name对应的域名
- 服务器去找location/(根资源)
- 在location中设置代理:proxy_proxy+url
url:可以自己随意编写 - 通过这个url找到相应的upstream模块
- 找到这个模块之后,访问模块中的server