node服務部署,網站配置域名,https協議配置,nginx轉發網頁請求到本地node服務一條龍

node服務部署到服務器,給網站配置域名,網站改爲https協議,通過nginx轉發網頁請求到本地node服務

  1. 登錄服務器,使用私鑰登陸

    • 騰訊雲重裝系統
    • 登陸設置選擇使用ssh密鑰設置
    • 選擇ssh密鑰,如果沒有則創建ssh密鑰
    • 點擊開始安裝
    • 下載生成好的私鑰到本地
    • 使用終端進行配置

      // 賦予私鑰文件僅本人可讀權限
      chmod 400 <下載的與雲服務器關聯的私鑰的絕對路徑>
      
      // 運行以下遠程登錄命令
      ssh -i <下載的與雲服務器關聯的私鑰的絕對路徑> <username>@<hostname or ip address>
  2. 給服務器裝nvm管理node版本

    // 下載nvm
    wget https://github.com/cnpm/nvm/archive/v0.23.0.tar.gz
    // 解壓nvm
    tar -xf v0.23.0.tar.gz
    // 進入目錄
    cd nvm-0.23.0/
    // 安裝nvm
    ./install.sh
    // 安裝後執行
    source ~/.bash_profile
  3. 使用nvm安裝node

    nvm install 10.14.2
  4. 給服務器安裝git

    由於我的代碼託管在github上,給服務器安裝git方便管理代碼

    在linux安裝git

  5. 克隆項目到服務器

    git clone https://github.com/lfhwnqe/wechat_server.git
  6. 進入項目根目錄安裝依賴

    cd wechat_server
    npm install
  7. 啓動項目進行連接

    npm start

    現在項目在本7001端口啓動

  8. 把域名映射到服務器

    • 進入域名管理界面(我用的是阿里的)
    • 點擊解析設置
    • 點擊修改
    • 在記錄值處修改爲服務器的公網ip
    • 保存設置,然後訪問你的域名有服務監聽80端口的話就可以得到響應了
  9. 在服務器生成https證書,啓用https服務

    • 先申請一個免費https證書
    • 在服務器運行一下命令,通過openssl生成csr和私鑰

      openssl req -new -newkey rsa:2048 -sha256 -nodes -out linuoblog.cn.csr -keyout linuoblog.cn.key -subj "/C=CN/ST=ShenZhen/L=ShenZhen/O=NUO Inc./OU=Web Security/CN=linuoblog.cn"

      下面是上述命令相關字段含義:

    • C:Country ,單位所在國家,爲兩位數的國家縮寫,如: CN 就是中國
    • ST 字段: State/Province ,單位所在州或省
    • L 字段: Locality ,單位所在城市 / 或縣區
    • O 字段: Organization ,此網站的單位名稱;
    • OU 字段: Organization Unit,下屬部門名稱;也常常用於顯示其他證書相關信息,如證書類型,證書產品名稱或身份驗證類型或驗證內容等;
    • CN 字段: Common Name ,你的網站域名;
    • 如果使用https://freessl.cn獲取證書,使用openssl生成 csr 文件後,在頁面選擇csr生成,並粘貼生成的csr內容到頁面,然後通過該網站的驗證方式,驗證所有者,即可獲得ca證書

生成 csr 文件後,提供給 CA 機構,簽署成功後,就會得到一個 .pem後綴的證書文件,、證書文獲取成功後,就可以在 Nginx 配置文件裏配置 HTTPS 了。

  1. 配置nginx,通過nginx把https請求轉發到本地node服務

    要開啓 HTTPS 服務,在配置文件信息塊(server block),必須使用監聽命令 listen 的 ssl 參數和定義服務器證書文件和私鑰文件,如下所示:

    worker_processes auto;
    http {
        #配置共享會話緩存大小,視站點訪問情況設定
        ssl_session_cache   shared:SSL:10m;
        #配置會話超時時間
        ssl_session_timeout 10m;
        server {
            listen              443 ssl;
            server_name         linuoblog.cn;
            
            #設置長連接
            keepalive_timeout   70;
            
            #HSTS策略
            add_header Strict-Transport-Security "max-age=31536000; includeSubDomains; preload" always;
            #證書文件
            ssl_certificate     full_chain.pem;    # 證書的路徑
            #私鑰文件
            ssl_certificate_key linuoblog.cn.key; # 私鑰的路徑
            
            location / {
            # 這裏是把鏈接代理到本機的7001端口
              proxy_pass http://127.0.0.1:7001;
            }
        }
    }
            events {
                worker_connections  1024;  ## Default: 1024
              }

    配置完成後啓動nginx

    nginx

    這個時候,訪問自己的域名就能看到https服務了。同時也通過nginx把網頁端的請求轉發到了服務器本地的server上

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章