国产xxxx99真实实拍_久久不雅视频_高清韩国a级特黄毛片_嗯老师别我我受不了了小说

資訊專欄INFORMATION COLUMN

阿里云服務器部署 nodejs + mongodb + nginx 反向代理 + https配置 s

jerryloveemily / 3408人閱讀

摘要:感謝老師,老師的慕課網教程購買阿里云服務器及域名終端連接阿里云服務器環境輸入密碼購買時的密碼如果出現這個問題的解決方案解決方法查看硬盤掛在情況如果有數據盤的情況下查看硬盤使用情況通過設置快捷登錄權限,可以增加幾個擁有權限的用戶下查

感謝 Scott 老師,Scott老師的慕課網教程 https://coding.imooc.com/clas...
1. 購買阿里云服務器及域名 2. 終端連接阿里云服務器(mac環境)

ssh root@39...* 輸入密碼(購買時的密碼)

如果出現這個問題的解決方案:root@39.106.220*.*: Permission denied (publickey,gssapi-keyex,gssapi-with-mic)

解決方法: https://blog.csdn.net/gigijin...

查看硬盤掛在情況:fdisk -l (如果有數據盤的情況下)

查看硬盤使用情況 df -h

通過zsh設置快捷登錄 alias ssh_orange="ssh root@39.106.22*.*"

root 權限,可以增加幾個擁有root權限的用戶

https://www.cnblogs.com/wang3...

adduser [name]

Linux下 ssh 查看用戶列表

復雜:cat /etc/passwd

簡化:cat /etc/passwd|grep -v nologin|grep -v halt|grep -v shutdown|awk -F":" "{ print $1"|"$3"|"$4 }"|more

刪除用戶: userdel orange001 直接刪除就好

給新用戶 orange01 設置密碼 passwd orange01 根據提示填寫兩次密碼

給新用戶升級權限 gpasswd -a orange001 sudo

(centos 環境)

配置用戶權限:
修改 /etc/sudoers 文件,找到下面一行,在root下面添加一行,如下所示:
## Allow root to run any commands anywhere
root    ALL=(ALL)     ALL
orange01   ALL=(ALL)     ALL
修改完畢,現在可以用 orange01 帳號登錄,然后用命令 su -  ,即可獲得root權限進行操作。
        :wq!  保存退出

重啟ssh 烏班圖上 srevice ssh restart centos7 命令:systemctl restart sshd.serviceservice sshd restart

ssh 實現無密碼登錄

 本地操作:
 本地生成 ssh key: ssh-keygen -t rsa -b 4096 -C "326242499.@qq.com"  同 git 操作一樣
 開啟 ssh 代理   eval "$(ssh-agent -s)"
 把ssh key 假如到代理中     ssh-add ~/.ssh/id_rsa  (在 .ssh 目錄下執行這一操作)
 
 遠程主機操作:
 再把上面本地操作的步驟重復一遍

 然后生成 authorized_keys 文件:         
 vi .ssh/authorized_keys
 然后將本地的公鑰的內容 (~/.ssh/id_rsa.pub)  拷貝到遠程主機的 authorized_keys 文件內
 
 授權 chmod 600 authorized_keys 
 重啟遠程主機 
 sudo service ssh restart(烏班圖) 
 systemctl restart sshd.service 或  service sshd restart (centos7)

 做完這些步驟就可以ssh免密登錄遠程主機了

端口安全性

ssh 默認登錄端口 22

在 root 賬戶下修改默認登錄端口號

centos7 修改默認22端口 https://www.cnblogs.com/zhuzi8849/p/6254498.html

不知道為什么我修改完之后 ssh -p 3600 root@39.**.**.* 登錄連接超時 (未設置成功)

配置安全項、防火墻(iptables) --- 未做

3. 搭建nodejs環境

更新:sudo yum update 或者 sudo yum upgrade (這個會報錯)

安裝: sudo yum install vim openssl build-essential libssl-dev wget curl git

安裝:nvm wget -qO- https://raw.githubusercontent.com/creationix/nvm/v0.33.11/install.sh | bash

安裝完之后 nvm --version 檢查下是否安裝成功 安裝 node: nvm install v8.11.3

好像下面兩步都不用做了 ,自動做好了

