图例:
概述:终端用户通过代理服务器访问后端服务器,后端服务器实际上是一台服务器的不同端口服务。
正向代理是我们客户端正常直接访问服务器,反向代理是客户端访问的是代理服务器,而真正的服务器客户端是不知道的。
如图中终端客户只需要知道代理服务器的地址即可。
1.首先网络都能正常访问
2.后端服务器配置
目录架构:htm为8080端口主目录,html1为8001端口主目录
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; #access_log logs/access.log main; sendfile on; #tcp_nopush on; #keepalive_timeout 0; keepalive_timeout 65; # 第一个server模块 server { listen 8080; server_name localhost; location / { root html; index index.html index.htm; } error_page 500 502 503 504 /50x.html; location = /50x.html { root html; } } # 第二个server 模块,8001端口 server { listen 8001; server_name localhost; # location 模块 location / { root html1; index index.html index.htm; } } }
3.代理服务器配置
代理服务器的防火墙需要开启
firewall-cmd --zone=public --add-port=8080/tcp --permanent firewall-cmd --zone=public --add-port=8001/tcp --permanent firewall-cmd --reload
nginx代理配置
# 这里由于是测试,使用域名因此在代理服务器上改了hosts文件,主要是两个server块代理 user nginx nginx; worker_processes auto; #pid logs/nginx.pid; events { worker_connections 1024; } http { include mime.types; default_type application/octet-stream; sendfile on; server { listen 8080; server_name www.test.com; #charset koi8-r; #access_log logs/host.access.log main; location / { # root html; # index index.html index.htm; proxy_pass http://192.168.138.36:8080; } } server { listen 8001; server_name www.test.com; location / { # root html; #index index.html index.htm; proxy_pass http://192.168.138.36:8001; } } }
访问:http://192.168.131.110:8080和http://192.168.131.110:8001效果,终端不需要知道192.168.138.36.