<Nginx代理转发,实现通过一个外网IP访问内网多台服务器
比如,我们有2台电脑(A和B),A已经映射到外网,绑定了一个xxx.xxx.xxx.xxx的公网IP,如何实现访问http://xxx.xxx.xxx.xxx:90的时候访问的是A服务器,http://xxx.xxx.xxx.xxx:80的时候访问的是同内网中的B服务器,配置如下
配置如下
server
{
listen 80 default_server;
#listen [::]:80 default_server ipv6only=on;
server_name _;
index index.html index.htm index.php;
root /home/wwwroot/default;
#error_page 404 /404.html;
# Deny access to PHP files in specific directory
#location ~ /(wp-content|uploads|wp-includes|images)/.*\.php$ { deny all; }
include enable-php.conf;
#将请求转发给192.168.1.1:80;
location / {
proxy_redirect off;
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://192.168.1.1:80;
}
location /nginx_status
{
stub_status on;
access_log off;
}
#location ~ .*\.(gif|jpg|jpeg|png|bmp|swf)$
#{
# expires 30d;
#}
#location ~ .*\.(js|css)?$
#{
# expires 12h;
#}
#将所有请求转发到192.168.1.1的80端口
location ~ /.well-known {
proxy_redirect off;
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://192.168.1.1:80;
allow all;
}
location ~ /\.
{
deny all;
}
access_log /home/wwwlogs/access.log;
}
随后重启nginx,输入xxx.xxx.xxx.xxx:90和xxx.xxx.xxx.xxx:80看效果
>