前端搭建Linux雲服務器,Nginx配置詳解及部署自己項目到服務器上


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


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM