什么是反向代理?
1、有两台服务器A和B属于同一内网段,但是A不通外网,B通外网,客户端C只有外网
2、C想通过B访问A,就需要在服务器B上做反向代理
3、客户端C通过外网与服务器B通信,服务器B通过内网转发客户端C的请求与服务器A通信。
测试场景:
服务器A 内网IP地址:192.168.234.128 部署了上一篇文章中的bbs网站
服务器B 内网IP:192.168.234.130 外网IP:192.168.111.128
客户端C 外网IP:192.168.111.101
需求:
客户端C能访问到服务器A的bbs网站
1.测试客户端C与服务器B通过外网通信:
#客户端C与服务器B的可以通过外网通信
2.新建并编辑服务器B的nginx虚拟主机配置文件:
[root@centos02 ~]# vi /etc/nginx/conf.d/nginx_proxy.conf
添加如下内容:
server
{
listen 80;
server_name test.bbs.com;
location /
{
proxy_pass http://192.168.234.128;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
}
}
配置说明:
proxy_pass:协议(http/https)+ web服务器IP(如果不是80端口,需要带上端口号,示例:192.168.234.128:8080)如果使用域名,需要在/etc/hosts文件中将域名映射到web服务器地址
当location需要匹配目录时,示例:location /dir/ {},proxy_pass需要配置成:ip:port/dir/;
proxy_set_header Host:如果不设置,web服务器有多个nginx虚拟主机的情况,就容易出错
proxy_set_header X-Real