场景1-配置多个端口(通过https+域名+名称):
域名: xi**fuli.com。在这个域名下,部署了三个应用,分别对应端口:8890,8891,8892
给三个应用接口都开启https访问。
nginx配置如下:
#https server
server {
#HTTPS的默认访问端口443。
#如果未在此处配置HTTPS的默认访问端口,可能会造成Nginx无法启动。
listen 443 ssl;
ssl on;
#填写证书绑定的域名
server_name xi**fuli.com;
#填写证书文件绝对路径
ssl_certificate cert/xi**fuli.com.pem;
#填写证书私钥文件绝对路径
ssl_certificate_key cert/xi**fuli.com.key;
ssl_session_cache shared:SSL:1m;
ssl_session_timeout 5m;
#自定义设置使用的TLS协议的类型以及加密套件(以下为配置示例,请您自行评估是否需要配置)
#TLS协议版本越高,HTTPS通信的安全性越高,但是相较于低版本TLS协议,高版本TLS协议对浏览器的兼容性较差。
ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:ECDHE:ECDH:AES:HIGH:!NULL:!aNULL:!MD5:!ADH:!RC4;
ssl_protocols TLSv1.1 TLSv1.2 TLSv1.3;
#表示优先使用服务端加密套件。默认开启
ssl_prefer_server_ciphers on;
#app1
location / {
root /www/server/company_web/build;
# proxy_pass https://ip;#代理url
proxy_pass http://ip:8890 ;#代理url
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
client_max_body_size 100m;
index index.html index.htm;
}
#app2
location /app2/ {
proxy_pass http://ip:8891/;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
client_max_body_size 100m;
}
#app3
location /app3/ {
proxy_pass http://ip:8892/;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
client_max_body_size 100m;
}
}
#HTTP请求自动跳转HTTPS
server {
listen 80;
#填写证书绑定的域名
server_name xingfuli.com;
#将所有HTTP请求通过rewrite指令重定向到HTTPS。
rewrite ^(.*)$ https://$host$1;
location / {
root html;
index index.html index.htm;
proxy_pass http://xingfuli.com; #需要访问的#因为这里还是80端口,所以保持http就可以了
}
}
应用接口路径注意保持一致
最后,重新加载配置。