優化 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"