Nginx代理转发,实现通过一个外网IP访问内网多台服务器

                      
                            <

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看效果

>