【Linux】nginx伺服器的安裝、設定

2020-10-09 11:00:39

1.nginx

Nginx (engine x) 是一個高效能的HTTP和反向代理web伺服器,Nginx是一款輕量級的Web 伺服器/反向代理伺服器及電子郵件(IMAP/POP3)代理伺服器,在BSD-like 協定下發行(摘自百度百科)

優點

優點說明
高並行基於 epoll/kqueue 模型開發,能夠支援高達 50,000 個並行連線數的響應
記憶體開銷小Nginx採用C進行編寫,不論是系統資源開銷還是CPU使用效率都比 Perlbal 要好很多
簡單穩定設定簡單(一個conf檔案),執行簡單(nginx命令),而且執行穩定
模組化程度高支援外掛化設定
低成本nginx支援負載均衡功能,而且該軟體是免費開源的

缺點

缺點說明
動態處理差nginx善於處理靜態檔案,處理動態頁面的能力相對於Apache等重量級web軟體稍弱

2.安裝和命令

Ubuntu安裝

apt-get install nginx -y

常用命令

# 啟動/停止/重新啟動 ngix
sudo systemctl [start|stop|reload] nginx

nginx -V # 檢視版本和其他資訊
nginx -v # 檢視版本
nginx -c /etc/nginx/nginx.conf # 使用組態檔
nginx -s [stop|reload] # [關閉|重新啟動]
nginx -t  # 可以使用此命令判斷組態檔是否正確

3.設定

3.1 nginx預設目錄
目錄說明
/etc/nginx工作目錄
/usr/sbin/nginx執行檔案
/var/log/nginx紀錄檔檔案
/var/www/html/web目錄
3.2 nginx預設組態檔
目錄說明
/etc/nginx/nginx.conf預設檔案(全域性設定)
/etc/nginx/conf.d存放自定義的conf檔案
/etc/nginx/{sites-available/sites-enabled/conf.d}其他目錄(存放第三方應用的組態檔)
3.3 設定引數

一個組態檔裡主要有全域性設定段、http設定段、server設定段、location設定段

server設定
新建一個conf組態檔,裡面主要設定server,一個server代表一個服務

server {
	# 設定要監聽的ip、埠
    listen 8000;
    # 當一個主機存在多個網站時,可以通過Server_name指定域名,例如server_name www.example.com;
    server_name www.mysite.com;
    # 指定Server相應請求的HTML檔案所在路徑
    root /var/www/html;
    # 定義相應請求後返回的檔名或格式
    index index.html index.htm index.nginx-debian.html;
}

上面的listen是指監聽的ip和port

形式說明舉例
IP:Port精確指定IP和埠listten 192.168.205.153:8080
IP只指定IP,預設監聽80埠listen 192.168.205.153
Port只指定埠,監聽所有IPlisten 8080
listen 0.0.0.0:8080
default_server預設地址,只能有一個server使用此關鍵字

Location設定
匹配規則(數位越小,優先順序越高)

型別含義優先順序樣式
=/路徑精確匹配1location = /image {}
^~優先匹配2location ^~ /page {}
~ 或 !~正則敏感或不敏感3location ~ .(jpe?g)$ {}
~*或 !~正則不敏感或敏感3location ~* .(jpe?g)$ {}
/通用匹配4location / {}
@內部重定向location @name {}

location匹配規律

(1)、多個location匹配字元都能匹配成功的情況下,選擇優先順序最高的location規則去處理
(2)、多個locaiton匹配字元都能匹配成功,且他們的優先順序一樣的情況下,選擇先定義的location規則去處理(優先上面的)

3.4 設定舉例

新建/etc/nginx/conf.d/8080.conf並編輯如下:

server {
    listen 8080;
    server_name www.meiduo.site;

    location / {
        root /data/front_end_pc/;
        index index.html;
        try_files $uri $uri/ =404;
    }
}

新建/etc/nginx/conf.d/8081.conf並編輯如下:

server {
    listen 8081;
    server_name www.meiduo.site;

    location / {
        root /data/meiduo_mall_admin/;
        index index.html;
        try_files $uri $uri/ =404;
    }
}