搭建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;
}