nvm use v8.10.0 nvm 指定使用的 node 的版本

nvm alias default v8.10.0 設置 node 默認使用版本

設置淘寶鏡像 npm --registry=https://registry.npm.taobao.org install -g npm

配置 cnpm npm --registry=https://registry.npm.taobao.org install -g cnpm

cnpm sync koa 同步 npm 上的模塊

增加系統文件監控數目 echo fs.inotify.max_user_watches=524288 | sudo tee -a /etc/sysctl.conf && sudo sysctl -p (不知道是做什么)

全局安裝 pm2 npm install -g pm2

開啟一個靜態站點

pm2 是一個 node.js 部署和進程管理工具,通過它可以實現 node.js 后臺運行(不是向上邊那樣關閉命令行服務就沒了)和出錯自動重啟

pm2 運維 node 服務本身

運行 pm2 start app.js 即可運行 node 服務

pm2 list 列出當前運行的 pm2-node 服務

pm2 show [App name|id] 查看詳細信息

pm2 log app 查看實時日志

退出 log ctrl + c

出現的問題: 無法使用 80 端口以外的端口開啟服務(會不會centos默認只對外暴露 80 端口)

4. nginx 實現反向代理
通過對80端口的監聽,將80端口的流量轉發到其他端口
讓web通過 80 端口被外網訪問
只有 root 權限的用戶才能使用 80 端口
服務器有多個網站 可以通過 nginx 代理 80端口,轉發給 特定的端口,實現負載均衡

刪除自帶的 阿帕奇服務,我的阿里云輕量服務器上好像并沒有找到 httpd

安裝 nginx下載好就行,不要再往下進行

進入 /etc/nginx/conf.d 目錄下,然后創建配置文件

配置文件:一個服務一個配置文件microblog-yao-3002.conf 命名規則:域名 + 端口

