Nginx正向代理原理和部署方案

正向代理需求环境:
局域网无法访问互联网,但是内网中有一个服务器能上互联网,即可配置正向代理,使客户端能通过代理服务器访问互联网中的网站。
正向代理原理图:
PC——nginx服务器——互联网——互联网中网站
在这里插入图片描述

Nginx正向代理80端口

本文正向代理的是80端口,所以客户端PC智能访问互联网中80端口http开头的网站。
代理端口可改变,同理客户端PC智能访问互联网中对应端口的网站。

Nginx代理服务器端配置:

nginx服务器能上互联网。
本例中nginx服务器网卡配置:
ip地址:192.168.3.157
子网掩码:255.255.255.0
网关:192.168.3.1
nginx.conf 中配置

resolver 114.114.114.114;

    server {
        listen       80;
        server_name  localhost;
        #charset koi8-r;
        #access_log  logs/host.access.log  main;

        location / {
            #root   html;
            #index  index.html index.htm;
            proxy_pass http://$http_host$request_uri;
        }

        #error_page  404              /404.html;

        # redirect server error pages to the static page /50x.html
        #
        error_page   500 502 503 504  /50x.html;
        location = /50x.html {
            root   html;
        }

        # proxy the PHP scripts to Apache listening on 127.0.0.1:80
        #
        #location ~ \.php$ {
        #    proxy_pass   http://127.0.0.1;
        #}
    }

此配置,仅支持客户端访问代理80端口的网站,如下图:
在这里插入图片描述

客户端配置:

客户端不能上互联网,但能连接nginx代理服务器,即可ping通nginx服务器。
客户端网卡配置:
ip地址:192.168.3.178
子网掩码:255.255.255.0
网关:192.168.3.157
配置浏览器代理设置:
Iinternet选项——连接——局域网设置:
配置nginx代理服务器的IP地址
在这里插入图片描述
客户端上:在浏览器输入 对应的http网站(80端口)
注: 无法访问https网站。
在这里插入图片描述

Nginx正向代理非80端口

由于nginx要代理非80端口,需由80端口进行转换,所以需要在代理80端口正确的基础上,新增需要正向代理的非80端口。
本文以8000端口为例,无法上网的客户端访问互联网中8000端口的网站。

Nginx代理服务器端配置

	resolver 114.114.114.114;
	
    server {
        listen       80;
        server_name  localhost;

        #charset koi8-r;

        #access_log  logs/host.access.log  main;

        location / {
            #root   html;
            #index  index.html index.htm;
			proxy_pass http://$http_host$request_uri;
        }

        #error_page  404              /404.html;

        # redirect server error pages to the static page /50x.html
        #
        error_page   500 502 503 504  /50x.html;
        location = /50x.html {
            root   html;
        }
    }

	server {
        listen       8000;
        server_name  localhost;

        #charset koi8-r;

        #access_log  logs/host.access.log  main;

        location / {
            #root   html;
            #index  index.html index.htm;
			proxy_pass http://$http_host:8000/$request_uri;
        }

        error_page   500 502 503 504  /50x.html;
        location = /50x.html {
            root   html;
        }
    }

在正向80端口的基础上,新增一个server类,注意的是下图中标注的8000端口。
如果是访问互联网中其他端口网站,将8000改成其他的端口即可。
在这里插入图片描述

客户端配置:

配置浏览器代理设置:
Iinternet选项——连接——局域网设置:
配置nginx代理服务器的IP地址和端口,非80端口的代理设置端口仍然配置为80(因需80端口进行转发)
在这里插入图片描述
在浏览器中访问80端口的网站和非80端口的网站仍然成功。测试结果如下:
在这里插入图片描述

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值