搭建Linux雲伺服器

購買與基本配置

  • 雲服務
  • 註冊成為阿里雲使用者(有支付寶賬號就可以不用註冊),購買ECS雲伺服器

    購買地址
  • 購買選擇
    1. 地域及可用區:按自己想法選擇
    2. 例項規格:按自己家庭地位選擇
    3. 映象:預設選擇CentOs即可
    4. 網路型別:預設
    5. 公網頻寬:按自己經濟條件選擇
    6. 購買數量和時長:按需求選擇

      我比較窮用新賬號買了個88塊錢一年的新手版本地址
  • 檢視自己購買的產品

    檢視自己購買的產品
  • 檢視實力(左側選單欄-實力與映象-例項)
  • 幾個重要的地方
    1. ip地址:公網ip:是用於客戶端連線伺服器所用的地址(主機)
    2. 重置密碼:操作-->更多-->密碼/祕鑰-->重置例項密碼
    3. 記住:ip地址和自己的重置密碼(記不住就回來重置一下)

連結linux伺服器

  • 工具

    免費:putty finalshell git-bash cmder mac命令端 linux桌面

    收費:xshell SecureShell

    這裡我用的putty工具進行連結
  • 連結與登陸
    1. 開啟putty輸入:host Name(公網ip)、port(預設22就行)確認即可

      點選連線,第1次會看到提示,選擇 是 就可以
    2. 進去會讓你輸入login as:一般輸入root即可
    3. password:你設定的密碼(linux中對於密碼是隱式顯示,輸入後在終端中看不到字元)

目錄結構

Linux系統(以CentOs7為例)主要目錄結構,Linux目錄是一個樹狀結構。

名稱 解釋
/ 根目錄
bin 常用的命令
sbin 系統管理員可以執行的程式
boot linux核心及引導系統程式所需要的檔案目錄
etc 存放了系統管理時要用到的各種配置檔案和子目錄
home 用來存放使用者的主目錄,除root超級管理員家目錄不在此
mnt 一般是用於存放掛載儲存裝置的掛載目錄
root 超級許可權使用者root的家目錄
tmp 臨時檔案目錄,重要的檔案或目錄不能存放在此
usr 存放了使用者安裝的軟體,佔用硬碟空間最大的目錄
var 存放內容經常變動的目錄 如日誌檔案

基本命令

可以看這篇文章:開發常用命令

名稱 解釋
cd 路徑 進入指定路徑
cd .. 回到上一級
ls 檢視目錄的檔案或目錄列表
ls -d 檢視目錄資訊
ls -l 列表形式
ls -h 檔案大小會自己計算(k/m/g)
cat 路徑 檢視檔案內容
tail -f 路徑 實時檢視檔案最新更改內容
head -n 路徑 n數字 檢視當前檔案最頂部幾行
unzip dist.zip 解壓dist.zip檔案

軟體安裝

linux也是需要安裝軟體(服務也是軟體) ,如要安裝nginx,linux開源作業系統。軟體與軟體之前要有依賴關係。

  1. 原始碼安裝 在軟體官方去下載好 原始碼(c c++)進行編譯安裝 需要手動解決依賴
  2. rpm安裝 rpm類似於windows安裝包,使用它來安裝也需要手動解決依賴
  3. yum安裝 類似於npm,自動解決安裝時所需的依賴

注:yum需源站,源站都在國外,所以使用yum進行軟體安裝,需要切換映象源。現在所有的雲主機都已經幫你完成了。

Linux 系統啟動

啟動過程

Linux系統的啟動過程並不是大家想象中的那麼複雜,其過程可以分為5個階段

  1. 核心的引導
  2. 執行init
  3. 系統初始化
  4. 建立終端
  5. 使用者登入系統

執行級別

注意:在雲伺服器中,不要去設定它的執行級別。

Linux允許為不同的場合,分配不同的開機啟動程式,這就叫做"執行級別"(runlevel)。也就是說,啟動時根據"執行級別",確定要執行哪些程式。

  • Linux系統有7個執行級別(runlevel):
  1. 執行級別0:系統停機狀態,系統預設執行級別不能設為0,否則不能正常啟動 關機
  2. 執行級別1:單使用者工作狀態,root許可權,用於系統維護,禁止遠端登陸
  3. 執行級別2:多使用者狀態(沒有NFS)
  4. 執行級別3:完全的多使用者狀態(有NFS),登陸後進入控制檯命令列模式 命令列模式
  5. 執行級別4:系統未使用,保留
  6. 執行級別5:X11控制檯,登陸後進入圖形GUI模式 圖形模式,多使用者也是有命令
  7. 執行級別6:系統正常關閉並重啟,預設執行級別不能設為6,否則不能正常啟動 重啟
  • 在centos7之後對執行級別進行了稍微的修改

    init級別 systemctl target

    • 0: shutdown.target
    • 1: emergency.target
    • 2: rescure.target
    • 3: multi-user.target
    • 4: 無
    • 5: graphical.target
    • 6: 無
  • 檢視預設執行級別的方式為

    runlevel

    systemctl get-default

  • 設定預設執行級別的方式

    init 3

  • 設定成多使用者命令模式

    systemctl set-default multi-user.target

  • 關機

    init 0

  • 重啟

    init 6