# 考慮負載均衡策略
    upstream microblog {
        server 127.0.0.1:3002; // 本地node服務
    }

    server {
        listen 80;
        server_name code-sky.cn; // 域名

        location / {
            proxy_set_header X-Real-IP $remote_addr;
            proxy_set_header X-Forward-For $proxy_add_x_forwarded_for;
            proxy_set_header Host $http_host;
            proxy_set_header X-Nginx-Proxy true;

            proxy_pass http://microblog; // 把域名代理到應用上
            proxy_redirect off;
        }
    }

    檢查 nginx/nginx.conf 配置文件 去掉 include 注釋 
    include /etc/nginx/conf.d/*.conf;  這句在 nginx.conf 必須要在 http 里面 server 外面
    sudo nginx -t 檢查 nginx 配置文件是否正確
    nginx 重啟  sudo nginx -s reload
    隱藏 nginx 版本  nginx.conf   http  設置  server_tokens off;

nginx 對 css,js 靜態資源的處理(可讓瀏覽器緩存靜態資源)

# 在多帶帶應用的nginx配置里,放在server里面同 location同級
# 對靜態資源的處理
location ~* ^.+.(jpg|jpeg|gif|png|ico|css|js|pdf|txt) {
    root /www/blog/production/current/admin/dist/;
}

# 開啟gizp壓縮
# new config lines for gzip
gzip on;
gzip_min_length 1k;
gzip_buffers 4 8k;
gzip_http_version 1.1;
gzip_types text/plain application/javascript application/x-javascript text/javascript text/css;

nginx 轉發配置(用 80端口代理,然后分發到不同的服務上)學習連接

5. 域名備案與DNS解析

一個域名只能指向一個 ip 地址,一個 ip地址可以被多個域名指向

域名記錄:A記錄 將一個域名指向到一個服務器的 ip地址

CNAME 將一個域名指向另一個域名

解析域名:阿里云域名控制臺-云解析DNS-添加記錄 根據提示設置域名及二級域名

6. 安裝 mongoDB 數據庫
在服務器上搭建 MongoDB數據庫(一般情況下,數據應該與應用分開,自己學習就無所謂了)
homebrew 本地安裝 MongoDB數據庫

安裝 homebrew

brew 安裝本地mongoDB數據庫 brew install mongodb brew安裝MongoDB

啟動mongodb服務:終端執行: brew services start mongodb

使用brew 默認下載地址為 /usr/local/Cellar/ 下的 mongodb文件夾。

To have launchd start mongodb now and restart at login:
brew services start mongodb
Or, if you don"t want/need a background service you can just run:
mongod --config /usr/local/etc/mongod.conf
服務器安裝 MongoDB數據庫(centos環境)

安裝mongodb-1

安裝mongodb-2

mongoDB操作

啟動報錯處理       mongod -repair

啟動mongodb 
systemctl start mongod.service  or  
service mongod start

重啟mongodb     
systemctl restart mongod.service   or     
service mongod restart

停止mongodb     
systemctl stop mongod.service       or      
service mongod stop

查看mongodb狀態 systemctl status mongod.service

登錄         mongo
查看數據庫    show dbs

修改 mongodb 默認連接端口號

sudo vi /etc/mongod.conf
# port: 27017
# 將端口號修改為 19999
port: 19999
bindIp: 127.0.0.1  # Listen to local interface only, comment to listen on all interfaces.
修改完端口   重啟mongodb  sudo service mongod  restart

指定端口連接  指定端口連接 mongodb  mongo --port 19999
注意:如果設置了防火墻,要將防火墻更新

備份本地MongoDB數據庫

mongodump -h 127.0.0.1:27017 -d test2 -o microblog

test2 數據庫名稱 microblog 備份文件夾名稱

將備份文件scp上傳至服務器

打包 tar zcvf microblog.tar.gz microblog

前面:打包后的文件名稱 后面:打包前的文件夾

上傳 scp -p 80 ./microblog.tar.gz root@39.106.220.6:/root/dbmicroblog

-p 服務器端口 本地tar包位置 服務器地址 服務器存放 tar 包的位置

對服務器上的 tar 包進行解壓縮 tar -xzvf microblog.tar.gz

tar 命令:
壓縮文件:tar -czvf test.tar.gz a.c    // 壓縮 a.c 文件為 test.tar.gz
解壓文件:tar -xzvf test.tar.gz a.c    // 解壓 test.tar.gz 為 a.c

將這個 test2 數據庫導入到線上剛剛配置完端口的數據庫

mongorestore --host 127.0.0.1:19999 -d test2 ./test2

前面test2 線上數據庫的名稱

后面 ./ test2 線上備份數據庫存儲的位置

查看是否導入成功

mongo --port 19999
show dbs    查看數據庫
use test2    進入test2數據庫
show tables 查看test2數據庫中的表
db.user.find({})    查看表中的數據 

導入到線上已有的數據庫,導入一張或多張單表

本地導出單表
mongoexport -d immoc-movie -c users -q "{"name": {$ne: null}}" -o ./movie-users.json

-d immoc-movie   數據庫名稱
-c users 要導出的表
-q 可選  查詢條件
-o 導出文件在本地存放的位置

將該單表 scp 上傳到服務器

將該單表導入到 線上數據庫 
mongoimport --host 127.0.0.1:19999 -d immoc-movie -c users ./movie-users.json

建議導入初始化數據時在配置數據庫權限之前,不然輸入的命令會麻煩很多,輸入各種命令

刪掉數據庫 mongo --host 127.0.0.1:19999 immoc-movie --eval "db.dropDatabase()"

mongod 打開mongoDB 服務

mongo 打開 mongoDB客戶端

brew services start mongodb

為數據庫配置權限
為數據庫設置用戶權限
設置  添加mongoDB管理員

use admin 
db.createUser({user: "orange", pwd: "yao1024", roles: [{role: "userAdminAnyDatabase", db: "admin"}]})

每次對不同數據庫創建管理員都需要到 admin 去認證
對用戶進行登錄授權
use admin
db.auth("orange", "yao1024")

切換到 test2
use test2

創建讀寫權限用戶
db.createUser({user: "microblog", pwd: "microblog", roles: [{role: "readWrite", db: "test2"}]})

創建備份角色
db.createUser({user: "wheel", pwd: "wheel", roles: [{role: "read", db: "test2"}]})
 

修改配置文件開啟mongoDB驗證模式
sudo vi /etc/mongod.conf

# security:  將 #去掉
authorization: "enable"  (兩個空格)

重啟 mongoDB 讓配置生效
sudo service mongod restart

重新登錄 mongo --port 19999
show dbs  就會報錯

use admin
db.auth("orange", "yao1024") 

直接登錄某個數據庫
mongo 127.0.0.1:19999/test2 -u microblog -p microblog
數據庫名  用戶名  密碼
向線上運行的數據庫導入數據表
遷移數據庫、遷移數據庫的一張單表

先將 庫或單表導出到服務器的某個目錄里,然后 tar 打包
用 scp -P 80 root@xx.xx.xx:/root/db/microblog.tar.gz
然后再把這個包上傳到另一臺服務器上

線上生產數據庫定時備份(上傳到云平臺)
7. 代碼部署

pm2,git倉庫 自動部署項目

創建一個新項目第一次時: pm2 deploy ecosystem.json production setup

接下來部署代碼部署代碼 pm2 deploy ecosystem.json production

pm2文檔

1. 服務器安裝 git,(和本地安裝git一樣,配置 rsa_pub 等文件,可以實現免密)
2. 本地代碼上傳到代碼倉庫
3. 服務器拉取代碼倉庫代碼

4. 在項目根目錄創建 pm2 自動部署文件  ecosystem.json,編輯部署文件內容

5. 在服務器根目錄上新建 /www   目錄,與 pm2 配置文件映射起來

6. 在本地執行  pm2 deploy ecosystem.json production setup  即可成功部署

7.  可能部署失敗的原因:賬號權限不夠,服務器 www 文件不存在  部署的 user 用戶必須要有創建文件夾的權限
    原理:通過本地 pm2 登錄遠程服務器,通知遠程服務器從代碼倉庫拉取代碼到部署目錄

8. pm2 在服務器上使用的是 非交互 ssh 連接方式,需要注釋 .bashec 文件內容  (我的centos 沒找到那兩句,所以什么也沒做)

9. 將 代碼倉庫更新,確保 ecosystem.json 存在于 /www/production/current 目錄里

10. 執行 pm2 deploy ecosystem.json production   部署成功,即發布成功

11. 修改 nginx 配置文件  創建3000端口的 conf      
    問題:如何開啟兩個端口共存,防火墻允許3000端口訪問,還是申請個域名吧

12. 代碼更新 pm2 deploy 的 HEAD 指向不了最新的提交,還是指向上次的提交
    解決方法:需要在 pm2 配置文件中多加一行配置
    "post-deploy": "git pull && npm install && pm2 startOrRestart ecosystem.json --env production",

13. 如果數據庫設置了用戶權限:代碼里連接數據庫要以

14.  如果沒有域名,怎么在 nginx 配置映射二級域名,有 二級 ip地址之說嗎? 不要搞了,還是備案域名吧
8. 配置HTTPS 協議

騰訊云申請免費 SSL 證書(亞洲誠信DV SSL證書)

SSL證書管理頁面 -> 申請證書 -> 填入信息 -> 手動DNS 驗證 -> 驗證成功之后會得到一條記錄包括(主機記錄 記錄類型(CNAME) 記錄值)-> 在阿里云域名管理后臺新添加一條記錄(將剛才得到驗證記錄填寫進去)-> 填寫生效后,證書就頒發好了 參考鏈接

將下載好的 SSL 證書上(Nginx目錄下)傳到 服務器上 scp -p 80 ./admin.code-sky.cn/Nginx/2_admin.code-sky.cn.key root@39.106.220.6:/root scp -p 80 ./admin.code-sky.cn/Nginx/1_admin.code-sky.cn_bundle.crt root@39.106.220.6:/root

將上傳好的文件放到 一個名為 ssl 的文件夾,然后將 ssl 文件夾移動到 /www 目錄下

修改 nginx 配置文件

    upstream admin {
        server 127.0.0.1:3003;
    }

    server {
        listen 80;
        server_name admin.code-sky.cn;
        # rewrite ^(.*) https://$host$1 permanent;
        return 301 https://admin.code-sky.cn$request_uri;
    }

    server {
        listen 443;
        server_name admin.code-sky.cn; #填寫綁定證書的域名
        ssl on;
        ssl_certificate /www/ssl/1_admin.code-sky.cn_bundle.crt;
        ssl_certificate_key /www/ssl/2_admin.code-sky.cn.key;
        ssl_session_timeout 5m;
        ssl_protocols TLSv1 TLSv1.1 TLSv1.2; #按照這個協議配置
        ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:HIGH:!aNULL:!MD5:!RC4:!DHE;#按照這個套件配置
        ssl_prefer_server_ciphers on;

        if ($ssl_protocol = "") {
        rewrite ^(.*) https://$host$1 permanent;
        }

        location / {
            proxy_set_header X-Real-IP $remote_addr;
            proxy_set_header X-Forward-For $proxy_add_x_forwarded_for;
            proxy_set_header Host $http_host;
            proxy_set_header X-Nginx-Proxy true;

            proxy_pass http://admin; # 相當于 代理 到 upstream 配置的 服務端口
            proxy_redirect off;
        }
        location ~* ^.+.(jpg|jpeg|gif|png|ico|css|js|pdf|txt) {
            root /www/blog/production/current/admin/dist/;
        }

        # 幫老板轉發個接口,好讓他可以繞過小程序的 https 接口的限制
        location /yapi/ {
          proxy_pass http://yapi.demo.qunar.com/; #以 / 結尾就不會帶/api/了
        }

        # new config lines for gzip
        gzip on;
        gzip_min_length 1k;
        gzip_buffers 4 8k;
        gzip_http_version 1.1;
        gzip_types text/plain application/javascript application/x-javascript text/javascript text/css;
    }

檢查 nginx 文件配置是否正確 sudo nginx -t

重啟nginx sudo nginx -s reload 即完成 https 配置

文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。

轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/40246.html

相關文章

  • 阿里務器部署 nodejs + mongodb + nginx 反向代理 + https配置 s

    摘要:感謝老師,老師的慕課網教程購買阿里云服務器及域名終端連接阿里云服務器環境輸入密碼購買時的密碼如果出現這個問題的解決方案解決方法查看硬盤掛在情況如果有數據盤的情況下查看硬盤使用情況通過設置快捷登錄權限,可以增加幾個擁有權限的用戶下查 感謝 Scott 老師,Scott老師的慕課網教程 https://coding.imooc.com/clas... 1. 購買阿里云服務器及域名 2. ...

    張春雷 評論0 收藏0
  • 阿里務器之項目線上部署過程

    摘要:還有需要配置安全組,在阿里云控制臺中進行配置,添加和端口,才能夠訪問到線上服務器。 在搭建web全棧的過程中,最令我頭疼的就是項目的部署與上線,這個過程雖然簡單,但是對于全棧菜鳥的我來說真的是個大坑,但是我還是去嘗試,終于通過各種文檔、請教與實踐中完成了線上部署,在此做一下記錄與總結 一、購買服務器 服務器選擇:服務器的品牌有很多,如亞馬遜、阿里云、騰訊等等,各大廠商之間的產品、服務...

    sevi_stuo 評論0 收藏0
  • NodeJS項目遷移兼Ubuntu下NodeJS環境部署

    摘要:前言之前做的幾個項目都托管在阿里云服務器,但是最近要到期了。環境部署折騰了一天,其中也遇到幾個坑。項目遷移歷時一天,兩臺服務器的系統都是位。 前言 之前做的幾個項目都托管在阿里云服務器,但是最近要到期了。想著到底要不要續期,畢竟100/月。后面看著阿里云有個活動,800/三年。果斷買下。環境部署折騰了一天,其中也遇到幾個坑。 目錄 一、安裝環境 1.1 安裝NodeJS環境 ...

    jlanglang 評論0 收藏0
  • 務器小白的我,是如何成功將 node+mongodb 項目部署務器上并進行性能優化的

    摘要:前言本文講解的是做為前端開發人員,對服務器的了解還是小白的我,是如何一步步將項目部署在阿里云的服務器上,并進行性能優化,達到頁面秒內看到,秒內看到首屏內容的。搭建的項目是采用了主流的前后端分離思想的,這里只講服務器環境搭建與性能優化。 showImg(https://segmentfault.com/img/remote/1460000017143281); 前言 本文講解的是:做為前...

    zsy888 評論0 收藏0

發表評論

0條評論

最新活動
閱讀需要支付1元查看
<