一、需求
通过同一个域名下反向代理单台服务器的多个端口访问不同的WEB服务。
- 通过https://app.mydomian.com:8013 访问本机上的前端静态资源文件
- 通过https://app.mydomian.com:8014 访问服务器8099端口的web服务
- 通过https://app.mydomian.com:8001 访问服务器8000端口的web服务
二、配置
1、新增反向代理的配置文件
在/etc/nginx/conf.d目录下新增nginx.con,f配置如下:
#前端
server
{
listen 8013 default ssl;
ssl on;
ssl_certificate /etc/nginx/ssl/1_app.mydomain.com_bundle.crt;
ssl_certificate_key /etc/nginx/ssl/2_app.mydomain.com.key;
server_name app.mydomain.com;
index index.html index.htm;
root /opt/dist; #前端静态路径
error_page 404 /index.html; #这个配置,预防页面刷新后跳转到404页面
error_page 497 https://app.mydomain.com:8013;
}
#Api
server {
listen 8014 default ssl;
ssl on;
ssl_certificate /etc/nginx/ssl/1_app.mydomain.com_bundle.crt;
ssl_certificate_key /etc/nginx/ssl/2_app.mydomain.com.key;
server_name app.mydomain.com;
location / {
proxy_pass http://192.168.0.1:8099; #web端口
proxy_set_header X-Forwarded-Proto $scheme;
proxy_set_header X-Forwarded-Port $server_port;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";
}
}
#stattup Api
server {
listen 8001 default ssl;
ssl on;
ssl_certificate /etc/nginx/ssl/1_app.mydomain.com_bundle.crt;
ssl_certificate_key /etc/nginx/ssl/2_app.mydomain.com.key;
server_name app.mydomain.com;
location / {
proxy_pass http://192.168.0.1:8000; #web服务端口
proxy_set_header X-Forwarded-Proto $scheme;
proxy_set_header X-Forwarded-Port $server_port;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";
}
}
2、重启Nginx
#重启Nginx
systemctl restart nginx
#查看Nginx状态
systemctl status nginx
#查看反向代理
netstat -tlnp |grep nginx
启动成功:
三、外部访问
在浏览器中输入访问的域名与反向代理的服务端口: