Nginx的知識分享,技術分享
3. Nginx常用命令管理及升級
查看nginx進程
ps -ef|grep nginx
說明:nginx的進程由主進程和工作進程組成。
啟動nginx
nginx
啟動結果顯示nginx的主線程和工作線程,工作線程的數量跟nginx.conf中的配置參數worker_processes有關。
平滑啟動nginx
kill -HUP `cat /var/run/nginx.pid`
或者
nginx -s reload
其中進程文件路徑在配置文件nginx.conf中可以找到。
平滑啟動的意思是在不停止nginx的情況下,重啟nginx,重新加載配置文件,啟動新的工作線程,完美停止舊的工作線程。
完美停止nginx
kill -QUIT `cat /var/run/nginx.pid`
快速停止nginx
kill -TERM `cat /var/run/nginx.pid`
或者
kill -INT `cat /var/run/nginx.pid`
完美停止工作進程(主要用於平滑升級)
kill -WINCH `cat /var/run/nginx.pid`
強制停止nginx
pkill -9 nginx
檢查對nginx.conf文件的修改是否正確
nginx -t -c /etc/nginx/nginx.conf 或者 nginx -t
停止nginx的命令
nginx -s stop或者pkill nginx
查看nginx的版本信息
nginx -v
查看完整的nginx的配置信息
nginx -V
Nginx升級方法:
下載所需版本的Nginx
wget http://www.nginx.org/download/nginx-1.4.2.tar.gz
獲取舊版本nginx的configure選項
/usr/local/nginx/sbin/nginx -V
編譯新版本的nginx
tar -xvf nginx-1.4.2.tar.gz
cd nginx-1.4.2
./configure --prefix=/usr/local/nginx --user=www --group=www --with-http_stub_status_module --with-http_ssl_module
make
備份舊版本的nginx可執行文件,復制新版本的nginx這行文件
mv /usr/local/nginx/sbin/nginx /usr/local/nginx/sbin/nginx.old
cp objs/nginx /usr/local/nginx/sbin/
測試新版本nginx是否正常
/usr/local/nginx/sbin/nginx -t
平滑重啟升級nginx
kill –USR2 `cat /usr/local/nginx/log/nginx.pid`
舊版本Nginx的pid變為oldbin,這是舊版本和新版本的nginx同時運行,過一段時間等就nginx處理完用戶請求後,執行下面操作
從容關閉舊版本的Nginx進程
kill -WINCH `cat /usr/local/nginx/log/nginx.oldbin`
決定是否升級到新版的nginx
kill –HUP `cat /usr/local/nginx/log/nginx.oldbin` ##nginx在不重載配置文件啟動工作進程
kill –QUIT `cat /usr/local/nginx/log/nginx.oldbin` ##關閉舊版nginx
驗證nginx是否升級成功
/usr/local/nginx/sbin/nginx –V ###
4. Nginx配置文件精講一
#定義Nginx運行的用戶和用戶組
user www www;
#啟動進程,通常設置成和cpu的數量相等
worker_processes 8;
worker_cpu_affinity 00000001 00000010 00000100 00001000 00010000 00100000 01000000 10000000;
#為每個進程分配cpu,上例中將8個進程分配到8個cpu,當然可以寫多個,或者將一個進程分配到多個cpu。
worker_rlimit_nofile 102400;
#這個指令是指當一個nginx進程打開的最多文件描述符數目,理論值應該是最多打
#開文件數(ulimit -n)與nginx進程數相除,但是nginx分配請求並不是那麽均勻
#,所以最好與ulimit -n的值保持一致。
#全局錯誤日誌及PID文件
error_log /usr/local/nginx/logs/error.log;
#錯誤日誌定義等級,[ debug | info | notice | warn | error | crit ]
pid /usr/local/nginx/nginx.pid;
#一個nginx進程打開的最多文件描述符數目,理論值應該是最多打開文件數(系統的值ulimit -n)與nginx進程數相除,但是nginx分配請求並不均勻.
#所以建議與ulimit -n的值保持一致。
worker_rlimit_nofile 65535;
#工作模式及連接數上限
events {
use epoll; #epoll是多路復用IO(I/O Multiplexing)中的一種方式,但是僅用於linux2.6以上內核,可以大大提高nginx的性能
worker_connections 102400; #單個後臺worker process進程的最大並發鏈接數 (最大連接數=連接數*進程數)
multi_accept on; #盡可能多的接受請求
}
#設定http服務器,利用它的反向代理功能提供負載均衡支持
http {
#設定mime類型,類型由mime.type文件定義
include mime.types;
default_type application/octet-stream;
#設定日誌格式
access_log /usr/local/nginx/log/nginx/access.log;
sendfile on;
#sendfile 指令指定 nginx 是否調用 sendfile 函數(zero copy 方式)來輸出文件,對於普通應用必須設為 on
#如果用來進行下載等應用磁盤IO重負載應用,可設置為 off,以平衡磁盤與網絡I/O處理速度,降低系統的uptime.
#autoindex on; #開啟目錄列表訪問,合適下載服務器,默認關閉。
tcp_nopush on; #防止網絡阻塞
keepalive_timeout 60;
#keepalive超時時間,客戶端到服務器端的連接持續有效時間,當出現對服務器的後,繼請求時,keepalive-timeout功能可避免建立或重新建立連接。
tcp_nodelay on; #提高數據的實時響應性
#開啟gzip壓縮
gzip on;
gzip_min_length 1k;
gzip_buffers 4 16k;
gzip_http_version 1.1;
gzip_comp_level 4; #壓縮級別大小,最大為9,值越小,壓縮後比例越小,CPU處理更快。
#值越大,消耗CPU比較高。
gzip_types text/plain application/x-javascript text/css application/xml;
gzip_vary on;
client_max_body_size 10m; #允許客戶端請求的最大單文件字節數
client_body_buffer_size 128k; #緩沖區代理緩沖用戶端請求的最大字節數,
proxy_connect_timeout 120; #nginx跟後端服務器連接超時時間(代理連接超時)
proxy_send_timeout 120; #後端服務器數據回傳時間(代理發送超時)
proxy_read_timeout 120; #連接成功後,後端服務器響應時間(代理接收超時)
proxy_buffer_size 4k; #設置代理服務器(nginx)保存用戶頭信息的緩沖區大小
proxy_buffers 4 32k; #proxy_buffers緩沖區,網頁平均在32k以下的話,這樣設置
proxy_busy_buffers_size 64k; #高負荷下緩沖大小(proxy_buffers*2)
#設定請求緩沖
large_client_header_buffers 4 4k;
client_header_buffer_size 4k;
#客戶端請求頭部的緩沖區大小,這個可以根據你的系統分頁大小來設置,一般一個請求的頭部大小不會超過1k
#不過由於一般系統分頁都要大於1k,所以這裏設置為分頁大小。分頁大小可以用命令getconf PAGESIZE取得。
open_file_cache max=102400 inactive=20s;
#這個將為打開文件指定緩存,默認是沒有啟用的,max指定緩存數量,建議和打開文件數一致,inactive是指經過多長時間文件沒被請求後刪除緩存。
open_file_cache_valid 30s;
#這個是指多長時間檢查一次緩存的有效信息。
open_file_cache_min_uses 1;
#open_file_cache指令中的inactive參數時間內文件的最少使用次數,如果超過這個數字,文件描述符一直是在緩存中打開的,如上例,如果有一個文件在inactive
#包含其它配置文件,如自定義的虛擬主機
include vhosts.conf;
1. Nginx常用命令管理及升級
查看nginx進程
ps -ef|grep nginx
說明:nginx的進程由主進程和工作進程組成。
啟動nginx
nginx
啟動結果顯示nginx的主線程和工作線程,工作線程的數量跟nginx.conf中的配置參數worker_processes有關。
平滑啟動nginx
kill -HUP `cat /var/run/nginx.pid`
或者
nginx -s reload
其中進程文件路徑在配置文件nginx.conf中可以找到。
平滑啟動的意思是在不停止nginx的情況下,重啟nginx,重新加載配置文件,啟動新的工作線程,完美停止舊的工作線程。
完美停止nginx
kill -QUIT `cat /var/run/nginx.pid`
快速停止nginx
kill -TERM `cat /var/run/nginx.pid`
或者
kill -INT `cat /var/run/nginx.pid`
完美停止工作進程(主要用於平滑升級)
kill -WINCH `cat /var/run/nginx.pid`
強制停止nginx
pkill -9 nginx
檢查對nginx.conf文件的修改是否正確
nginx -t -c /etc/nginx/nginx.conf 或者 nginx -t
停止nginx的命令
nginx -s stop或者pkill nginx
查看nginx的版本信息
nginx -v
查看完整的nginx的配置信息
nginx -V
Nginx升級方法:
下載所需版本的Nginx
wget http://www.nginx.org/download/nginx-1.4.2.tar.gz
獲取舊版本nginx的configure選項
/usr/local/nginx/sbin/nginx -V
編譯新版本的nginx
tar -xvf nginx-1.4.2.tar.gz
cd nginx-1.4.2
./configure --prefix=/usr/local/nginx --user=www --group=www --with-http_stub_status_module --with-http_ssl_module
make
備份舊版本的nginx可執行文件,復制新版本的nginx這行文件
mv /usr/local/nginx/sbin/nginx /usr/local/nginx/sbin/nginx.old
cp objs/nginx /usr/local/nginx/sbin/
測試新版本nginx是否正常
/usr/local/nginx/sbin/nginx -t
平滑重啟升級nginx
kill –USR2 `cat /usr/local/nginx/log/nginx.pid`
舊版本Nginx的pid變為oldbin,這是舊版本和新版本的nginx同時運行,過一段時間等就nginx處理完用戶請求後,執行下面操作
從容關閉舊版本的Nginx進程
kill -WINCH `cat /usr/local/nginx/log/nginx.oldbin`
決定是否升級到新版的nginx
kill –HUP `cat /usr/local/nginx/log/nginx.oldbin` ##nginx在不重載配置文件啟動工作進程
kill –QUIT `cat /usr/local/nginx/log/nginx.oldbin` ##關閉舊版nginx
驗證nginx是否升級成功
/usr/local/nginx/sbin/nginx –V ###
Nginx的知識分享,技術分享