开放443端口
在服务器的防火墙开启443端口
fire-wall --zone=public --add-port=443/tcp --permanent
fire-wall --reload
fire-wall --zone=public --query-port=443/tcp
同时还需要登录阿里云控制台,在专有VPC控制菜单找到对应的安全组添加入口方向的允许规则。
生成自签名证书
参考这篇博文的第一个方法实现:
https://blog.csdn.net/t6546545/article/details/80508554
申请阿里云https证书
有效期只有一年,到期需要在阿里云上购买新的免费证书
参考这篇博文的第二个方法购买免费的https证书,免费证书隐藏的很深,参考博文的操作步骤就可以找到了。
https://blog.csdn.net/t6546545/article/details/80508554
购买好的证书可以在ssl证书列表的未签发列表中找到,点击申请,域名验证方式选择“文件验证”,其他的如实填写即可,下一步要求将一个用于验证的文件放到域名的具体访问路径下,按要求完成即可完成证书的申请
绑定证书
证书申请好了之后,在已签发证书列表中,点击“下载”按钮,选择Nginx服务器类型的证书下载。
可以点击“帮助”进入到nginx配置ssl证书帮助页面。
https://help.aliyun.com/knowledge_detail/95491.html?spm=5176.2020520154.cas.25.54c78AyK8AyKMV
关键步骤:将下载好的证书解压后,上传到nginx的安装目录下的ssl目录。修改nginx.conf配置文件,将https server的注释去掉,然后修改ssl_certificate cert和ssl_certificate_key cert。
配置两个location,/app/开头的url转发到前端应用donationappserver,其他(根路径/)的转发到后端应用donationserver。
upstream donationserver {
#根据IP转发
ip_hash;
#具体转发的应用
server 172.18.75.149:8081;
#长连接设置
keepalive 16;
}
upstream donationappserver {
#根据IP转发
ip_hash;
#具体转发的应用
server 172.18.75.149:8080;
#长连接设置
keepalive 16;
}
server {
listen 443 ssl;
server_name zhappserver1;
ssl_certificate /usr/local/nginx/ssl/cert.pem;
ssl_certificate_key /usr/local/nginx/ssl/cert.key;
ssl_session_cache shared:SSL:1m;
ssl_session_timeout 5m;
ssl_ciphers HIGH:!aNULL:!MD5;
ssl_prefer_server_ciphers on;
location / {
root html;
index index.html index.htm;
#上传单个文件最大限制,网站1000m,OA系统2000m
client_max_body_size 2000m;
#长连接设置
proxy_http_version 1.1;
proxy_set_header Connection "";
#文件上传时关闭本地缓存设置
proxy_request_buffering off;
#服务端口转发设置
proxy_set_header Host $host;
#客户端IP地址转发设置
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
#与upstream后的名称一致
proxy_pass http://donationserver;
}
location /app/ {
root html;
index index.html index.htm;
#上传单个文件最大限制,网站1000m,OA系统2000m
client_max_body_size 2000m;
#长连接设置
proxy_http_version 1.1;
proxy_set_header Connection "";
#文件上传时关闭本地缓存设置
proxy_request_buffering off;
#服务端口转发设置
proxy_set_header Host $host;
#客户端IP地址转发设置
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
#与upstream后的名称一致
proxy_pass http://donationappserver/;
}
}