Nginx作為一個HTTP服務(wù)器,在功能實(shí)現(xiàn)方面和性能方面都表現(xiàn)得非常卓越,完全可以與Apache相媲美,幾乎可以實(shí)現(xiàn)Apachc的所有功能。下面就介紹一些Nginx常用的配置實(shí)例,具體包含虛擬主機(jī)配置、負(fù)載均衡配置、防盜鏈配置以及日志管理等。
1、虛擬主機(jī)配置實(shí)例
下面在Nginx中創(chuàng)建3個虛擬主機(jī),需要說明的是,這里僅僅列出了虛擬主機(jī)的配置部分。
http {
server {
listen80;
server_ name www.survivalescaperooms.com;
acces_log logs/domainl.access.log main;
location / {
index index.html;
root /web/www/vevb.com/htdocs;
}
}
server{
listen 80;
server_ name www.vevb2.com;
access_log logs/vevb2.access.log main;
location / {
index index.html;
root /web/www/vevb2.com/htdocs;
}
}
include /opt/nginx/conf/vhosts/www.vevb2.com.conf;
}
這里用到了includc指令,其中/opt/nginx/conf/vhosts/www.vevb2.com.conf的內(nèi)容如下:
server {
listen 80;
server_name www.vevb3.com;
access_log logs/vevb3.access.log main;
location / {
index index.html;
root /web/www/vevb3.com/htdocs;
}
}
2、負(fù)載均衡配置實(shí)例
下面通過Nginx的反向代理功能配置一個Nginx負(fù)載均衡服務(wù)器。后端右3個服務(wù)節(jié)點(diǎn),用于提供Web服務(wù),通過Nginx的調(diào)度實(shí)現(xiàn)3個節(jié)點(diǎn)的負(fù)載均衡。
http
{
upstream my8erver {
server 192.168.12.181:80 weight=3 max_fails-3 fail_timeout=20s;
server 192.168.12.182:80 weight=i max_fai1s=3 fail_timeout=20s;
server 192.168.12.183:80 weight=4 max_fails=3 fail_timeout=20s;
}
server
{
listen 80;
server_name www.survivalescaperooms.com 192.168.12.189;
index index.htm index.html;
root /vevb/web/wwwroot;
location / {
proxy_pass http://myserver;
proxy_next_upstream http_500 http_502 http_503 error timeout invalid_header;
include /opt/nginx/conf/proxy.conf;
}
}
}
在上面這個配置實(shí)例中,先定義了一個負(fù)載均衡組myserver,然后在location部分通過“proxy_pass http://myserver”實(shí)現(xiàn)負(fù)載調(diào)度功能,其中proxy_pass指令用來指定代理的后端服務(wù)器地址和端口,地址可以是主機(jī)名或者IP地址,也可以是通過upstream指令設(shè)定的負(fù)載均衡組名稱。
proxy_next_upstrcam用來定義故障轉(zhuǎn)移策略,當(dāng)后端服務(wù)節(jié)點(diǎn)返回500、502、503、504和執(zhí)行超時等錯誤時,自動將請求轉(zhuǎn)發(fā)到upstream負(fù)載均衡組中的另一臺服務(wù)器,實(shí)現(xiàn)故障轉(zhuǎn)移。最后通過include指令包含進(jìn)來一個proxy.conf文件。
其中/opt/nginx/conf/proxy.conf的內(nèi)容如下:
proxy_redirect off;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
client_body_buffer_size 128k;
proxy_connect_timeout 90;
proxy_send_timeout 90;
proxy_read_timeout 90;
proxy_buffer_size 4k;
proxy_buffers 4 32k;
proxy_busy_buffers_size 64k;
proxy_temp_file_write_size 64k;
Nginx的代理功能是通過http proxy模塊來實(shí)現(xiàn)的。默認(rèn)在安裝Nginx時已經(jīng)安裝了http proxy模塊,因此可直接使用http proxy模塊。下面詳細(xì)解釋proxy.conf文件中每個選項(xiàng)代表的含義。
口proxy_set_header:設(shè)置由后端的服務(wù)器獲取用戶的主機(jī)名或真實(shí)IP地址,以及代理者的真實(shí)IP地址。
口client_body_buffer_size:用于指定客戶端請求主體緩沖區(qū)大小,可以理解為先保存到本地再傳給用戶。
口proxy_conncct_timcout:表示與后端服務(wù)器連接的超時時間,即發(fā)起握手等候響應(yīng)的超時時間。
口proxy_send_timeout:表示后端服務(wù)器的數(shù)據(jù)回傳時間,即在規(guī)定時間之內(nèi)后端服務(wù)器必須傳完所有的數(shù)據(jù),否則,Nginx將斷開這個連接。
口proxy_read_timeout:設(shè)置Nginx從代理的后端服務(wù)器獲取信息的時間,表示連接建立成功后,Nginx等待后端服務(wù)器的響應(yīng)時間,其實(shí)是Nginx已經(jīng)進(jìn)入后端的排隊(duì)之中等候處理的時間。
口proxy_buffer_size:設(shè)置緩沖區(qū)大小,默認(rèn)該緩沖區(qū)大小等于指令proxy_buffers設(shè)置的大小。
口proxy_buffers:設(shè)置緩沖區(qū)的數(shù)量和大小。Nginx從代理的后端服務(wù)器獲取的響應(yīng)信息,會放置到緩沖區(qū)。
口proxy_busy_buffers size:用于設(shè)置系統(tǒng)很忙時可以使用的proxy_buffers大小,官方推薦的大小為proxy_buffers×2。
口proxy_temp_file_write_size:指定proxy緩存臨時文件的大小。
新聞熱點(diǎn)
疑難解答
圖片精選