Nginx配置为代理服务器

Nginx作为代理服务器是一个很常见的用途,例如内部有一个tomcat服务但是又不想开放8080端口,通过配置代理可以在只开放80端口的情况下访问到内部的tomcat服务了。

环境

系统:CentOS 7

Nginx版本:1.16.1

配置方式

nginx配置为文件服务器的方式非常简单,打开nginx的配置文件,一般在这个路径下

1
vi /etc/nginx/nginx.conf

然后在location块中加入如下关键指令即可

1
2
3
4
5
6
7
# proxy_set_header作用是设置请求头,代理会使部分信息丢失,因此需要重新设置方便获得真实访问信息
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;

# 关键 proxy_pass 代理转发需要到达的目的地,可以是其它任何想要访问的地址
proxy_pass http://127.0.0.1:3000/;

具体示例

1
2
3
4
5
6
7
8
9
10
11
http {
......
server {
......
location / {
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_pass http://127.0.0.1:8080/;
}
}

写完配置后检查一下有没有写错(可省略)

1
nginx -t

最后就是让nginx重新加载让配置生效

1
nginx -s reload