rm -rf /usr/share/man/man8/nginx.8.gz

Nginx詳解

ginx是開源免費的一款輕量級的Web 伺服器/反向代理伺服器及電子郵件(IMAP/POP3)代理伺服器。其特點是佔有記憶體少,併發能力強,使用nginx網站使用者有很多,如百度、京東、新浪、網易、騰訊、淘寶等

官網

中文文件

1、安裝

在安裝nginx前首先檢視一下linux伺服器版本

cat /etc/redhat-release

這裡我的linux是8.1版本的(CentOs 8.x)

方式一:yum安裝

  • 預設埠號為 80
  • 預設配置檔名稱 nginx.conf
  • nginx預設web路徑中 /usr/share/nginx/html (存放我們的前端專案)
  1. 安裝:

    yum install nginx

  2. 啟用並啟動Nginx服務

    sudo systemctl enable nginx

    sudo systemctl start nginx

    當然nginx預設會被安裝到/usr/sbin/nginx下因此可以直接執行如下命令啟動

    /usr/sbin/nginx

  3. 要驗證服務是否正在執行,檢查其狀態

    sudo systemctl status nginx

  4. 檢視當前伺服器中執行埠

    netstat -tunpl

    -tunpl解釋:

    • t: tcp
    • u: udp
    • n: 顯示埠應用名稱
    • p: pid
    • l: 只檢視正在執行
  5. 擴充套件方法

    • 停止伺服器

      方法一: sudo systemctl stop nginx

      方法二:/usr/sbin/nginx -s stop

      方法三: 殺死程序 pkill nginx

    • 重啟

      /usr/sbin/nginx -s reload 不會讓伺服器停止,只會重新載入nginx配置讓配置生效 平滑重啟

      /usr/sbin/nginx -s restart 先停止服務,再重啟服務

方式二:自定義目錄安裝

  1. 安裝工具和庫

    依賴軟體一定要安裝,否則後面的nginx將無法正常安裝成功。

    yum -y install make zlib zlib-devel gcc-c++ libtool openssl openssl-devel pcre pcre-devel

    解釋:

    • PCRE是一個Perl庫,包括 perl 相容的正則表示式庫。nginx 的 http 模組使用 pcre 來解析正則表示式
    • zlib庫提供了很多種壓縮和解壓縮的方式, nginx 使用 zlib 對 http 包的內容進行 gzip
  2. 建立一個資料夾

    cd /usr/local

    mkdir nginx

    cd nginx

  3. 下載tar包

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

    tar -xvf nginx-1.19.0.tar.gz

  4. 安裝nginx

    進入目錄:cd nginx-1.19.0

    執行命令:./configure

    執行make命令: make

    執行make install命令:make install

  5. 檢查安裝

    cd到剛才配置的安裝目錄

    cd /usr/loca/nginx/

    ./sbin/nginx -t

    正常情況的資訊輸出:

    nginx: the configuration file /usr/local/nginx/conf/nginx.conf syntax is ok
    nginx: configuration file /usr/local/nginx/conf/nginx.conf test is successful

2、啟動nginx

  • 啟動 nginx 服務

    /usr/local/nginx/sbin/nginx

    注:啟動時一定要確保80埠沒有被佔用

    netstat -tunpl

    其他:

    /usr/local/nginx/sbin/nginx -s reload # 重新載入配置檔案

    /usr/local/nginx/sbin/nginx -s stop # 停止 Nginx

    /usr/local/nginx/sbin/nginx -t # 檢查配置檔案書寫是否正確

3、解決80埠被佔用

解決Nginx啟動報nginx: [emerg] bind() to 0.0.0.0:80 failed (98: Address already in use)
  1. 出現這種情況一般是80埠被佔用,使用sudo fuser -k 80/tcp 命令關閉80埠即可

    sudo fuser -k 80/tcp

  2. 如果沒有成功可以先關閉一下防火牆再關閉80埠試一下

    使用命令:systemctl status firewalld.service 檢視防火牆狀態

    使用命令:systemctl stop firewalld.service 關閉執行的防火牆

