Windows系统中利用Nginx配置反向代理

发布于:2014年11月27日    浏览:9616 次    属于:服务器运维 > 环境配置 原创作者:张晓栋

 

Nginx是一个高性能的HTTP和反向代理服务器,本文我们主要研究他的反向代理功能,首先去Nginx官网http://nginx.org/下载适用于Windows的Nginx软件压缩包,我们一般选择最新的版本,小编使用的是Nginx1.7.9。


下载完成后首页把Nginx压缩包解压,这个软件是绿色版的不需要安装,解压后得到如下图中的文件;

找到文件夹conf点击进入,找到nginx.conf;这是Nginx的配置文件我们使用记事本打开,打开后我们直接清楚默认内容,粘贴以下内容到配置文件中;

worker_processes  1;

events {
    worker_connections  1024;
}

http {

    server_names_hash_bucket_size 128;

    proxy_buffer_size 64k;

    proxy_buffers 8 64k;


    server {
        listen       80;
        server_name  127.0.0.1;
        location / {
            proxy_pass http://www.qq.com;
        }
    }
}

保存配置文件,启动Nginx.exe后,访问127.0.0.1发现网页上展示的是腾讯网的内容,这说明已经成功的反向代理了腾讯网,server_name代表客户请求访问的域名,proxy_pass代表Nginx代理获取内容的地址。


利用这个原理我们可以利用国外的一台服务器配置Nginx来反向代理我们本机的网站出去,我们的本地网络都被封锁了80端口,这时我们只要在服务器上将proxy_pass配置为本地的IP:端口就好了,现在市场上的花生壳内网版,nat123的映射都是这个原理。



以上的反向代理方法是通过域名所匹配的,有时候我们需要直接转发前端服务器的80端口到后端服务器的一个端口,传统的方法是使用TCP软件转发,但是TCP做大量转发的时候容易出现不稳定的情况,其实Nginx也可以使用端口转发功能,使用如下配置:

worker_processes  1;


events {

    worker_connections  1024;

}


http {

   server_names_hash_bucket_size 128;

    proxy_buffer_size 64k;

   proxy_buffers 8 64k;


    server {

        listen 80;

        server_name localhost;

        location / {

            proxy_pass http://192.168.1.2:8080 ;

            proxy_set_header Host $host:80;

            proxy_set_header X-Real-IP $remote_addr;

            proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;

            proxy_set_header Via "nginx";

        }

    }

}

通过以上配置即可将本机80端口的所有http请求转发到 后端 192.168.1.2 的8080端口。



同时分享一个关闭Nginx的快捷方法:创建一个记事本叫做“停止Nginx”,内容为taskkill -f -t -im nginx.exe ,保存后修改后缀名为bat,我们想要关闭Nginx时只要执行这个批处理文件就好。