NGINX配置域名访问SpringBoot服务
部署SpringBoot服务
- 先将项目编译打成jar包;
- 将编译好的jar包上传至服务器
- 启动jar包,启动命令:
nohup java -jar jar包全名 > 日志文件全名 2>&1 &
配置nginx
- 找到nginx安装目录,进入到conf文件夹下;
- 找到文件夹中的nginx.conf文件,进行配置;
配置内容如下:
upstream xxxserver { # 负载均衡-->该节点下可配置多个server,按时间节点轮流分配
server localhost:port; # server1
server localhost:port; # server2
server localhost:port; # server3
}
server{
listen 443 ssl; # https监听的443端口, 如果配置完成https无法访问,请查看端口443是否放行?
server_name 你的域名; # 域名
ssl_certificate ssl/ssl证书pem文件; # ssl证书pem文件
ssl_certificate_key ssl/ssl证书key文件; # ssl证书key文件
ssl_session_timeout 5m; # 客户端可以重用会话缓存中ssl参数的过期时间
ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:ECDHE:ECDH:AES:HIGH:!NULL:!aNULL:!MD5:!ADH:!RC4; # 密码套件 不同的浏览器所支持的套件(和顺序)可能会不同。这里指定的是OpenSSL库能够识别的写法,你可以通过 openssl -v cipher 'RC4:HIGH:!aNULL:!MD5'(后面是你所指定的套件加密算法) 来看所支持算法。加密套件 之间用冒号分隔,加密套件 前有感叹号的表示必须废弃。
ssl_protocols TLSv1 TLSv1.1 TLSv1.2; # 加密协议 nginx在1.1.13和1.0.12版本后默认是ssl_protocols SSLv3 TLSv1 TLSv1.1 TLSv1.2,TLSv1.1与TLSv1.2要确保OpenSSL >= 1.0.1 ,SSLv3 现在还有很多地方在用但有不少被攻击的漏洞。
ssl_prefer_server_ciphers on; # 设置协商加密算法时,优先使用我们服务端的加密套件,而不是客户端浏览器的加密套件
location / {
proxy_pass http://xxxserver; # 代理url
}
}
server { # 该配置可以把http转换为https
listen 80; # http监听的是80端口
server_name 你的域名;
rewrite ^(.*)$ https://$host$1 permanent;
}
注: nginx服务重启命令:
service nginx restart
重新启动
配置完nginx.conf文件之后,重启nginx服务即可通过域名访问服务接口
拓展
若需要配置跨域 则需要添加:
add_header Access-Control-Allow-Origin *;
add_header Access-Control-Allow-Methods 'GET,POST';
add_header Access-Control-Allow-Headers 'DNT,X-Mx-ReqToken,Keep-Alive,User-Agent,X-Requested-With,If-Modified-Since,Cache-Control,Content-Type,Authorization';