Nginx 的幾個常用配置和技巧

2021-09-29 01:14:53 字數 3108 閱讀 3965

nginx 的幾個常用配置和技巧

server
server_name後跟多個網域名稱即可,多個網域名稱之間用空格分隔

server 

}server

}server

}

基於 nginx 虛擬主機配置實現,nginx 有三種型別的虛擬主機

基於埠的虛擬主機:每個站點對應不同的埠,訪問的時候使用 ip:port 的方式訪問,可以修改 listen 的埠來使用

基於網域名稱的虛擬主機:使用最廣的方式,上邊例子中就是用了基於網域名稱的虛擬主機,前提條件是你有多個網域名稱分別對應每個站點,server_name 寫不同的網域名稱即可

server 

}

有很多服務通過 nginx 訪問,但本身沒有提供賬號認證的功能,就可以通過 nginx 提供的 authbase 號密碼認證來實現,可以用以下指令碼來生成賬號的密碼

# cat pwd.pl 

#!/usr/bin/perl

use strict;

my $pw=$ar**[0] ;

print crypt($pw,$pw)."\n";

使用方法:

# perl pwd.pl ops-coffee.cn

opf8bimqcaxww

# echo "admin:opf8bimqcaxww" > key/auth.key

server 

}

autoindex_exact_size:為 on(預設) 時顯示檔案的確切大小,單位是 byte;改為 off 顯示檔案大概大小,單位 kb 或 mb 或 gb

autoindex_localtime:為 off(預設) 時顯示的檔案時間為 gmt 時間;改為 on 後,顯示的檔案時間為伺服器時間

if ($request_filename ~* ^.*?\.(txt|pdf|jpg|png)$)
server
當乙個 nginx 服務上建立了多個虛擬主機時缺省會從上到下查詢,如果匹配不到虛擬主機則會返回第乙個虛擬主機的內容,如果你想指定乙個預設站時,可以將這個站點的虛擬主機放在配置檔案中第乙個虛擬主機的位置,或者在這個站點的虛擬主機上配置 listen default

server
可能有一些未備案的網域名稱或者你不希望的網域名稱將伺服器位址指向了你的伺服器,這時候就會對你的站點造成一定的影響,需要禁止 ip 未配置的網域名稱訪問,我們利用上邊所說的 default 規則,將預設流量都轉到 404 去

}}稍不注意可能會落入乙個proxy_pass加槓不加槓的陷阱,這裡詳細說下proxy_pass http://tomcatsproxy_pass http://tomcats/的區別:

雖然只是乙個 / 的區別但結果確千差萬別。分為以下兩種情況:

目標位址中不帶 uri(proxy_pass http://tomcats)。此時新的目標 url 中,匹配的 uri 部分不做修改,原來是什麼就是什麼。

http://domain/ops-coffee/action/abc --> action/abc目標位址中帶 uri(proxy_pass http://tomcats/,/ 也是 uri), 此時新的目標 url 中,匹配的 uri 部分將會被修改為該引數中的 uri。

}

nginx 在專案中大多數情況下會作為反向**使用,例如 nginx 後接 tomcat,nginx 後接 php 等,這時我們開啟 nginx 和後端服務之間的 keepalive 夠減少頻繁建立 tcp 連線造成的資源消耗,配置如上

keepalive:指定每個 nginxworker 可以保持的最大連線數量為 1024,預設不設定,即 nginx 作為 client 時 keepalive 未生效

proxy_http_version 1.1:開啟 keepalive 要求 http 協議版本為 http 1.1

proxy_set_header connection 「」:為了相容老的協議以及防止 http 頭中有connection close導致的 keepalive 失效,這裡需要及時清掉 ttp 頭部的 connection

server 

location @ops-coffee

}

**出現 404 頁面不是特別友好,我們可以通過上邊的配置在出現 404 之後給自動跳轉到首頁去

nginx 配置技巧相關

nginx 如何不記錄部分日誌 下面的配置寫到 server 段中 相關靜態資源的檔案字尾 訪問特定字尾的檔案 如 sh.bash 返回 403 錯誤 shell location sh bash 頻寬控制 設定根據網域名稱的限制 limit conn zone server name zone s...

常用的nginx 配置

user wwwwww nginx 使用的使用者及使用者組 也有些人用 user nobody 這個使用者 worker processes8 8個worker 一般和核心數一樣 全域性錯誤日誌 可設定日誌級別,及pid檔案 error log logs error.log 這是相對目錄,也可以用絕...

nginx 配置優化的幾個引數

2011 04 22 最近在伺服器上搞了一些nginx 研究了一下 總結總結 worker processes 8 nginx要開啟的程序數一般等於cpu的總核數 其實一般情況下開4個或8個就可 我開2個 以了 多了沒有太多用 每個nginx程序消耗的記憶體10兆的模樣 worker cpu aff...