1. 程式人生 > >阿里雲或linux伺服器配置https及使用nginx啟用https並執行springboot jar包

阿里雲或linux伺服器配置https及使用nginx啟用https並執行springboot jar包

  1. 首先需要伺服器和一個可連外網的域名。

  2. 在阿里雲後臺申請ssl證書,為域名配置證書並下載for nginx證書檔案儲存好,後面會用。參考:https://jingyan.baidu.com/article/a3aad71aeceea0b1fb00969c.html

  3. 在伺服器中安裝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
    
  4. 配置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
    

    在這裡插入圖片描述
    再次啟動,成功。

  5. 在伺服器中執行打包好的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