前言:
博客里不缺乏这样的博文。但是基本都是copy同一个文章出来的。我总结一下,做一个简单的说明。内容主要讲解 springboot 项目需要做的配置,以及ngxin需要做的配置,以及在https下证书需要做的配置。
一:spring boot 项目需要做的配置
在 application-yml 里做如下配置。注意,此处重点看 servlet.context-path 配置
# Tomcat 配置
server:
port: 8088
tomcat:
uri-encoding: UTF-8
max-threads: 1000
min-spare-threads: 30
# 重点看这里
servlet:
context-path: /appServer
二:nginx 配置
1:https服务器配置
http {
#此处内容属于 nginx 安装时,自带默认配置,不用管。我们只关注 server 配置
include mime.types;
default_type application/octet-stream;
sendfile on;
keepalive_timeout 65;
#将服务所有的 http 请求转换为 https 请求
server {
listen 80;
#你的域名,请不要带有http://或者https://
server_name www.xxxx.com;
}
#此处ssl配置为腾讯云服务器提供。其他服务器请对应配置教程自行更改
server {
listen 443 ssl;
#填写绑定证书的域名
server_name www.xxxx.cn;
#证书文件名称
ssl_certificate 1_xxxx.cn_bundle.crt;
#私钥文件名称
ssl_certificate_key 2_xxxx.cn.key;
ssl_session_timeout 5m;
ssl_ciphers ECDHE-RSA-AES128-GCM-
SHA256:ECDHE:ECDH:AES:HIGH:!NULL:!aNULL:!MD5:!ADH:!RC4;
ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
ssl_prefer_server_ciphers on;
location / {
#网站主页路径。此路径仅供参考,具体请您按照实际目录操作。
root html;
index index.html index.htm;
}
#此处呼应 spring boot 应用内的 servlet.context-path 配置
#说明: 如果你访问 www.xxxx.cn/appServer 将会请求转发到服务器内的 127.0.0.1:8088 服务
location /appServer {
proxy_pass http://127.0.0.1:8088;
}
#说明: 这里模拟静态资源读取,示例请求url: https://www.xxxx.com/mp4/xxx.mp4
#访问 www.xxxx.cn/mp4/xxx.mp4 会转发访问服务器内的绝对路径/usr/local/mp4/xxx.mp4
location /mp4 {
root /usr/local;
}
}
}
2:http服务器配置
http {
#此处内容属于 nginx 安装时,自带默认配置,不用管。我们只关注 server 配置
include mime.types;
default_type application/octet-stream;
sendfile on;
keepalive_timeout 65;
server {
listen 80;
#你的域名,请不要带有http://或者https://
server_name www.xxxx.com;
location / {
#网站主页路径。此路径仅供参考,具体请您按照实际目录操作。
root html;
index index.html index.htm;
}
#此处呼应 spring boot 应用内的 servlet.context-path 配置
#说明: 如果你访问 www.xxxx.cn/appServer 将会请求转发到服务器内的 127.0.0.1:8088 服务
location /appServer {
proxy_pass http://127.0.0.1:8088;
}
#说明: 这里模拟静态资源读取,示例请求url: http://www.xxxx.com/mp4/xxx.mp4
#访问 www.xxxx.cn/mp4/xxx.mp4 会转发访问服务器内的绝对路径/usr/local/mp4/xxx.mp4
location /mp4 {
root /usr/local;
}
}
}
到此,便做完了nginx配置。有几个地方需要注意下:
1:如果nginx做了https的证书配置,spring boot 应用便无需做ssl配置。反之亦然
2:如果出现404,请严格检查自己的 spring boot 项目配置和nginx配置
2:如果出现502,绝大多数概率是 spring boot 服务停止。 如果服务仍然正常再搜索其他问题。