雲服務器部署

雲服務器

提供者

​ 阿里雲

​ 百度雲

​ 新浪雲

​ 騰訊雲

​ 。。。

阿里雲服務器 ECS node環境搭建 流程

  1. 購買一個雲服務器

  2. 購買域名,進行備案 【 不做 】 || 雲服務器提供的 ip地址(公有)

  3. 選擇公共鏡像系統: Centos 64 7.x 【 linux 操作系統 】

  4. 自定義密碼

    1. 用戶名: root
    2. 密碼: xxxxxxxxxxxx
  5. 記錄自己的ip

    1. 公網 59.110.226.77 接口 項目地址
    2. 私網 172.17.91.93 起本地服務 localhost/主機IP
  6. 遠程連接

    1. 阿里雲服務器網頁自帶的 , 輸入遠程連接密碼 【 不推薦 】

    2. git (推薦) gitbash 客戶端輸入一下命令( git連接遠程服務器 )

      ssh root@公網IP

      1. 連接是如果報錯:

        @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
        @    WARNING: REMOTE HOST IDENTIFICATION HAS CHANGED!     @
        @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
        IT IS POSSIBLE THAT SOMEONE IS DOING SOMETHING NASTY!
        Someone could be eavesdropping on you right now (man-in-the-middle attack)!
        It is also possible that a host key has just been changed.
        The fingerprint for the ECDSA key sent by the remote host is
        SHA256:AsIAPiYK8s+4gu6of4Xui8yjWCQ1lqltMow9iPvD85U.
        Please contact your system administrator.
        Add correct host key in /c/Users/Pc/.ssh/known_hosts to get rid of this message.
        Offending ECDSA key in /c/Users/Pc/.ssh/known_hosts:1
        ECDSA host key for 59.110.226.77 has changed and you have requested strict checking.
        Host key verification failed.
        
        

        解決方案:

        rm -rf ~/.ssh/known_hosts

----------------------------------------------------- 構建服務器環境 -----------------------------------------------------------------------

  1. 安裝node
如何從EPEL庫安裝Node.js

另一個有效且簡單的方法來安裝Node.js就是從官方庫。這同樣確保您可以訪問到EPEL庫,

你可以通過運行以下命令。

sudo yum install epel-release

現在可以使用yum命令安裝Node.js了。

sudo yum install nodejs

因爲在開發過程中我需要管理節點包,我還要安裝新公共管理的軟件包管理器,

使用以下命令。

sudo yum install npm

whereis node 

  1. 配置安全組 【 因爲我們的項目有兩個: vue,React 這兩個項目需要兩個端口 】

    1. 端口範圍 1/60000
    2. 授權對象: 0.0.0.0/0
  2. 書寫代碼來測試一下 node 使用

    1. 先使用express簡單搭建一個服務器, 暴露幾個接口, 本地測試, 測試通過在去連接遠程
  3. 連接遠程服務器, 上傳本地代碼(本地文件) xftp 5

    1. 安裝時我們選擇 : 選擇第一個 : 商用 添加註冊碼: 101210-450789-147200

    2. 新建一個會話 連接遠程服務器

      [外鏈圖片轉存失敗(img-uJQQDLEB-1564409917051)(E:\1902\07-雲服務器部署-項目上線\xftp5-會話創建.png)]

  4. 連接之後就可以看到我們 遠程服務器的根目錄 /root

  5. 創建一個目錄

  6. 將本地代碼傳輸到 遠程服務器目錄(不要上傳node_modules等文件)

  7. 在遠程服務器目錄 安裝依賴 npm i

  8. 啓動項目

11.添加負載均衡 pm2 https://www.cnblogs.com/lxg0/p/7771229.html 永久掛起服務

npm i pm2 -g 全局安裝pm2

pm2 start app.js  後臺掛起服務

pm2 list  查看後臺掛起所有服務

pm2 stop id  根據服務id 停止當前服務 

pm2 delete id 根據服務 id 刪除當前服務 

pm2 restart id 重啓服務 

  1. 安裝 mongodb 數據庫 http://www.cnblogs.com/web424/p/6928992.html
    1. vim命令基本使用
      1. vim a.txt
      2. 先按鍵盤的 I
      3. 寫入內容 (shift + ins)
      4. 退出 先按 ESC 鍵
      5. 再打 : wq 會出即可保存並退出
    2. 注意點: 防火牆忽略

