成人国产在线小视频_日韩寡妇人妻调教在线播放_色成人www永久在线观看_2018国产精品久久_亚洲欧美高清在线30p_亚洲少妇综合一区_黄色在线播放国产_亚洲另类技巧小说校园_国产主播xx日韩_a级毛片在线免费

資訊專欄INFORMATION COLUMN

部署小說api服務(wù)到騰訊云

TigerChain / 461人閱讀

摘要:部署小說服務(wù)到騰訊云小說版本寫完了,接下來就開始部署到服務(wù)器上,用到了。申請(qǐng)騰訊云證書直接點(diǎn)下一步,然后用推薦選項(xiàng)驗(yàn)證。下載證書上傳到服務(wù)器找到騰訊云的證書管理去下載證書。

部署小說api服務(wù)到騰訊云

小說api1.0版本寫完了,接下來就開始部署到服務(wù)器上,用到了nginx、pm2、nvm、git、OpenSSL。

服務(wù)器配置: CentOS 7.4 64位 1 核 2 GB 1 Mbps
node版本: 8.9.0
nvm版本: 0.33.11
npm版本: 5.5.1
nginx版本:1.12.2
git版本: 2.9.5

第一步添加pm2配置文件

在小說api項(xiàng)目的根目錄創(chuàng)建一個(gè)pm2.json的文件。

{
    "name": "novel-api",  // 服務(wù)名
    "script": "./bin/www", // 啟動(dòng)腳本
    "cwd": "./",   // 當(dāng)前工作路徑
    "watch": [  // 監(jiān)控變化的目錄,一旦變化,自動(dòng)重啟
        "bin",
        "routers"
    ],
    "ignore_watch": [  // 從監(jiān)控目錄中排除
        "node_modules",
        "logs",
        "public",
        "log"
    ],
    "watch_options": {
        "followSymlinks": false
    },
    "max_memory_restart": "1G", // 根據(jù)內(nèi)存限制重新啟動(dòng)應(yīng)用程序。
    "error_file": "./logs/novel-apierr.log",  // 錯(cuò)誤日志路徑
    "out_file": "./logs/novel-api-out.log",   // 普通日志路徑
    "env": {
        "DEBUG": "novel-api",  // 環(huán)境變量參數(shù),debug名字為novel-api,8080端口監(jiān)聽
        "PORT": "8080"
    }
}

package.json文件添加npm run deploy部署命令。

"deploy": "pm2 start pm2.json"

pm2 常用命令。
pm2 save 保存當(dāng)前進(jìn)程列表。
pm2 resurrect 啟動(dòng)之前保存的進(jìn)程列表。
pm2 restart app.js|app_name 重啟進(jìn)程
pm2 start app.js 啟動(dòng)進(jìn)程
pm2 list 查看進(jìn)程列表
pm2 stop app_name |app_id 停止指定的應(yīng)用。 all 停止所有應(yīng)用

第二步購(gòu)買服務(wù)器和域名

購(gòu)買服務(wù)器https://buy.cloud.tencent.com/cvm?tab=lite,我買的是CentOS 7.4 64位 1 核 2 GB 1 Mbps的服務(wù)器。如果只是嘗試部署流程,可以選擇按時(shí)計(jì)費(fèi)。
購(gòu)買域名https://dnspod.cloud.tencent.com/?from=qcloudProductDns建議選.com的域名。

第三步設(shè)置子域名

添加一個(gè)api開頭的子域名https://console.cloud.tencent.com/domain,然后添加解析。

第四步登陸服務(wù)器安裝軟件

登陸到服務(wù)器然后執(zhí)行以下安裝命令。

