nginx实现反向代理

       由于最近要给学院的13级孩子挂训练赛,为了防止上网查资料找代码,我学着tiankonguse学长之前给我们挂比赛训练的方法,采用反向代理,局域网内只允许访问我允许的网站。

       反向代理就是指以代理服务器来接受internet上的连接请求,然后将请求转发给内部网络上的服务器,并将从服务器上得到的结果返回给internet上请求连接的客户端,此时代理服务器对外就表现为一个服务器。

       如果我的服务器代理了某个网址,那么对于用户来说,我的服务器就相当于是那个网址了。

       示意图如下:


       反向代理在网络安全上也蛮有作用的,能有效保护实际服务器。

       我用的是nginx服务器进行反向代理的,用的是tiankonguse上传在github上的nginx的文件,配置文件已经写好了是方便ACM管理员的。然而在我使用的过程中,遇到了一些问题,大概问题是缺了log和temp文件夹,自己加上就可以了,dos下启动nginx,然后会有错误提示,缺啥补啥。

       一些命令如下:

       测试conf

       nginx.exe -t 测试配置文件nginx.conf是否生效。

       

       启动 nginx

       在命令行里,进入到 nginx.exe 的目录下,然后执行 start nginx 即可启动 nginx 程序了。

       也可以直接双击exe文件,然后cmd会一闪而过,这时nginx就启动了。
       

       停止 nginx
       输入命令 nginx -s stop 即可停止 nginx

       退出 nginx
       输入命令 nginx -s quit 即可退出 nginx

       重启 nginx
       输入命令 nginx -s reload 即可重新加载 nginx


       注意nginx默认80端口,所以需要实现关闭IIS服务器,或者把配置文件改为其他端口,比如8080端口。

       不能超过1024个连接。

       这是官方文档:http://nginx.org/en/docs/windows.html

       

      但是用了tiankonguse的配置文件,在我的电脑上仍然不能访问指定的网站,于是让学长远程我的电脑,帮我查错,写了一个新的conf,代码如下:

#user  nobody;
worker_processes  1;

events {
    worker_connections  1024;
}


http {
    include       mime.types;
    default_type  application/octet-stream;

    sendfile        on;

    keepalive_timeout  65;

    #gzip  on;

    server {
        listen       8080;
        server_name  127.0.0.1;

        location / {
            root   html;
            index  index.html index.htm;
        }
        #access_log  logs/host.access.log  main;


        location ~ \.zip$ {
            root   http://127.0.0.1;
        }
        #location ~ \.[^z].$ {
        #    proxy_pass   http://acm.hdu.edu.cn;
        #}
            
        location ~ \.[^z] {
            proxy_pass  http://acm.hust.edu.cn;
        }


        #error_page  404              /404.html;
        error_page   500 502 503 504  /50x.html;


    }

}


        改完之后,就能代理acm.hust.edu.cn了,重启nginx之后,把acm.hust.edu.cn改成自己的ip地址,然后后面跟上对应的子URL,就能访问对应的页面了。

        这样,反向代理就成功了。

        接下来的工作,就是让训练队员连接无线路由器,然后我的电脑作为反向代理服务器连接外网和无线路由器,示意图如下:


         关掉自己电脑的防火墙,然后让用户访问无线路由器的IP地址,就能访问被代理的网站了,而且不能访问其他网站。比如101的无线路由器的IP地址:192.168.1.12

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值