簡介
MongoDB 是一個介於關係數據庫和非關係數據庫之間的產品,是非關係數據庫當中功能最豐富,最像關係數據庫的。他支持的數據結構非常鬆散,是類似json的bson格式,因此可以存儲比較複雜的數據類型。Mongo最大的特點是他支持的查詢語言非常強大,其語法有點類似於面向對象的查詢語言,幾乎可以實現類似關係數據庫單表查詢的絕大部分功能,而且還支持對數據建立索引。
Packages包說明
MongoDB官方源中包含以下幾個依賴包:
mongodb-org: MongoDB元數據包,安裝時自動安裝下面四個組件包:
1.mongodb-org-server: 包含MongoDB守護進程和相關的配置和初始化腳本。
2.mongodb-org-mongos: 包含mongos的守護進程。
3.mongodb-org-shell: 包含mongo shell。
4.mongodb-org-tools: 包含MongoDB的工具: mongoimport, bsondump, mongodump, mongoexport, mongofiles, mongooplog, mongoperf, mongorestore, mongostat, and mongotop。

安裝步驟

1.配置MongoDB的yum源

創建yum源文件:
vim /etc/yum.repos.d/mongodb-org-3.4.repo
添加以下內容:
[mongodb-org-3.4]
name=MongoDB Repository
baseurl=https://repo.mongodb.org/yum/redhat/$releasever/mongodb-org/3.4/x86_64/
gpgcheck=1
enabled=1
gpgkey=https://www.mongodb.org/static/pgp/server-3.4.asc

這裏可以修改 gpgcheck=0, 省去gpg驗證

安裝之前先更新所有包 :yum update (可選操作)

2.安裝MongoDB
安裝命令:
yum -y install mongodb-org

img

安裝完成後

查看mongo安裝位置 whereis mongod

查看修改配置文件 : vim /etc/mongod.conf

3.啓動MongoDB
啓動mongodb :systemctl start mongod.service
停止mongodb :systemctl stop mongod.service

查到mongodb的狀態:systemctl status mongod.service

img

4.外網訪問需要關閉防火牆:

5.設置開機啓動

img

6.啓動Mongo shell

查看數據庫:show dbs

img

7.設置mongodb遠程訪問:

img

重啓mongodb:systemctl restart mongod.service

本地數據庫同步遠程雲服務器數據庫

mongo 公網ip

