溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

利用nginx + node在阿里云部署https的步驟詳解

發(fā)布時間:2020-09-06 16:19:00 來源:腳本之家 閱讀:270 作者:黃秀杰 欄目:web開發(fā)

緣起

最近在寫node+mongodb版本的靈犀微商城,所以免不了要自己去部署自己的https證書到阿里服務器,下面將實現(xiàn)的過程完整的給大家總結(jié)下,話不多說了,來一起看看詳細的介紹吧。

 HTTPS和HTTP的區(qū)別主要如下:

      1、https協(xié)議需要到ca申請證書,一般免費證書較少,因而需要一定費用。

      2、http是超文本傳輸協(xié)議,信息是明文傳輸,https則是具有安全性的ssl加密傳輸協(xié)議。

      3、http和https使用的是完全不同的連接方式,用的端口也不一樣,前者是80,后者是443。

      4、http的連接很簡單,是無狀態(tài)的;HTTPS協(xié)議是由SSL+HTTP協(xié)議構(gòu)建的可進行加密傳輸、身份認證的網(wǎng)絡協(xié)議,比http協(xié)議安全。

申請

等了2天才拿到免費的https證書,在阿里一直是顯示售罄,難道最近https普遍起來導致供不應求了。

利用nginx + node在阿里云部署https的步驟詳解

利用nginx + node在阿里云部署https的步驟詳解

利用nginx + node在阿里云部署https的步驟詳解

利用nginx + node在阿里云部署https的步驟詳解

部署

利用nginx + node在阿里云部署https的步驟詳解

上傳了fileauth.txt到指定的目錄下,幾分鐘后,就審核通過了,期間并沒有審核電話打進來。操作部署阿里給出很詳盡,復制過來就可以,不過要注意要將cert文件夾放在conf下,而不是說明上所說的nginx根目錄。當你按阿里原原本本地操作,將看到這個報錯,fopen:No such file or directory:fopen('/usr/local/nginx/conf/cert/214389510580391.pem','r') error:2006D080:BIO routines:BIO_new_file:no such file) ,也就明白是cert存在目錄的問題。

node反向代理

location / {
   proxy_pass http://127.0.0.1:4001;
   proxy_set_header Host $host;
   proxy_set_header X-Real-IP $remote_addr;
   proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
  }

node還是照舊跑,不關心https還是http,它由nginx完成。第1個proxy_pass是反向代理,后面3個proxy_set_header是將請求完全由mall.it577.net接管,不加上雖然能被前端請求,但是req.originUrl仍然還是會解析為http://127.0.0.1:4001,這就影響到了微信支付回調(diào)notify_url的解耦了,于是加上這3行。

結(jié)果

利用nginx + node在阿里云部署https的步驟詳解

從地址欄看到已經(jīng)支持https了。

以上的過程是很簡單,基本都能配置上,說下我遇到的坑。因為我阿里預裝nginx并不帶https模塊,所以要自己手動下載安裝包再重新編譯,最后復制新編譯出來的nginx執(zhí)行文件替換并重啟服務。

報錯,提示找不到ssl模塊

nginx: [emerg] unknown directive "ssl" in /usr/local/nginx/conf/nginx.conf:123

下載相應版本的ngix壓縮包

wget http://nginx.org/download/nginx-1.12.1.tar.gz

解壓

tar zxvf nginx-1.12.1.tar.gz

帶參編譯得到ssl模塊

./configure --with-http_ssl_module

make

停止nginx

/usr/local/nginx/sbin/nginx -s stop

當然可以kill進程,網(wǎng)上搜到的是讓kill的3種方法

替換舊nginx

cp /usr/local/nginx/sbin/nginx /usr/local/nginx/sbin/nginx.bak
cp ./objs/nginx /usr/local/nginx/sbin/

重啟nginx并重新加載conf配置文件

/usr/local/nginx/sbin/nginx -c /usr/local/nginx/conf/nginx.conf
/usr/local/nginx/sbin/nginx -s reload

上述踩坑參考了文章https://www.jb51.net/article/130894.htm,感謝前人栽樹。

這時再在瀏覽器訪問就看到上面給出的截圖效果了,大功告成。

總結(jié)

以上就是這篇文章的全部內(nèi)容了,希望本文的內(nèi)容對大家的學習或者工作具有一定的參考學習價值,如果有疑問大家可以留言交流,謝謝大家對億速云的支持。

向AI問一下細節(jié)

免責聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權內(nèi)容。

AI