Nginx 跨域反向代理实现单机多站点

Nginx 反向代理是指转发客户请求到多个后台HTTP服务。在这里,我们用来实现单机多站点,即让Nginx根据用户访问的域名转发到对应的HTTP服务。
下面介绍一下Nginx 跨域方向代理的基本步骤。

Nginx 安装

下载和解压

1
2
$ wget http://nginx.org/download/nginx-1.14.1.tar.gz
$ tar -zxvf nginx-1.14.1.tar.gz

编译

1
2
$ cd ./nginx-1.14.1 && ./configuration --prefix=/opt/nginx
$ make -j4 && make install

–prefix 指定安装目录

启动和重启

1
2
$ sudo /opt/nginx/sbin/nginx           #启动
$ sudo /opt/nginx/sbin/nginx -s reload #重启

多站点配置

修改配置文件/opt/nginx/conf/nginx.conf

http 域中加入一句include vhosts/*.conf;

1
2
3
4
5
...... # 省略
http {
...... # 省略
include vhosts/*.conf; # 在这里加入
}

创建站点配置文件

创建站点配置文件:

1
2
3
$ mkdir -p /opt/nginx/conf/vhosts
$ cd /opt/nginx/conf/vhosts
$ touch xingw-xiong.ac.cn.conf

下面是站点配置文件的内容:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
server {
listen 80;
server_name www.xingw-xiong.ac.cn blog.xingw-xiong.ac.cn xingw-xiong.ac.cn;
location / {
proxy_pass http://localhost:8080;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
}
}


server {
listen 80;
server_name me.xingw-xiong.ac.cn about.xingw-xiong.ac.cn;
location = / {
proxy_pass http://localhost:8080/about/;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
}
location / {
rewrite ^/(.*)$ http://xingw-xiong.ac.cn/$1 permanent;
}
}
坚持原创技术分享,您的支持将鼓励我继续创作!