安裝nginx
yum install -y nginx
nginx -v
安裝nvm
curl -o- https://raw.githubusercontent.com/creationix/nvm/v0.33.11/install.sh | bash
nvm --version
安裝node和pm2、apidoc
nvm install 8.9.0
nvm use 8.9.0
node -v
npm -v
npm install -g pm2 apidoc
安裝git
yum install -y curl-devel expat-devel gettext-devel openssl-devel zlib-devel tar
yum install -y gcc-c++ perl-ExtUtils-MakeMaker
cd /usr/src
wget https://www.kernel.org/pub/software/scm/git/git-2.9.5.tar.gz
tar xf git-2.9.5.tar.gz
cd git-2.9.5
make configure
make profix=/usr/git
make install
echo "export PATH=$PATH:/usr/git/bin" >> /etc/profile
source /etc/profile
git --version 
// 配置git
git config --global user.name "用戶名稱"
git config --global user.email 電子郵件地址
在服務(wù)器上克隆git倉(cāng)庫(kù)

先進(jìn)入home路徑創(chuàng)建wwwroot文件夾。

cd /home && mkdir wwwroot
cd wwwroot
git clone https://github.com/lanpangzhi/novel-api.git
cd novel-api
npm install
npm run doc
npm run deploy

這個(gè)應(yīng)用就pm2被啟動(dòng)了。

配置nginx

先啟動(dòng)nginx。

nginx

http://123.206.45.87 在瀏覽器輸入服務(wù)器ip就可以看到nginx已經(jīng)啟動(dòng)了。

進(jìn)入nginx配置目錄,新建文件。

cd /etc/nginx/conf.d
touch api.langpz.com-8080.conf

如果一臺(tái)服務(wù)器的server比較多,建議用域名和端口做配置文件名。
編輯api.langpz.com-8080.conf 配置文件。

vi api.langpz.com-8080.conf

把下面代碼復(fù)制粘貼過去。

upstream novel-api {
    server 127.0.0.1:8080;
}

server {
    listen 80;
    server_name 你自己的域名;
    location / {
        proxy_pass http://novel-api;
        proxy_set_header   X-Real-IP        $remote_addr;
        proxy_set_header   X-Forwarded-For  $proxy_add_x_forwarded_for;
        proxy_set_header   Host             $http_host;
        proxy_set_header   X-NginX-Proxy    true;
        proxy_redirect     off;
    }
}

ctrl + c 輸入:wq 退出并保存。再執(zhí)行nginx -s reload 在瀏覽器輸入你的域名就可以看到文檔,http://api.langpz.com

gzip壓縮
cd /etc/nginx/
vi nginx.conf

把下面代碼復(fù)制粘貼過去。

## gzip壓縮
gzip on;
# ie6不啟用gzip
gzip_disable "msie6";
gzip_vary on;
gzip_proxied any;
# 壓縮等級(jí) 1-9
gzip_comp_level 2;
gzip_buffers 16 8k;
gzip_http_version 1.1;
# 為除“text/html”之外的MIME類型啟用壓縮
gzip_types text/plain text/css application/json application/x-javascript application/javascript image/tiff image/x-icon application/font-woff application/vnd.ms-fontobject text/javascript;

ctrl + c 輸入:wq 退出并保存。再執(zhí)行nginx -s reload??梢匀フ鹃L(zhǎng)之家看你的壓縮率http://tool.chinaz.com/gzips/

隱藏nginx版本號(hào)

還是修改nginx.conf這個(gè)文件

vi nginx.conf

// 把下面代碼復(fù)制過去
# 隱藏nginx版本號(hào)
server_tokens off;

ctrl + c 輸入:wq 退出并保存。再執(zhí)行nginx -s reload。

這里就不顯示nginx版本號(hào)了。

配置ssl證書https,給你的網(wǎng)站加個(gè)小綠鎖

我用的是騰訊云的免費(fèi)證書,也可以自己生成。https://cloud.tencent.com/product/ssl?from=qcloudHpHeaderSsl,使用域名免費(fèi)版。

申請(qǐng)騰訊云ssl證書


