搭建Linux雲伺服器
購買與基本配置
- 雲服務
- 註冊成為阿里雲使用者(有支付寶賬號就可以不用註冊),購買ECS雲伺服器
購買地址 - 購買選擇
- 地域及可用區:按自己想法選擇
- 例項規格:按自己家庭地位選擇
- 映象:預設選擇CentOs即可
- 網路型別:預設
- 公網頻寬:按自己經濟條件選擇
- 購買數量和時長:按需求選擇
我比較窮用新賬號買了個88塊錢一年的新手版本地址
- 檢視自己購買的產品
檢視自己購買的產品 - 檢視實力(左側選單欄-實力與映象-例項)
- 幾個重要的地方
- ip地址:公網ip:是用於客戶端連線伺服器所用的地址(主機)
- 重置密碼:操作-->更多-->密碼/祕鑰-->重置例項密碼
- 記住:ip地址和自己的重置密碼(記不住就回來重置一下)
連結linux伺服器
- 工具
免費:putty finalshell git-bash cmder mac命令端 linux桌面
收費:xshell SecureShell
這裡我用的putty工具進行連結 - 連結與登陸
- 開啟putty輸入:host Name(公網ip)、port(預設22就行)確認即可
點選連線,第1次會看到提示,選擇 是 就可以 - 進去會讓你輸入login as:一般輸入root即可
- password:你設定的密碼(linux中對於密碼是隱式顯示,輸入後在終端中看不到字元)
- 開啟putty輸入:host Name(公網ip)、port(預設22就行)確認即可
目錄結構
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開源作業系統。軟體與軟體之前要有依賴關係。
- 原始碼安裝 在軟體官方去下載好 原始碼(c c++)進行編譯安裝 需要手動解決依賴
- rpm安裝 rpm類似於windows安裝包,使用它來安裝也需要手動解決依賴
- yum安裝 類似於npm,自動解決安裝時所需的依賴
注:yum需源站,源站都在國外,所以使用yum進行軟體安裝,需要切換映象源。現在所有的雲主機都已經幫你完成了。
Linux 系統啟動
啟動過程
Linux系統的啟動過程並不是大家想象中的那麼複雜,其過程可以分為5個階段
- 核心的引導
- 執行init
- 系統初始化
- 建立終端
- 使用者登入系統
執行級別
注意:在雲伺服器中,不要去設定它的執行級別。
Linux允許為不同的場合,分配不同的開機啟動程式,這就叫做"執行級別"(runlevel)。也就是說,啟動時根據"執行級別",確定要執行哪些程式。
- Linux系統有7個執行級別(runlevel):
- 執行級別0:系統停機狀態,系統預設執行級別不能設為0,否則不能正常啟動 關機
- 執行級別1:單使用者工作狀態,root許可權,用於系統維護,禁止遠端登陸
- 執行級別2:多使用者狀態(沒有NFS)
- 執行級別3:完全的多使用者狀態(有NFS),登陸後進入控制檯命令列模式 命令列模式
- 執行級別4:系統未使用,保留
- 執行級別5:X11控制檯,登陸後進入圖形GUI模式 圖形模式,多使用者也是有命令
- 執行級別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 (存放我們的前端專案)
安裝:
yum install nginx
啟用並啟動Nginx服務
sudo systemctl enable nginx
sudo systemctl start nginx當然nginx預設會被安裝到/usr/sbin/nginx下因此可以直接執行如下命令啟動
/usr/sbin/nginx
要驗證服務是否正在執行,檢查其狀態
sudo systemctl status nginx
檢視當前伺服器中執行埠
netstat -tunpl
-tunpl解釋:
- t: tcp
- u: udp
- n: 顯示埠應用名稱
- p: pid
- l: 只檢視正在執行
擴充套件方法
- 停止伺服器
方法一: sudo systemctl stop nginx
方法二:/usr/sbin/nginx -s stop
方法三: 殺死程序 pkill nginx - 重啟
/usr/sbin/nginx -s reload 不會讓伺服器停止,只會重新載入nginx配置讓配置生效 平滑重啟
/usr/sbin/nginx -s restart 先停止服務,再重啟服務
- 停止伺服器
方式二:自定義目錄安裝
安裝工具和庫
依賴軟體一定要安裝,否則後面的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
建立一個資料夾
cd /usr/local
mkdir nginx
cd nginx下載tar包
wget http://nginx.org/download/nginx-1.19.0.tar.gz
tar -xvf nginx-1.19.0.tar.gz安裝nginx
進入目錄:cd nginx-1.19.0
執行命令:./configure
執行make命令: make
執行make install命令:make install檢查安裝
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)
出現這種情況一般是80埠被佔用,使用sudo fuser -k 80/tcp 命令關閉80埠即可
sudo fuser -k 80/tcp
如果沒有成功可以先關閉一下防火牆再關閉80埠試一下
使用命令:systemctl status firewalld.service 檢視防火牆狀態
使用命令:systemctl stop firewalld.service 關閉執行的防火牆
4、徹底解除安裝和刪除CentOS上的Nginx
- 首先檢視是否在執行nginx
ps -ef | grep nginx
- 如果在執行先停止nginx
/usr/local/nginx/sbin/nginx -s stop
- 檢視nginx安裝目錄
whereis nginx
- 刪除相關檔案
rm -rf /usr/sbin/nginx
rm -rf /etc/nginx
rm -rf /etc/init.d/nginx - 使用yum解除安裝 nginx及相關依賴
yum remove nginx
- 檢查是否還有殘餘檔案,有的話執行步驟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伺服器)。
步驟:
- 在nginx配置檔案中新增一個server節點
- 在server節點中,修改對應的站點目錄
- 過載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以下支援不好,會出現亂碼情況。
操作步驟:
- 修改配置,開啟gzip壓縮
- 過載nginx配置
- 測試是否有壓縮
## 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;
動手釋出一個自己的專案到伺服器上
一、購買一個阿里雲伺服器
這裡在上面購買已經提到過了需要注意以下幾點
- 記錄自己的:公網ip
- 操作-->更多-->密碼/祕鑰-->重置例項密碼
- 操作-->更多-->網路和安全組->安全組配置
進入後,檢視規則列表中,有沒有80埠,如果沒有則需要新增一條規則
二、putty 登陸伺服器
- 開啟putty輸入:host Name(公網ip)、port(預設22就行)點選確認即可
點選連線,第1次會看到提示,選擇 是 就可以 - 進去會讓你輸入login as:一般輸入root即可
- password:你設定的密碼(linux中對於密碼是隱式顯示,輸入後在終端中看不到字元)
三、伺服器上安裝nginx
- 上面已經有安裝方法,按照步驟安裝完成即可
- 直接通過域名或ip地址訪問nginx伺服器(不同版本的nginx展示不一樣)
- nginx下的html檔案存放的就是我們前端要打包部署的檔案
四、上傳專案
這裡我們使用fileZlia視覺化工具來輔助完成剛上傳工作
- 開啟 fileZlia 工具連線linux伺服器
- 進去到/usr/local/nginx/sbin/nginx/html目錄下,
- 將我們vue專案打包好的dist存放到這裡
- 這裡如果dist過大會很慢,我們可以放入一個dist.zip檔案
- 解壓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;
}