nginx配置ssl证书https+域名访问前端页面、https代理/api访问服务器部署springboot的jar包http后台接口
前言:网上很多的文章关于nginx配置https、配置证书的,看了很多都有问题各种bug导致页面出不来,接口请求存在https与http之间的访问限制,不适合自己的项目。最终调改出项目能正常使用的conf配置,贴出来仅供参考….
1.获取ssl证书
阿里云免费ssl证书,阿里云官网有获取途径方法介绍,这里就不详细道明,审核通过后下载nginx版本的证书即可。
2.解压到nginx文件下的cert文件中
3.(重点)配置nginx.conf文件
注: nginx的root配置只有在location / {} 下面才生效 在之后的location里面都不生效
location / {
root html; # 这样的配置是生效的
}
location /a {
root html1; # 这样的配置是不生效的
}
所以使用alias来配置多个页面的情况, / 访问html文件里的页面 /management 访问html1里的页面
# HTTPS server
#
server {
listen 81 ssl; #端口
server_name xxxx域名;
#ssl证书地址,我在此处试用的绝对路径
ssl_certificate C://java-vue
ssl_certificate_key C://java-vue
ssl_session_cache shared:SSL:1m;
ssl_session_timeout 5m;
ssl_ciphers HIGH:!aNULL:!MD5;
ssl_prefer_server_ciphers on;
location / {
root html1;
index index.html index.htm;
}
location /management {
alias /java-vue/nginx/html;
index index.html index.php index.htm;
}
location /api{
proxy_pass http://localhost:8088/; #反向代理服务器运行的http请求接口地址
#下面三行固定内容
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
proxy_set_header X-Forwarded-Port $server_port;
}
}
坑:/api这里注意要和 proxy_pass http://localhost:8088/ 最后的/匹配,才能通过/api代理到指定的地址去,不然请求会报404的错
api开头/与代理地址最后/这种格式能够正确的试https代理请求到http的数据接口
自己试过 /api/ 、api/ 、http://localhost:8088、、、、404警告
欢迎大佬指点
|