天天看點

針對nginx的一系列優化方法及nginx伺服器狀态的檢視

優化 nginx 的并發:

1.修改 nginx 配置檔案

[root@proxy nginx]# vim conf/nginx.conf
  worker_processes 1; #線程數,最大比對 CPU 核心數,通常設 置為 auto 
  worker_rlimit_nofile 16384; #設定檔案描述符,預設 1024 
  events { 
    use epoll; #使用 epoll 模式 
    worker_connections 1024;} #每線程并發量,最大設定 65535,比對 最大端口号           

2.修改 linux 核心參數

[root@proxy ~]# ulimit -a #檢視所有屬性值 
[root@proxy ~]# ulimit -Hn 100000 #設定硬限制,非 root 使用者允許修改的軟 限制上限 
[root@proxy ~]# ulimit -Sn 100000 #設定軟限制,非 root 使用者可以自行修改           

優化 nginx 資料標頭緩存

[root@proxy nginx]# vim conf/nginx.conf
http{ 
client_header_buffer_size 1k; #預設請求標頭資訊的緩存 
large_client_header_buffers 4 4k; #大請求標頭資訊的緩存個數,每個 緩存的容量 
...
}           

定義靜态頁面的緩存時間

[root@proxy nginx]# vim conf/nginx.conf 
server { 
...
location ~* \.(jpg|jpeg|gif|png|ico|xml)$ { #定義需要緩存的檔案格式 
expires 30d; #定義緩存天數 
}
...}           

對網頁進行壓縮

[root@proxy nginx]# vim conf/nginx.conf 
http{ 
...
gzip on; #開啟壓縮
gzip_min_length 1000; #小檔案不壓縮,機關 kb 
gzip_comp_level 4; #壓縮比率,數字越大,壓縮效果越好,處理 器壓力越大 
gzip_types text/plain text/css; #需要壓縮的檔案類型,擴充名對應類型可通 過 conf/mime.types 查詢 
...}           

自定義報錯頁面

[root@proxy nginx]# vim conf/nginx.conf 
http{ 
...
  error_page 403 404 414 /404.html; #将模闆注釋去除即可 
...}           

nginx 動靜分離

将靜态頁面與動态頁面、圖檔資源、聲音視訊資源放在不同的伺服器上

常見的 http 狀态碼:

200 一切正常

301 永久重定向

302 臨時重定向

304 緩存重定向

400 請求文法錯誤

401 使用者名或密碼錯誤

403 禁止通路,IP 被拒絕

404 檔案不存在

414 請求 URL 頭部過長

500 伺服器内部錯誤

502 網關或代理伺服器傳回了非法的路由

檢視伺服器狀态

--with-http_stub_status_module 子產品           

1.安裝子產品

2.

[root@proxy nginx]# vim conf/nginx.conf
location /status{ 
stub_status on; #開啟子產品 
allow 192.168.4.100; #白名單
deny all;}           

3.

[root@client ~]# curl 192.168.4.5/status 
Active connections: 1 
server accepts handled requests 
1 1 1
Reading: 0 Writing: 1 Waiting: 0           

參數含義

Active connections:目前活動的連接配接數量。

Accepts:已經接受用戶端的連接配接總數量。

Handled:已經處理用戶端的連接配接總數量(一般與 accepts 一緻,除非伺服器限制 了連接配接數量)。

Requests:用戶端發送的請求數量。

Reading:目前伺服器正在讀取用戶端請求頭的數量。

Writing:目前伺服器正在寫響應資訊的數量。

Waiting:目前多少用戶端在等待伺服器的響應。

PHP 的 Session 資訊

Session:存儲在伺服器端,儲存使用者名、密碼等資訊。

Cookies:由服務端下發給用戶端,内容包括:SessionID、帳号名、過期時間、路徑、域。

預設存放路徑: /var/lib/php/session/

修改配置檔案,将所有後端伺服器的 Session 統一放在資料庫伺服器上

[root@web1 ~]# vim /etc/php-fpm.d/www.conf
php_value[session.save_handler] = memcache
php_value[session.save_path] = "tcp://192.168.2.5:11211"