4、徹底解除安裝和刪除CentOS上的Nginx

  1. 首先檢視是否在執行nginx

    ps -ef | grep nginx

  2. 如果在執行先停止nginx

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

  3. 檢視nginx安裝目錄

    whereis nginx

  4. 刪除相關檔案

    rm -rf /usr/sbin/nginx

    rm -rf /etc/nginx

    rm -rf /etc/init.d/nginx

  5. 使用yum解除安裝 nginx及相關依賴

    yum remove nginx

  6. 檢查是否還有殘餘檔案,有的話執行步驟3繼續刪除

    whereis nginx

目錄介紹

安裝成功後,進入到安裝後的目錄中

cd /usr/local/nginx, 看到如下4個主要目錄

  • conf: 配置檔案 配置虛擬主機檔案就在此
  • html: nginx預設web根路徑位置
  • logs: 日誌檔案
  • sbin: 二進位制程式 啟動/停止/過載服務命令就在此

配置 nginx.conf

配置檔案語法

http段 => server段 => location段

  • http段: 是要包含所有的Server段,即將nginx所有的虛擬主機配置包含進去
  • server段: 一個server即一個虛擬主機配置段落,後期有多少個虛擬主機取決於server段
  • location段:每個location段即表示該虛擬主機中的一個模組功能配置 域名後臺的地址
  • 注:
    • 配置後面分號不能少,{} 和配置之間要有空格
    • nginx配置檔案中每一行的結束都要寫上 分號 ;
http{
server{
location /a {
root /a
}
location /b {
alias /a
}
}
}

配置虛擬主機

一臺伺服器上面,有時候會繫結多個不同的域名,這時就需要我們來配置nginx讓其支援多域名的虛擬主機(或多埠web伺服器)。

步驟:

  1. 在nginx配置檔案中新增一個server節點
  2. 在server節點中,修改對應的站點目錄
  3. 過載nginx服務 nginx -s reload
server {
listen 80; # 埠
server_name www.aa.com; # 域名
root /web/www.aa.com; # 網站目錄路徑
index index.html; # 預設預設檔案
charset utf-8;
access_log logs/ www.aa.com.access.log main;
error_page 404 403 500 502 503 504 /50x.html;
}

開啟gzip

壓縮檔案大小變小了,傳輸更快了,提高網站的訪問速度和併發量。目前市場上瀏覽器都是支援GZIP的。IE6以下支援不好,會出現亂碼情況。

操作步驟:

  1. 修改配置,開啟gzip壓縮
  2. 過載nginx配置
  3. 測試是否有壓縮
## http 節點中設定

# 開啟gzip
gzip on;
# 設定將被gzip壓縮的響應的最小長度
gzip_min_length 200;
# 壓縮級別 1-9
gzip_comp_level 6;
# 壓縮在緩衝區塊數和每塊大小
gzip_buffers 32 4k; # | 16 8k;
# 設定壓縮響應所需的最低HTTP請求版本
gzip_http_version 1.0;
gzip_types text/plain text/css text/xml application/xml application/json application/javascript;

動手釋出一個自己的專案到伺服器上

一、購買一個阿里雲伺服器

這裡在上面購買已經提到過了需要注意以下幾點

  1. 記錄自己的:公網ip
  2. 操作-->更多-->密碼/祕鑰-->重置例項密碼
  3. 操作-->更多-->網路和安全組->安全組配置

    進入後,檢視規則列表中,有沒有80埠,如果沒有則需要新增一條規則

二、putty 登陸伺服器

  1. 開啟putty輸入:host Name(公網ip)、port(預設22就行)點選確認即可

    點選連線,第1次會看到提示,選擇 是 就可以
  2. 進去會讓你輸入login as:一般輸入root即可
  3. password:你設定的密碼(linux中對於密碼是隱式顯示,輸入後在終端中看不到字元)

三、伺服器上安裝nginx

  1. 上面已經有安裝方法,按照步驟安裝完成即可
  2. 直接通過域名或ip地址訪問nginx伺服器(不同版本的nginx展示不一樣)
  3. nginx下的html檔案存放的就是我們前端要打包部署的檔案

四、上傳專案

這裡我們使用fileZlia視覺化工具來輔助完成剛上傳工作

  1. 開啟 fileZlia 工具連線linux伺服器
  2. 進去到/usr/local/nginx/sbin/nginx/html目錄下,
  3. 將我們vue專案打包好的dist存放到這裡
  4. 這裡如果dist過大會很慢,我們可以放入一個dist.zip檔案
  5. 解壓dist.zip

    進去終端執行

    cd /usr/local/nginx/sbin/nginx/html

    unzip dist.zip 解壓

五、配置niginx的nginx.conf

進去到/usr/local/nginx/sbin/nginx/conf目錄下,找到nginx.conf

配置 server項

   location / {
root html/dist;
index index.html index.htm;
}