Windows系统中利用Nginx配置反向代理
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时只要执行这个批处理文件就好。