直接點(diǎn)下一步,然后用推薦選項(xiàng)驗(yàn)證。申請(qǐng)很快不到十分鐘就下來,到時(shí)候還會(huì)有郵件和短信通知。

下載證書上傳到服務(wù)器

找到騰訊云的ssl證書管理去下載證書。

壓縮包里面有三個(gè)文件夾找到Nginx這個(gè)文件夾。
在服務(wù)器進(jìn)入nginx所在目錄新建一個(gè)文件夾。

cd /etc/nginx/
mkdir api.langpz.com

然后把Nginx文件夾里面兩個(gè)文件上傳到服務(wù)器/etc/nginx/api.langpz.com 這個(gè)文件夾里面。
可以下載一個(gè)FileZilla軟件或者下載一個(gè)別的ftp工具,還可以用命令行,我這里下載了FileZilla使用它去上傳。

加強(qiáng) HTTPS 安全性

首先在目錄 /etc/nginx/api.langpz.com 運(yùn)行以下代碼生成 dhparam.pem 文件

cd /etc/nginx/api.langpz.com    
openssl dhparam -out dhparam.pem 2048
修改配置文件
cd /etc/nginx/conf.d
touch api.langpz.com-8080.conf

把下面代碼覆蓋api.langpz.com-8080.conf文件。

upstream novel-api {
    server 127.0.0.1:8080;
}

# 配置共享會(huì)話緩存大小
ssl_session_cache shared:SSL:10m;
# 配置會(huì)話超時(shí)時(shí)間
ssl_session_timeout 10m;

# 強(qiáng)制跳轉(zhuǎn)https
server {
    listen 80;
    server_name api.langpz.com;
    return 301 https://$server_name$request_uri;
}

server {
 listen 443 ssl;
 server_name api.langpz.com;

 # 證書文件
 ssl_certificate      /etc/nginx/api.langpz.com/1_api.langpz.com_bundle.crt;
 # 私鑰文件
 ssl_certificate_key  /etc/nginx/api.langpz.com/2_api.langpz.com.key;
 # 設(shè)置長(zhǎng)連接
 keepalive_timeout    70;
 # 優(yōu)先采取服務(wù)器算法
 ssl_prefer_server_ciphers on;
 # 使用DH文件
 ssl_dhparam /etc/nginx/api.langpz.com/dhparam.pem;
 ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
 # 定義算法
 ssl_ciphers "EECDH+ECDSA+AESGCM EECDH+aRSA+AESGCM EECDH+ECDSA+SHA384 EECDH+ECDSA+SHA256 EECDH+aRSA+SHA384 EECDH+aRSA+SHA256 EECDH+aRSA+RC4 EECDH EDH+aRSA !aNULL !eNULL !LOW !3DES !MD5 !EXP !PSK !SRP !DSS !RC4";
 # HSTS策略
 add_header Strict-Transport-Security "max-age=31536000; includeSubDomains;preload" always;
 # 防XSS攻擊
 add_header X-Xss-Protection 1;
 # 禁止服務(wù)器自動(dòng)解析資源類型
 add_header X-Content-Type-Options nosniff;

 
 location / {
    proxy_pass http://novel-api;
    proxy_set_header   X-Real-IP        $remote_addr;
    proxy_set_header   X-Forwarded-For  $proxy_add_x_forwarded_for;
    proxy_set_header   Host             $http_host;
    proxy_set_header   X-NginX-Proxy    true;
    proxy_redirect     off;
 }
}

ctrl + c 輸入:wq 退出并保存。再執(zhí)行nginx -s reload。
現(xiàn)在就可以訪問https://api.langpz.com。如果訪問http協(xié)議就會(huì)強(qiáng)制跳轉(zhuǎn)到https協(xié)議。

SSL安全測(cè)試

