當我們舉辦nginx設置文件的時候如何才氣檢測我們做的是否正確呢?其實很簡樸,下面就向各人先容有關nginx設置文件正確與否的檢測要領。但愿各人在今后的利用中有所收獲。
檢測nginx設置文件是否正確
/usr/local/nginx/sbin/nginx -t -c nginx.conf
-c 設置文件路徑
-g Set global directives. (version >=0.7.4)
-t 檢測文件是否正確不執行
-v Print version.
-V Print nginx version, compiler version and configure
parameters.
編譯時假如利用了–with-debug編譯,還可以利用error_log file [ debug_core| debug_http | debug_event …] 來得到debug信息
通過信號對 Nginx設置文件 舉辦節制
Nginx設置文件 支持下表中的信號:
信號名 浸染描寫
TERM, INT 快速封鎖措施,中止當前正在處理懲罰的請求
QUIT 處理懲罰完當前請求后,封鎖措施
HUP 從頭加載設置,并開啟新的事情歷程,封鎖就的歷程,此操縱不會間斷請求
USR1 從頭打開日志文件,用于切換日志,譬喻天天生成一個新的日志文件
USR2 滑膩進級可執行措施
WINCH 從容封鎖事情歷程
有兩種方法來通過這些信號去節制 Nginx設置文件,第一是通過 logs 目次下的 nginx.pid 查察當前運行的 Nginx 的歷程 ID,通過 kill – XXX <pid> 來節制 Nginx,個中 XXX 就是上表中列出的信號名。假如您的系統中只有一個 Nginx 歷程,那您也可以通過 killall 呼吁來完成,譬喻運行 killall – s HUP nginx 來讓 Nginx 從頭加載設置。
設置:
use [ kqueue | rtsig | epoll | /dev/poll | select | poll ];
FreeBSD利用kqueue,Linux選epoll.
worker_connections number 每個worker的最大毗連數
Maxclient = work_processes * worker_connections
nginx的upstream今朝支持4種方法的分派
1、輪詢(默認)
每個請求定時間順序逐一分派到差異的后端處事器,假如后端處事器down掉,能自動剔除。
2、weight
指定輪詢幾率,weight和會見比率成正比,用于后端處事器機能不均的環境。
2、ip_hash
每個請求按會見ip的hash功效分派,這樣每個訪客牢靠會見一個后端處事器,可以辦理session的問題。
3、fair(第三方)
按后端處事器的響應時間來分派請求,響應時間短的優先分派。
4、url_hash(第三方)
按會見url的hash功效來分派請求,使每個url定向到同一個后端處事器,后端處事器為緩存時較量有效。
proxy_pass http://localhost:8000;
負載平衡:只需要在http中增加
upstream tgcluster {#界說負載平衡設備的Ip及設備狀態
ip_hash;
server 127.0.0.1:9090 down;
server 127.0.0.1:8080 weight=2;
server 127.0.0.1:6060;
server 127.0.0.1:7070 backup;
}
在需要利用負載平衡的server中增加
proxy_pass http://tgcluster/;
每個設備的狀態配置為:
1.down 暗示單前的server臨時不參加負載
2.weight 默認為1.weight越大,負載的權重就越大。
3.max_fails :答允請求失敗的次數默認為1.當高出最大次數時,返回proxy_next_upstream
模塊界說的錯誤
4.fail_timeout:max_fails次失敗后,暫停的時間。
5.backup: 其它所有的非backup呆板down可能忙的時候,請求backup呆板。所以這臺呆板壓力會最輕。
nginx設置文件支持同時配置多組的負載平衡,用來給不消的server來利用。
client_body_in_file_only 配置為On 可以講client
post過來的數據記錄到文件頂用來做debug
client_body_temp_path 配置記錄文件的目次 可以配置最多3層目次
location 對URL舉辦匹配.可以舉辦重定向可能舉辦新的署理 負載平衡
FASTCGI設置:
請將以下內容生存為fastcgi_params文件,生存于/usr/local/nginx/conf下(Ubuntu可生存于/etc/nginx下),他為我們的FastCGI模塊配置了根基的情況變量:
#fastcgi_params
fastcgi_param GATEWAY_INTERFACE CGI/1.1;
fastcgi_param SERVER_SOFTWARE nginx;
fastcgi_param QUERY_STRING $query_string;
fastcgi_param REQUEST_METHOD $request_method;
fastcgi_param CONTENT_TYPE $content_type;
fastcgi_param CONTENT_LENGTH $content_length;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
fastcgi_param SCRIPT_NAME $fastcgi_script_name;
fastcgi_param REQUEST_URI $request_uri;
fastcgi_param DOCUMENT_URI $document_uri;
fastcgi_param DOCUMENT_ROOT $document_root;
fastcgi_param SERVER_PROTOCOL $server_protocol;
fastcgi_param REMOTE_ADDR $remote_addr;
fastcgi_param REMOTE_PORT $remote_port;
fastcgi_param SERVER_ADDR $server_addr;
fastcgi_param SERVER_PORT $server_port;
fastcgi_param SERVER_NAME $server_name;
# PHP only, required if PHP was built with
–enable-force-cgi-redirect
fastcgi_param REDIRECT_STATUS 200;請出格留意加粗的一行,PHP-CGI出格需要此行信息來確定PHP文件的位置。
別的需要在PHP-CGI的設置文件(Ubuntu 上此設置文件位于/etc/php5/cgi/php.ini)中,打開cgi.fix_pathinfo選項:
cgi.fix_pathinfo=1;這樣php-cgi方能正常利用SCRIPT_FILENAME這個變量。
接下來在nginx的設置中針對php文件設置其操作FastCGI歷程來執行:
server {
index index.php;
root /usr/local/nginx/html;
location ~ .*.php$ {
include /usr/local/nginx/conf/fastcgi_params;
#請按照本身生存的路徑舉辦配置
fastcgi_index index.php;
fastcgi_pass 127.0.0.1:9000;
#請按照本身的FastCGI綁定的地點和端口舉辦設置
}
}
通知Nginx從頭載入設置:
kill -HUP `cat /usr/local/nginx/logs/nginx.pid`Ubuntu用戶可以利用init劇本:sudo /etc/init.d/nginx reload
然后啟動php-cgi -b 127.0.0.1:9000
假如呈現No input file specified暗示SCRIPT_FILENAME配置的有問題。利用lighttpd的 spawn-fcgi
get http://www.lighttpd.net/download/lighttpd-1.4.18.tar.bz2
#獲取Lighttpd的源碼包
tar -xvjf lighttpd-1.4.18.tar.bz2
cd lighttpd-1.4.18
./configure #編譯
make
cp src/spawn-fcgi /usr/local/bin/spawn-fcgi
#取出spawn-fcgi的措施
以上就是對nginx設置文件如何檢測的相關先容但愿各人有所收獲。
,荷蘭服務器 英國主機租用