$ mongo 59.110.226.77
  1. nginx 靜態服務器 \ 反向代理

    https://www.linuxidc.com/Linux/2016-09/134907.htm

    爲什麼要使用nginx?

    ​ 我們要通過靜態服務器才能將vue、react項目打包後的內容運行起來

    但是會遇到兩個問題?

    1. 路由404報錯
    2. 反向代理出錯
    

    所以我們選擇Nginx 【 前端的靜態服務器環境 】 反向代理問題

    安裝所需環境

    Nginx 是 C語言 開發,建議在 Linux 上運行,當然,也可以安裝 Windows 版本,本篇則使用 CentOS 7 作爲安裝環境。

    一. gcc 安裝
    安裝 nginx 需要先將官網下載的源碼進行編譯,編譯依賴 gcc 環境,如果沒有 gcc 環境,則需要安裝:

    yum install gcc-c++
    

    二. PCRE pcre-devel 安裝
    PCRE(Perl Compatible Regular Expressions) 是一個Perl庫,包括 perl 兼容的正則表達式庫。nginx 的 http 模塊使用 pcre 來解析正則表達式,所以需要在 linux 上安裝 pcre 庫,pcre-devel 是使用 pcre 開發的一個二次開發庫。nginx也需要此庫。命令:

    yum install -y pcre pcre-devel
    

    三. zlib 安裝
    zlib 庫提供了很多種壓縮和解壓縮的方式, nginx 使用 zlib 對 http 包的內容進行 gzip ,所以需要在 Centos 上安裝 zlib 庫。

    yum install -y zlib zlib-devel
    

    四. OpenSSL 安裝
    OpenSSL 是一個強大的安全套接字層密碼庫,囊括主要的密碼算法、常用的密鑰和證書封裝管理功能及 SSL 協議,並提供豐富的應用程序供測試或其它目的使用。
    nginx 不僅支持 http 協議,還支持 https(即在ssl協議上傳輸http),所以需要在 Centos 安裝 OpenSSL 庫。

    yum install -y openssl openssl-devel
    

    官網下載

    1.直接下載.tar.gz安裝包,地址:https://nginx.org/en/download.html

    nginx.png

    2.使用wget命令下載(推薦)。

    wget -c https://nginx.org/download/nginx-1.10.1.tar.gz
    

    nginx-wget.png

    我下載的是1.10.1版本,這個是目前的穩定版。

    解壓

    依然是直接命令:

    tar -zxvf nginx-1.10.1.tar.gz
    cd nginx-1.10.1
    

    配置

    其實在 nginx-1.10.1 版本中你就不需要去配置相關東西,默認就可以了。當然,如果你要自己配置目錄也是可以的。
    1.使用默認配置

    ./configure 
    

    2.自定義配置(不推薦)

    +
    ./configure \
    --prefix=/usr/local/nginx \
    --conf-path=/usr/local/nginx/conf/nginx.conf \
    --pid-path=/usr/local/nginx/conf/nginx.pid \
    --lock-path=/var/lock/nginx.lock \
    --error-log-path=/var/log/nginx/error.log \
    --http-log-path=/var/log/nginx/access.log \
    --with-http_gzip_static_module \
    --http-client-body-temp-path=/var/temp/nginx/client \
    --http-proxy-temp-path=/var/temp/nginx/proxy \
    --http-fastcgi-temp-path=/var/temp/nginx/fastcgi \
    --http-uwsgi-temp-path=/var/temp/nginx/uwsgi \
    --http-scgi-temp-path=/var/temp/nginx/scgi
    

    注:將臨時文件目錄指定爲/var/temp/nginx,需要在/var下創建temp及nginx目錄

    3.配置https支持的ssl模塊

    ./configure --prefix=/usr/local/nginx --with-http_ssl_module
    

    編譯安裝

    make
    make install
    

    查找安裝路徑:

    whereis nginx
    

    nginx-whereis.png

    啓動、停止nginx

    cd /usr/local/nginx/sbin/
    ./nginx 
    ./nginx -s stop
    ./nginx -s quit
    ./nginx -s reload
    

    ./nginx -s quit:此方式停止步驟是待nginx進程處理任務完畢進行停止。
    ./nginx -s stop:此方式相當於先查出nginx進程id再使用kill命令強制殺掉進程。

    查詢nginx進程:

    ps aux|grep nginx
    

    重啓 nginx

    1.先停止再啓動(推薦):
    對 nginx 進行重啓相當於先停止再啓動,即先執行停止命令再執行啓動命令。如下:

    ./nginx -s quit
    ./nginx
    

    2.重新加載配置文件:
    當 ngin x的配置文件 nginx.conf 修改後,要想讓配置生效需要重啓 nginx,使用-s reload不用先停止 ngin x再啓動 nginx 即可將配置信息在 nginx 中生效,如下:
    ./nginx -s reload

    啓動成功後,在瀏覽器可以看到這樣的頁面:

    nginx-welcome.png

    開機自啓動

    即在rc.local增加啓動代碼就可以了。

    vi /etc/rc.local
    

    增加一行 /usr/local/nginx/sbin/nginx
    設置執行權限:

    chmod 755 rc.local
    

    nginx-rclocal.png

    到這裏,nginx就安裝完畢了,啓動、停止、重啓操作也都完成了,當然,你也可以添加爲系統服務,我這裏就不在演示了。

    nginx配置問題解決

    1. 問題: 本地項目上傳之後, 路由重定向 跳轉 404 頁面

      解決

      ​ 在 /usr/local/nginx/conf/nginx.conf 中修改如下配置:

      server {
            listen 10002;
            server_name localhost;
            location / {
                 root zmh_react_project;
                 try_files $uri /index.html; #解決路由重定向跳轉 404 頁面配置
                 index index.html;
            }
         
          }
      
    2. 問題: 本地配置的反向代理數據獲取不到,

      解決

      ​ 在 /usr/local/nginx/conf/nginx.conf 中修改如下配置:

    
    server {
          listen 10002;
          server_name localhost;
          location / {
              root zmh_react_project;
               try_files $uri /index.html; #解決路由重定向跳轉 404 頁面配置
               index index.html;
          }
          location /marketing { # 解決反向代理數據獲取不到
                proxy_pass https://resource.smartisan.com/marketing;
                # 這個標識符有時候要加有時候不加
          }
          location /product {
                proxy_pass https://www.smartisan.com/product;
          }
        }
    
    1. 問題: 多項目配置多個端口

      解決: 在nginx配置文件中添加多個 server配置, 但是要注意 項目文件夾要和 nginx /html目錄同級

      目錄應該如下: 
          nginx
      
          		html
      
          		vue-project
      
          		react-project
      

      ​ 在 /usr/local/nginx/conf/nginx.conf 中修改如下配置:

      server {  #此2爲默認端口設置
              listen       80;
              server_name  localhost;
      
              #charset koi8-r;
      
              #access_log  logs/host.access.log  main;
      
              location / {
                  root   project_list;
                  index  index.html index.htm;
              }
      
              #error_page  404              /404.html;
      
              # redirect server error pages to the static page /50x.html
              #
              error_page   500 502 503 504  /50x.html;
              location = /50x.html {
                  root   html;
              }
      
              # proxy the PHP scripts to Apache listening on 127.0.0.1:80
              #
              #location ~ \.php$ {
              #    proxy_pass   http://127.0.0.1;
              #}
      
              # pass the PHP scripts to FastCGI server listening on 127.0.0.1:9000
              #
              #location ~ \.php$ {
              #    root           html;
              #    fastcgi_pass   127.0.0.1:9000;
              #    fastcgi_index  index.php;
              #    fastcgi_param  SCRIPT_FILENAME  /scripts$fastcgi_script_name;
              #    include        fastcgi_params;
              #}
      
              # deny access to .htaccess files, if Apache's document root
              # concurs with nginx's one
              #
              #location ~ /\.ht {
              #    deny  all;
              #}
          }
      
      server {
            listen 10002;
            server_name localhost;
            location / {
                root zmh_react_project;
                 try_files $uri /index.html; #解決路由重定向跳轉 404 頁面配置
                 index index.html;
            }
            location /marketing { # 解決反向代理數據獲取不到
                  proxy_pass https://resource.smartisan.com/marketing;
            }
            location /product {
                  proxy_pass https://www.smartisan.com/product;
            }
          }
          
       server {
            listen 10001;
            server_name localhost;
            location / {
                root zmh_react_project;
                 try_files $uri /index.html; #解決路由重定向跳轉 404 頁面配置
                 index index.html;
            }
            location /marketing { # 解決反向代理數據獲取不到
                  proxy_pass https://resource.smartisan.com/marketing;
            }
            location /product {
                  proxy_pass https://www.smartisan.com/product;
            }
          }
      
    2. 問題: ssh連接遠程服務器異常

      解決:

       1. 保證 git 協議  中的公鑰和私鑰已配置
       2. 配置完成之後重啓 示例
       3. 以上都不行, 重裝鏡像
      

    --------------------------------------分割線 --------------------------------------

    Nginx負載均衡配置實戰 http://www.linuxidc.com/Linux/2014-12/110036.htm

    CentOS 6.2實戰部署Nginx+MySQL+PHP http://www.linuxidc.com/Linux/2013-09/90020.htm

    使用Nginx搭建WEB服務器 http://www.linuxidc.com/Linux/2013-09/89768.htm

    搭建基於Linux6.3+Nginx1.2+PHP5+MySQL5.5的Web服務器全過程 http://www.linuxidc.com/Linux/2013-09/89692.htm

    CentOS 6.3下Nginx性能調優 http://www.linuxidc.com/Linux/2013-09/89656.htm

    CentOS 6.3下配置Nginx加載ngx_pagespeed模塊 http://www.linuxidc.com/Linux/2013-09/89657.htm

    CentOS 6.4安裝配置Nginx+Pcre+php-fpm http://www.linuxidc.com/Linux/2013-08/88984.htm

    Nginx安裝配置使用詳細筆記 http://www.linuxidc.com/Linux/2014-07/104499.htm

    Nginx日誌過濾 使用ngx_log_if不記錄特定日誌 http://www.linuxidc.com/Linux/2014-07/104686.htm

    --------------------------------------分割線 --------------------------------------

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