使用NGINX为网站做反向代理

背景

我在我的VPS上搭了一个Jenkins服务,然后将二级域名jenkins.ntflc.com解析到VPS的ip上。但由于Jenkins服务的默认端口是8080,而访问HTTP的默认端口是80,因此直接访问jenkins.ntflc.com并不会进入Jenkins页面,只能通过jenkins.ntflc.com:8080访问。

为了省去每次输入端口号,我一开始使用的是rinetd,一个端口转发工具。但是由于种种原因,后来放弃了这个工具,所以准备使用NGINX来做反向代理。

安装NGINX

我的VPS安装的是Ubuntu 14.04,所以这里以Ubuntu 14.04为例。

具体方法,NGINX官网有具体的说明,可以到这里来看:https://nginx.org/en/linux_packages.html

首先,下载nginx_signing.key

1
wget https://nginx.org/keys/nginx_signing.key

然后:

1
sudo apt-key add nginx_signing.key

这样就可以使用apt-get命令安装了:

1
2
apt-get update
apt-get install nginx

配置反向代理

/etc/nginx/conf.d/下新建.conf文件,文件名随意,然后将以下配置复制到.conf文件中:

1
2
3
4
5
6
7
8
9
10
11
12
13
server {
listen 80;
server_name jenkins.ntflc.com;
access_log off;

location / {
proxy_redirect off;
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;
}
}

其中server_name jenkins.ntflc.com;是我想要反向代理的域名,listen 80;是监听的端口(HTTP默认为80端口),proxy_pass http://127.0.0.1:8080;是我希望访问的端口地址。

配置完毕后,运行:

1
nginx

即可。

好了,现在访问jenkins.ntflc.com就会自动请求8080端口了。

后续操作

如果需要添加开机启动项,编辑/etc/rc.local文件,添加:

1
sudo nginx

即可。

如果你喜欢我的文章,欢迎打赏。