天天看點

Nginx配置檔案中文注釋詳解(參考)

Nginx ("engine x") 是一個高性能的 HTTP 和 反向代理 伺服器,也是一個 IMAP/POP3/SMTP 代理伺服器。 Nginx 是由 Igor Sysoev 為俄羅斯通路量第二的 Rambler.ru 站點開發的,它已經在該站點運作超過兩年半了。Igor 将源代碼以類BSD許可證的形式釋出。

Nginx配置檔案詳解

#運作使用者 

user nobody nobody; 

#啟動程序 

worker_processes 2; 

#全局錯誤日志及PID檔案 

error_log logs/error.log notice; 

pid logs/nginx.pid; 

#工作模式及連接配接數上限 

events { 

use epoll; 

worker_connections 1024; 

#設定http伺服器,利用它的反向代理功能提供負載均衡支援 

http { 

#設定mime類型 

include conf/mime.types; 

default_type application/octet-stream; 

#設定日志格式 

log_format main ‘$remote_addr – $remote_user [$time_local] ‘ 

‘”$request” $status $bytes_sent ‘ 

‘”$http_referer” “$http_user_agent” ‘ 

‘”$gzip_ratio”‘; 

log_format download ‘$remote_addr – $remote_user [$time_local] ‘ 

‘”$http_range” “$sent_http_content_range”‘; 

#設定請求緩沖 

client_header_buffer_size 1k; 

large_client_header_buffers 4 4k;

#開啟gzip子產品 

gzip on; 

gzip_min_length 1100; 

gzip_buffers 4 8k; 

gzip_types text/plain; 

output_buffers 1 32k; 

postpone_output 1460; 

#設定access log 

access_log logs/access.log main; 

client_header_timeout 3m; 

client_body_timeout 3m; 

send_timeout 3m; 

sendfile on; 

tcp_nopush on; 

tcp_nodelay on; 

keepalive_timeout 65; 

#設定負載均衡的伺服器清單 

upstream mysvr { 

#weigth參數表示權值,權值越高被配置設定到的幾率越大 

#本機上的Squid開啟3128端口 

server 192.168.8.1:3128 weight=5; 

server 192.168.8.2:80 weight=1; 

server 192.168.8.3:80 weight=6; 

#設定虛拟主機 

server { 

listen 80; 

server_name 192.168.8.1 www.hahaer.com; 

charset gb2312; 

#設定本虛拟主機的通路日志 

access_log logs/www.hahaer.com.access.log main; 

#如果通路 /img/*, /js/*, /css/* 資源,則直接取本地檔案,不通過squid 

#如果這些檔案較多,不推薦這種方式,因為通過squid的緩存效果更好 

location ~ ^/(img|js|css)/ { 

root /data3/Html; 

expires 24h; 

}

#對 “/” 啟用負載均衡 

location / { 

proxy_pass http://mysvr; 

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_max_body_size 10m; 

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狀态的位址 

location /NginxStatus { 

stub_status on; 

access_log on; 

auth_basic “NginxStatus”; 

auth_basic_user_file conf/htpasswd; 

備注:conf/htpasswd 檔案的内容用 apache 提供的 htpasswd 工具來産生即可。

3.) 檢視 Nginx 運作狀态

輸入位址 http://192.168.8.1/NginxStatus/,輸入驗證帳号密碼,即可看到類似如下内容:

Active connections: 328 

server accepts handled requests 

9309 8982 28890 

Reading: 1 Writing: 3 Waiting: 324

第一行表示目前活躍的連接配接數

第三行的第三個數字表示Nginx運作到目前時間接受到的總請求數,如果快達到了上限,就需要加大上限值。

第四行是Nginx的隊列狀态 

------------------------------------------------------------------------------ 

代理 dns 解析 

server {

    listen 8080;

    location / {

    proxy_pass http://$http_host$request_uri;

    access_log off;

    }

另外還需要在http字段内,用resolver指定一下DNS伺服器,否則會發生 “nginx 502 bad gateway” 的錯誤。我采用是Google提供的DNS服務:

resolver 8.8.8.8;

修改完之後需要重新開機一下nginx伺服器:

nginx -s reload

最後,修改一下浏覽器代理設定的,通路www.ip.cn,就能看到IP位址發生變化了。

------------------------------------------------------------------------------

你要支援幾個網站就在 nginx.conf添加幾行:

listen 80;

server_name www.3js.com.cn;

location / {

proxy_pass http://block.3js.com.cn:81;

示例:

server { listen 80; server_name www.3js.com.cn; location / { proxy_passhttp://block.3js.com.cn:81; }}

server { listen 80; server_name www1.3js.com.cn; location / { proxy_passhttp://block.3js.com.cn:82; }}

server { listen 80; server_name www2.3js.com.cn; location / { proxy_passhttp://block.3js.com.cn:83; }} 

繼續閱讀