Nginx include和Nginx指令的使用
1、nginx include
主配置文件nginx.conf中指定包含其他擴展配置文件,從而簡化nginx主配置文件,實現多個站點功能
[root@Web01 conf]# cat nginx.conf
worker_processes 1;
events {
worker_connections 1024;
}
http {
include mime.types;
default_type application/octet-stream;
sendfile on;
keepalive_timeout 65;
include /application/nginx/conf/extra/*.conf;
}
在/application/nginx/conf/extra下創建多個配置文件
批量生成擴展主頁配置文件進行測試,編寫腳本
mkdir -p /application/nginx/conf/extra #創建存放每個站點文件的目錄
生成的擴展頁面在/application/nginx/conf/extra目錄下
[root@Web01 conf]# mkdir -p /service/scripts
[root@Web01 conf]# vim /service/scripts/auto.sh
[root@Web01 conf]# cat /service/scripts/auto.sh
#!/bin/bash
for i in `seq 11 20`;
do
echo "server {
listen 80;
server_name ${i}.test.com;
location / {
root html/$i;
index index.html index.htm;
}
}" >>/application/nginx/conf/extra/${i}.conf
mkdir -p /application/nginx/html/$i
echo "$i test">>/application/nginx/html/$i/index.html
done
[root@Web01 conf]#
添加瀏覽器所在系統本地host解析
[root@Web01 conf]# seq -f %g.test.com 11 20|xargs #生成hosts解析內容
11.test.com 12.test.com 13.test.com 14.test.com 15.test.com 16.test.com 17.test.com 18.test.com 19.test.com 20.test.com
[root@Web01 conf]#
編輯Windows系統的host解析
瀏覽器訪問,不同域名對應不同頁面
2、nginx指令使用
2.1. upstream
聲明一組可以被proxy_pass和fastcgi_pass引用的服務器;這些服務器可以使用不同的端口,並且也可以使用Unix Socket;也可以為服務器指定不同的權重。如:
upstream web_pool {
server coolinuz.9966.org weight=5;
server 172.23.136.148:8080 max_fails=3 fail_timeout=30s;
server unix:/tmp/backend3;
}
2.2. server
語法:server name [parameters]
其中的name可以是FQDN,主機地址,端口或unix套接字;如果FQDN解析的結果為多個地址,則每個地址都會被用到。
2.3. proxy_pass
語法:proxy_pass URL;
該指令用於指定代理服務器的地址和URL將被映射為的URL或地址和端口。即用來指定后端服務器的地址或URL[端口]。
2.4. proxy_set_header
語法:proxy_set_header header value;
該指令允許重新定義和添加一些將被轉移到被代理服務器的請求頭部信息。
例如:
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
注意:$proxy_add_x_forwarded_for包含客戶端請求頭中的"X-Forwarded-For",與$remote_addr用逗號分開,如果沒有"X-Forwarded-For" 請求頭,則$proxy_add_x_forwarded_for等於$remote_addr
2.5. proxy_read_timeout
語法:proxy_read_timeout time;
這個指令設置Nginx與后端服務器建立連接后。等待后端服務器的響應時間
2.6. proxy_send_timeout
語法:roxy_send_timeout time;
該指令指定請求轉移到后端服務器的超時時間。整個傳輸的要求時間不超過超時時間,但只有兩次寫操作之間。如果在此時間之后的后端服務器將不采取新的數據,然后nginx將關閉連接。
2.7. proxy_connect_timeout
語法:proxy_connect_timeout time;
該指令用來設置分配到后端服務器的連接超時時間。
2.8. proxy_buffers
語法: proxy_buffers the_number is_size;
該指令設置緩沖區的數目和大小,缺省情況下,一個緩沖區的大小和頁面大小相同。
2.9. proxy_buffer_size
語法:proxy_buffer_size buffer_size;
代理緩沖區,該指令用於保存用用戶的頭部信息。
2.10. proxy_busy_buffers_size
語法:proxy_busy_buffers_size size;
用於當系統負載較大,緩沖區不夠用時,可以申請更大的proxy_buffers
2.11. proxy_temp_file_write_size
語法:proxy_temp_file_write_size size;
用於指定緩存臨時文件的大小