通过nginx代理转发端口

要做Nginx的转发,当然就要对Nginx做配置。可以通过添加虚拟主机配置来增强Nginx的功能。

1.在nginx.conf中引入vhosts.d目录下的配置文件,nginx.conf 文件最下面加一行 include vhost.d/*.conf;(注意要以分号结尾,不然重启nginx会报错)

2.在/etc/nginx/vhosts.d目录下创建以.conf为后缀的文件(如果该目录不存在需要自己创建)。

3.Nginx做非80端口转发
要做转发,可以使用Nginx的proxy_pass配置项。Nginx监听80端口,接收到请求之后就会转发到要转发的URL。具体的配置如下:
server {
listen 80;
server_name www.test.com;

location / {
proxy_pass http://127.0.0.1:8080;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header REMOTE-HOST $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
}

access_log /home/wwwlogs/access_campaign.log access;
}

备注:
proxy_set_header Host $host 这句配置是不改变http的请求头。
X-Real-IP是请求的真实IP,
X-Forwarded-For表示请求是由谁发起的

3.转发给其他域名,并更换请求头(域名)

location / {
proxy_pass http://www.baidu.com;
proxy_set_header Host $proxy_host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header REMOTE-HOST $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
}

同一个虚拟主机配置文件中可以叠加多个代理,虚拟主机配置文件中只填上述配置内容,重启nginx报log错误时,可以把access_log注释掉