-
首先需要服务器和一个可连外网的域名。
-
在阿里云后台申请ssl证书,为域名配置证书并下载for nginx证书文件保存好,后面会用。参考:https://jingyan.baidu.com/article/a3aad71aeceea0b1fb00969c.html
-
在服务器中安装nginx,安装时不指定安装目录,则默认安装在/usr/*的相关子目录下,安装nginx时注意命令./configure可能会有问题,用./configure --with-http_ssl_module,不要直接用./configure 就可以了。参考:https://www.cnblogs.com/wyd168/p/6636529.html。
安装完成后启动nginx可能遇到libpcre.so文件找不到的问题,错误信息为:
error while loading shared libraries: libpcre.so.1: cannot open shared object file: No such file or directory
,需要为文件建立符号链接,参考:https://blog.csdn.net/guodongxiaren/article/details/40950249 。再次启动nginx,可能遇到端口占用问题,
nginx: [emerg] bind() to 0.0.0.0:* failed (98: Address already in use)
,可查看占用进程并杀死后再次启动nginx,如图即安装并启动测试成功:ps -ef|grep nginx
// 杀死进程 kill -QUIT 28286 // 启动nginx /usr/local/nginx/sbin/nginx -c /usr/local/nginx/conf/nginx.conf
-
配置nginx配置文件,参考:https://www.jianshu.com/p/d785ac81b0b4
启动时遇到nginx: [emerg] unknown directive "ssl" in /usr/local/nginx/conf/*..
错误:参考 https://www.jianshu.com/p/a2bd2c82ce3d 。
修改后再次启动,遇到错误
nginx: [emerg] bind() to 0.0.0.0:443 failed (98: Address already in use)
查看443端口,发现被httpd占用,结束之:service httpd stop
再次启动,成功。 -
在服务器中运行打包好的springboot工程,工程配置及打包部署过程参考:https://www.jianshu.com/p/d785ac81b0b4 ,注意在工程的application.yml文件中设置端口号,和nginx监听端口对应,也可在启动工程时指定端口号,例如:
java -jar demo.jar --server.port=3000
。
(如果在本地运行测试工程,可直接在工程中配置https,见:https://www.cnblogs.com/lianggp/p/8136540.html )