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軟體稍弱 |
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 # 可以使用此命令判斷組態檔是否正確
目錄 | 說明 |
---|---|
/etc/nginx | 工作目錄 |
/usr/sbin/nginx | 執行檔案 |
/var/log/nginx | 紀錄檔檔案 |
/var/www/html/ | web目錄 |
目錄 | 說明 |
---|---|
/etc/nginx/nginx.conf | 預設檔案(全域性設定) |
/etc/nginx/conf.d | 存放自定義的conf檔案 |
/etc/nginx/{sites-available/sites-enabled/conf.d} | 其他目錄(存放第三方應用的組態檔) |
一個組態檔裡主要有全域性設定段、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 | 只指定埠,監聽所有IP | listen 8080 listen 0.0.0.0:8080 |
default_server | 預設地址,只能有一個server使用此關鍵字 |
Location設定
匹配規則(數位越小,優先順序越高)
型別 | 含義 | 優先順序 | 樣式 |
---|---|---|---|
=/路徑 | 精確匹配 | 1 | location = /image {} |
^~ | 優先匹配 | 2 | location ^~ /page {} |
~ 或 !~ | 正則敏感或不敏感 | 3 | location ~ .(jpe?g)$ {} |
~*或 !~ | 正則不敏感或敏感 | 3 | location ~* .(jpe?g)$ {} |
/ | 通用匹配 | 4 | location / {} |
@ | 內部重定向 | location @name {} |
location匹配規律
(1)、多個location匹配字元都能匹配成功的情況下,選擇優先順序最高的location規則去處理
(2)、多個locaiton匹配字元都能匹配成功,且他們的優先順序一樣的情況下,選擇先定義的location規則去處理(優先上面的)
新建/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;
}
}