[](https://www.ssllabs.com/sslte...
輸入你的域名。
之前在nginx配置加強(qiáng) HTTPS 安全性,所以結(jié)果是A+。

總結(jié)

這種部署比較麻煩,部署完發(fā)現(xiàn)pm2也有部署功能,2.0用koa.js重構(gòu)的時(shí)候用pm2部署,docker 生成鏡像
。

我的博客和github,喜歡就去點(diǎn)點(diǎn)星吧,謝謝。

https://github.com/lanpangzhi

http://blog.langpz.com

參考

https://nginx.org/en/docs/
https://github.com/creationix/nvm
https://www.thinkjs.org/zh-cn/doc/3.0/deploy.html
https://www.cnblogs.com/chyingp/p/pm2-documentation.html
http://www.runoob.com/git/git-install-setup.html
https://nginx.rails365.net/chapters/install.html
https://www.cnblogs.com/nuccch/p/7681592.html
https://aotu.io/notes/2016/08/16/nginx-https/index.html

文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請(qǐng)注明本文地址:http://systransis.cn/yun/103846.html

相關(guān)文章

  • vue小說移動(dòng)端閱讀器vue全家桶項(xiàng)目,已部署服務(wù)器可訪問預(yù)覽

    摘要:暑假實(shí)習(xí)了幾個(gè)月辭職后,閑著無聊自己開發(fā)的一個(gè)小說閱讀器鏈接,里面的小說接口調(diào)用的是追書神器,然后我把里面的和收費(fèi)章節(jié)做了處理加了個(gè)換源功能,里面需要收費(fèi)或者的小說都可以免費(fèi)看,此項(xiàng)目不做商用僅供學(xué)習(xí)無需登錄無廣告。 暑假實(shí)習(xí)了幾個(gè)月辭職后,閑著無聊自己開發(fā)的一個(gè)vue小說閱讀器鏈接 http://wx.wj007.top/book,里面的小說接口調(diào)用的是追書神器,然后我把里面的vip...

    lykops 評(píng)論0 收藏0
  • vue小說移動(dòng)端閱讀器vue全家桶項(xiàng)目,已部署服務(wù)器可訪問預(yù)覽

    摘要:暑假實(shí)習(xí)了幾個(gè)月辭職后,閑著無聊自己開發(fā)的一個(gè)小說閱讀器鏈接,里面的小說接口調(diào)用的是追書神器項(xiàng)目源碼我已經(jīng)上傳到,想看源碼搜索以下鏈接覺得可以的話點(diǎn)個(gè)共同進(jìn)步技術(shù)棧由于目前是實(shí)習(xí)生缺少一些經(jīng)驗(yàn)代碼分格可能適合一些初學(xué)者所以此項(xiàng)目很適合 暑假實(shí)習(xí)了幾個(gè)月辭職后,閑著無聊自己開發(fā)的一個(gè)vue小說閱讀器鏈接 http://www.wj007.top/book/ind...,里面的小說接口調(diào)用...

    FleyX 評(píng)論0 收藏0
  • vue小說移動(dòng)端閱讀器vue全家桶項(xiàng)目,已部署服務(wù)器可訪問預(yù)覽

    摘要:暑假實(shí)習(xí)了幾個(gè)月辭職后,閑著無聊自己開發(fā)的一個(gè)小說閱讀器鏈接,里面的小說接口調(diào)用的是追書神器項(xiàng)目源碼我已經(jīng)上傳到,想看源碼搜索以下鏈接覺得可以的話點(diǎn)個(gè)共同進(jìn)步技術(shù)棧由于目前是實(shí)習(xí)生缺少一些經(jīng)驗(yàn)代碼分格可能適合一些初學(xué)者所以此項(xiàng)目很適合 暑假實(shí)習(xí)了幾個(gè)月辭職后,閑著無聊自己開發(fā)的一個(gè)vue小說閱讀器鏈接 http://wx.wj007.top/book/inde...,里面的小說接口調(diào)用...

    Sanchi 評(píng)論0 收藏0

發(fā)表評(píng)論

0條評(píng)論

最新活動(dòng)
閱讀需要支付1元查看
<