您好,登錄后才能下訂單哦!
- 在企業網站中,為了避免同一個客戶長時間占用連接,造成資源浪費,可設置相應的連接超時參數,實現控制連接訪問時間
- 使用fiddler工具查看connection參數
Keepalive_timeout
設置連接保持超時時間,一般可只設置該參數,默認為65秒,可根據網站的情況設置,或者關閉,可在http段,server段,或者location段設置
Client_header_timeout
指定等待客戶端發送請求頭的超時時間
Client_body_timeout
設置請求體讀超時時間
[root@localhost ~]# cd /usr/local/nginx/conf/
[root@localhost conf]# vim nginx.conf ##修改配置文件
#keepalive_timeout 0;
keepalive_timeout 65 180; ##服務端和客戶端的超時時間
client_header_timeout 80; ##請求頭部超時時間
client_body_timeout 80; ##請求體超時時間
[root@localhost conf]# service nginx stop ##關閉開啟服務
[root@localhost conf]# service nginx start
- 在高并發場景,需要啟動更多的Nginx進程以保證快速響應,以處理用戶的請求,避免造成阻塞
- 可以使用ps aux命令查看Nginx運行進程的個數
- 更改進程數的配置方法
修改配置文件,修改進程配置參數- 修改配置文件的worker_process參數
一般設為CPU的個數或者核數
在高并發情況下可設置為CPU個數或者核數的2倍- 運行進程數多一些,響應訪問請求時,Nginx就不會臨時啟動新的進程提供服務,減少了系統的開銷,提升了服務速度
- 使用ps aux查看運行進程數的變化情況
- 默認情況,Nginx的多個進程可能跑在一個CPU上,可以分配不同的進程給不同的CPU處理,充分利用硬件多核多CPU
- 在一臺4核物理服務器,可進行以下配置,將進程進行分配
worker_cpu_affinity 0001 0010 0100 1000
[root@localhost ~]# ps aux | grep nginx ##查看進程信息
root 7231 0.0 0.0 20548 620 ? Ss 01:57 0:00 nginx: master process ##主進程
nginx 7232 0.0 0.0 23076 1400 ? S 01:57 0:00 nginx: worker process ##1個工作進程
root 7372 0.0 0.0 112728 972 pts/2 S+ 02:07 0:00 grep --color=auto nginx
[root@localhost ~]# cd /proc/
[root@localhost proc]# cat cpuinfo ##查看cpu核心數
processor : 0 ##第一個
...
processor : 1 ##第二個
...
[root@localhost proc]# cd /usr/local/nginx/conf/
[root@localhost conf]# vim nginx.conf ##修改配置文件
#user nobody;
worker_processes 2; ##核心數為2
worker_cpu_affinity 01 10; ##進程分配
[root@localhost conf]# ps aux | grep nginx ##查看Nginx進程信息
nginx 2329 0.0 0.0 23076 1392 ? S 20:12 0:00 nginx: worker process
##此時是兩個工作進程
nginx 2330 0.0 0.0 23076 1384 ? S 20:12 0:00 nginx: worker process
- Nginx的ngx_http_gzip_module壓縮模塊提供對文件內容壓縮的功能
- 允許Nginx服務器將輸出內容在發送客戶端之前進行壓縮,以節約網站帶寬,提升用戶的訪問體驗,默認已經安裝
- 可在配置文件中加入相應的壓縮功能參數對壓縮性能進行優化
- gzip on:開啟gzip壓縮輸出
- gzip_min_length 1k:用于設置允許壓縮的頁面最小字節數
- gzip_buffers 4 16k:表示申請4個單元為16k的內存作為壓縮結果流緩存,默認值是申請與原始數據大小相同的內存空間來存儲gzip壓縮結果
- zip_http_version 1.0:用于設置識別http協議版本,默認是1.1,目前大部分瀏覽器已經支持gzip解壓,但處理最慢,也比較消耗服務器CPU資源
- gzip_comp_level 2:用來指定gzip壓縮比,1壓縮比最小,處理速度最快;9壓縮比最大,傳輸速度快,但處理速度最慢,使用默認即可
- gzip_types text/plain:壓縮類型,是就對那些網頁文檔啟用壓縮功能
- gzip_vary on:選項可以讓前端的緩存服務器緩存經過gzip壓縮的頁面
Linux服務器(192.168.13.142)
一臺win10測試機
[root@localhost ~]# cd /usr/local/nginx/conf/
[root@localhost conf]# vim nginx.conf ##修改配置文件
#gzip on; ##開啟gzip壓縮功能(暫時不開啟)
gzip_min_length 1k; ##壓縮閥值
gzip_buffers 4 16k; ##buffer 大小為4個16k緩沖區大小
gzip_http_version 1.1; ##壓縮版本
gzip_comp_level 6; ##壓縮比率,5,6適中
gzip_types text/plain application/x-javascript text/css image/jpg image/jpeg
image/png image/gif application/xml text/javascript application/x-httpd-php app
lication/javascript application/json;
##支持的類型格式
gzip_disable "MSIE [1-6]\."; ##禁用gzip條件,支持正則,表示ie6以下不啟用gzip
gzip_vary on; ##讓前端的緩存服務器緩存經過gzip壓縮的頁面
[root@localhost html]# mount.cifs //192.168.100.3/LAMP-C7 /mnt ##掛載共享
Password for root@//192.168.100.3/LAMP-C7:
[root@localhost html]# ls /mnt
apr-1.6.2.tar.gz Discuz_X2.5_SC_UTF8.zip LAMP-php5.6.txt
apr-util-1.6.0.tar.gz error.png mysql-5.6.26.tar.gz
awstats-7.6.tar.gz httpd-2.4.29.tar.bz2 nginx-1.12.0.tar.gz
cronolog-1.6.2-14.el7.x86_64.rpm kali.jpg php-5.6.11.tar.bz2
[root@localhost html]# cp /mnt/11.png ./ ##將圖片復制到站點中
[root@localhost html]# vim index.html ##將圖片放到網頁中
<h2>Welcome to nginx!</h2>
<img src="11.jpg"/> ##添加圖片
[root@localhost html]# service nginx stop ##關閉開啟Nginx服務
[root@localhost html]# service nginx start
[root@localhost html]# systemctl stop firewalld.service ##關閉防火墻
[root@localhost html]# setenforce 0
[root@localhost html]# vim /usr/local/nginx/conf/nginx.conf ##修改配置文件
gzip on; ##開啟壓縮功能
[root@localhost html]# service nginx stop ##關閉和開啟Nginx服務
[root@localhost html]# service nginx start
在企業網站服務中,一般都要配置防盜鏈功能,以避免網站內容被非法盜用,以造成經濟損失
Nginx防盜鏈功能也非常強大。默認情況下,只需要進行簡單的配置,即可實現防盜鏈處理
一臺Linux服務器(192.168.13.142)
一臺win7盜鏈網站(192.168.13.135)
一臺win10測試機
<html>
<head>
<title>云計算</title>
</head>
<body>
<h2>this is test web</h2>
<img src="http://www.kgc.com/11.jpg"/> ##盜鏈的圖片
</body>
</html>
[root@localhost html]# yum install bind -y ##安裝dns
[root@localhost html]# vim /etc/named.conf
options {
listen-on port 53 { any; }; ##監聽所有
listen-on-v6 port 53 { ::1; };
directory "/var/named";
dump-file "/var/named/data/cache_dump.db";
statistics-file "/var/named/data/named_stats.txt";
memstatistics-file "/var/named/data/named_mem_stats.txt";
recursing-file "/var/named/data/named.recursing";
secroots-file "/var/named/data/named.secroots";
allow-query { any; }; ##允許所有
[root@localhost html]# vim /etc/named.rfc1912.zones ##配置區域配置文件
zone "kgc.com" IN {
type master;
file "kgc.com.zone"; ##kgc區域數據配置文件
allow-update { none; };
};
[root@localhost html]# cd /var/named/
[root@localhost named]# cp -p named.localhost kgc.com.zone ##復制模板
[root@localhost named]# vim kgc.com.zone ##修改區域配置文件
$TTL 1D
@ IN SOA @ rname.invalid. (
0 ; serial
1D ; refresh
1H ; retry
1W ; expire
3H ) ; minimum
NS @
A 127.0.0.1
www IN A 192.168.13.142 ##本機地址
[root@localhost named]# systemctl start named ##開啟dns服務
[root@localhost named]# systemctl stop firewalld.service ##關閉防火墻
[root@localhost named]# setenforce 0
[root@localhost named]# vim /usr/local/nginx/conf/nginx.conf
##在server段插入防盜鏈配置
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root html;
}
location ~*\.(jpg|gif|swf)$ { ##支持格式
valid_referers none blocked *.kgc.com kgc.com; ##允許kgc.com為后綴訪問
if ( $invalid_referer ) {
rewrite ^/ http://www.kgc.com/error.png; ##不是則發送錯誤圖片
}
}
[root@localhost named]# cp /mnt/error.png /usr/local/nginx/html/ ##將防盜鏈圖片放到站點中
[root@localhost named]# service nginx stop ##關閉開啟Nginx服務
[root@localhost named]# service nginx start
- Nginx的PHP解析功能實現如果是交由FPM處理的,為了提高PHP的出來速度,可對FPM模塊進行參數的調整
- FPM模塊參數調整,要根據服務器的內存與服務器負載進行調整
- 啟動fpm進程方式
static:將產生固定數量的fpm進程
dynamic:將以動態的方式產生fpm進程
通過pm參數指定
- static的方式的參數
pm.max_children:指定啟動的進程數量- Dynamic方式的參數
pm.max_children:指定啟動的進程數量最大的數量
pm.start_servers:動態方式下初始的fpm進程數量
pm.min_spare_servers:動態方式下最小的fpm空閉進程數
pm.max_spare_servers:動態方式下最大的fpm空閉進程數
優化原因:服務器為云服務器,運行了個人論壇,內存為1.5G,fpm進程數為20,內存消耗近1G,處理比較慢
優化參數調整:FPM啟動時有5個進程,最小空閑2個進程,最大空閑8個進程,最多可以有20個進程存在
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。