- 在企業(yè)網(wǎng)站中,為了避免同一個(gè)客戶長時(shí)間占用連接,造成資源浪費(fèi),可設(shè)置相應(yīng)的連接超時(shí)參數(shù),實(shí)現(xiàn)控制連接訪問時(shí)間
- 使用fiddler工具查看connection參數(shù)
Keepalive_timeout
設(shè)置連接保持超時(shí)時(shí)間,一般可只設(shè)置該參數(shù),默認(rèn)為65秒,可根據(jù)網(wǎng)站的情況設(shè)置,或者關(guān)閉,可在http段,server段,或者location段設(shè)置
Client_header_timeout
指定等待客戶端發(fā)送請(qǐng)求頭的超時(shí)時(shí)間
Client_body_timeout
設(shè)置請(qǐng)求體讀超時(shí)時(shí)間10年積累的網(wǎng)站建設(shè)、做網(wǎng)站經(jīng)驗(yàn),可以快速應(yīng)對(duì)客戶對(duì)網(wǎng)站的新想法和需求。提供各種問題對(duì)應(yīng)的解決方案。讓選擇我們的客戶得到更好、更有力的網(wǎng)絡(luò)服務(wù)。我雖然不認(rèn)識(shí)你,你也不認(rèn)識(shí)我。但先網(wǎng)站制作后付款的網(wǎng)站建設(shè)流程,更有小店免費(fèi)網(wǎng)站建設(shè)讓你可以放心的選擇與我們合作。
[root@localhost ~]# cd /usr/local/nginx/conf/
[root@localhost conf]# vim nginx.conf ##修改配置文件
#keepalive_timeout 0;
keepalive_timeout 65 180; ##服務(wù)端和客戶端的超時(shí)時(shí)間
client_header_timeout 80; ##請(qǐng)求頭部超時(shí)時(shí)間
client_body_timeout 80; ##請(qǐng)求體超時(shí)時(shí)間
[root@localhost conf]# service nginx stop ##關(guān)閉開啟服務(wù)
[root@localhost conf]# service nginx start
- 在高并發(fā)場(chǎng)景,需要啟動(dòng)更多的Nginx進(jìn)程以保證快速響應(yīng),以處理用戶的請(qǐng)求,避免造成阻塞
- 可以使用ps aux命令查看Nginx運(yùn)行進(jìn)程的個(gè)數(shù)
- 更改進(jìn)程數(shù)的配置方法
修改配置文件,修改進(jìn)程配置參數(shù)- 修改配置文件的worker_process參數(shù)
一般設(shè)為CPU的個(gè)數(shù)或者核數(shù)
在高并發(fā)情況下可設(shè)置為CPU個(gè)數(shù)或者核數(shù)的2倍- 運(yùn)行進(jìn)程數(shù)多一些,響應(yīng)訪問請(qǐng)求時(shí),Nginx就不會(huì)臨時(shí)啟動(dòng)新的進(jìn)程提供服務(wù),減少了系統(tǒng)的開銷,提升了服務(wù)速度
- 使用ps aux查看運(yùn)行進(jìn)程數(shù)的變化情況
- 默認(rèn)情況,Nginx的多個(gè)進(jìn)程可能跑在一個(gè)CPU上,可以分配不同的進(jìn)程給不同的CPU處理,充分利用硬件多核多CPU
- 在一臺(tái)4核物理服務(wù)器,可進(jìn)行以下配置,將進(jìn)程進(jìn)行分配
worker_cpu_affinity 0001 0010 0100 1000
[root@localhost ~]# ps aux | grep nginx ##查看進(jìn)程信息
root 7231 0.0 0.0 20548 620 ? Ss 01:57 0:00 nginx: master process ##主進(jìn)程
nginx 7232 0.0 0.0 23076 1400 ? S 01:57 0:00 nginx: worker process ##1個(gè)工作進(jìn)程
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核心數(shù)
processor : 0 ##第一個(gè)
...
processor : 1 ##第二個(gè)
...
[root@localhost proc]# cd /usr/local/nginx/conf/
[root@localhost conf]# vim nginx.conf ##修改配置文件
#user nobody;
worker_processes 2; ##核心數(shù)為2
worker_cpu_affinity 01 10; ##進(jìn)程分配
[root@localhost conf]# ps aux | grep nginx ##查看Nginx進(jìn)程信息
nginx 2329 0.0 0.0 23076 1392 ? S 20:12 0:00 nginx: worker process
##此時(shí)是兩個(gè)工作進(jìn)程
nginx 2330 0.0 0.0 23076 1384 ? S 20:12 0:00 nginx: worker process
- Nginx的ngx_http_gzip_module壓縮模塊提供對(duì)文件內(nèi)容壓縮的功能
- 允許Nginx服務(wù)器將輸出內(nèi)容在發(fā)送客戶端之前進(jìn)行壓縮,以節(jié)約網(wǎng)站帶寬,提升用戶的訪問體驗(yàn),默認(rèn)已經(jīng)安裝
- 可在配置文件中加入相應(yīng)的壓縮功能參數(shù)對(duì)壓縮性能進(jìn)行優(yōu)化
- gzip on:開啟gzip壓縮輸出
- gzip_min_length 1k:用于設(shè)置允許壓縮的頁面最小字節(jié)數(shù)
- gzip_buffers 4 16k:表示申請(qǐng)4個(gè)單元為16k的內(nèi)存作為壓縮結(jié)果流緩存,默認(rèn)值是申請(qǐng)與原始數(shù)據(jù)大小相同的內(nèi)存空間來存儲(chǔ)gzip壓縮結(jié)果
- zip_http_version 1.0:用于設(shè)置識(shí)別http協(xié)議版本,默認(rèn)是1.1,目前大部分瀏覽器已經(jīng)支持gzip解壓,但處理最慢,也比較消耗服務(wù)器CPU資源
- gzip_comp_level 2:用來指定gzip壓縮比,1壓縮比最小,處理速度最快;9壓縮比最大,傳輸速度快,但處理速度最慢,使用默認(rèn)即可
- gzip_types text/plain:壓縮類型,是就對(duì)那些網(wǎng)頁文檔啟用壓縮功能
- gzip_vary on:選項(xiàng)可以讓前端的緩存服務(wù)器緩存經(jīng)過gzip壓縮的頁面
Linux服務(wù)器(192.168.13.142)
一臺(tái)win10測(cè)試機(jī)
[root@localhost ~]# cd /usr/local/nginx/conf/
[root@localhost conf]# vim nginx.conf ##修改配置文件
#gzip on; ##開啟gzip壓縮功能(暫時(shí)不開啟)
gzip_min_length 1k; ##壓縮閥值
gzip_buffers 4 16k; ##buffer 大小為4個(gè)16k緩沖區(qū)大小
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; ##讓前端的緩存服務(wù)器緩存經(jīng)過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 ./ ##將圖片復(fù)制到站點(diǎn)中
[root@localhost html]# vim index.html ##將圖片放到網(wǎng)頁中
Welcome to nginx!
##添加圖片
[root@localhost html]# service nginx stop ##關(guān)閉開啟Nginx服務(wù)
[root@localhost html]# service nginx start
[root@localhost html]# systemctl stop firewalld.service ##關(guān)閉防火墻
[root@localhost html]# setenforce 0
[root@localhost html]# vim /usr/local/nginx/conf/nginx.conf ##修改配置文件
gzip on; ##開啟壓縮功能
[root@localhost html]# service nginx stop ##關(guān)閉和開啟Nginx服務(wù)
[root@localhost html]# service nginx start
在企業(yè)網(wǎng)站服務(wù)中,一般都要配置防盜鏈功能,以避免網(wǎng)站內(nèi)容被非法盜用,以造成經(jīng)濟(jì)損失
Nginx防盜鏈功能也非常強(qiáng)大。默認(rèn)情況下,只需要進(jìn)行簡(jiǎn)單的配置,即可實(shí)現(xiàn)防盜鏈處理
一臺(tái)Linux服務(wù)器(192.168.13.142)
一臺(tái)win7盜鏈網(wǎng)站(192.168.13.135)
一臺(tái)win10測(cè)試機(jī)
云計(jì)算
this is test web
##盜鏈的圖片
[root@localhost html]# yum install bind -y ##安裝dns
[root@localhost html]# vim /etc/named.conf
options {
listen-on port 53 { any; }; ##監(jiān)聽所有
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 ##配置區(qū)域配置文件
zone "kgc.com" IN {
type master;
file "kgc.com.zone"; ##kgc區(qū)域數(shù)據(jù)配置文件
allow-update { none; };
};
[root@localhost html]# cd /var/named/
[root@localhost named]# cp -p named.localhost kgc.com.zone ##復(fù)制模板
[root@localhost named]# vim kgc.com.zone ##修改區(qū)域配置文件
$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 ##本機(jī)地址
[root@localhost named]# systemctl start named ##開啟dns服務(wù)
[root@localhost named]# systemctl stop firewalld.service ##關(guān)閉防火墻
[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; ##不是則發(fā)送錯(cuò)誤圖片
}
}
[root@localhost named]# cp /mnt/error.png /usr/local/nginx/html/ ##將防盜鏈圖片放到站點(diǎn)中
[root@localhost named]# service nginx stop ##關(guān)閉開啟Nginx服務(wù)
[root@localhost named]# service nginx start
- Nginx的PHP解析功能實(shí)現(xiàn)如果是交由FPM處理的,為了提高PHP的出來速度,可對(duì)FPM模塊進(jìn)行參數(shù)的調(diào)整
- FPM模塊參數(shù)調(diào)整,要根據(jù)服務(wù)器的內(nèi)存與服務(wù)器負(fù)載進(jìn)行調(diào)整
- 啟動(dòng)fpm進(jìn)程方式
static:將產(chǎn)生固定數(shù)量的fpm進(jìn)程
dynamic:將以動(dòng)態(tài)的方式產(chǎn)生fpm進(jìn)程
通過pm參數(shù)指定
- static的方式的參數(shù)
pm.max_children:指定啟動(dòng)的進(jìn)程數(shù)量- Dynamic方式的參數(shù)
pm.max_children:指定啟動(dòng)的進(jìn)程數(shù)量最大的數(shù)量
pm.start_servers:動(dòng)態(tài)方式下初始的fpm進(jìn)程數(shù)量
pm.min_spare_servers:動(dòng)態(tài)方式下最小的fpm空閉進(jìn)程數(shù)
pm.max_spare_servers:動(dòng)態(tài)方式下最大的fpm空閉進(jìn)程數(shù)
優(yōu)化原因:服務(wù)器為云服務(wù)器,運(yùn)行了個(gè)人論壇,內(nèi)存為1.5G,fpm進(jìn)程數(shù)為20,內(nèi)存消耗近1G,處理比較慢
優(yōu)化參數(shù)調(diào)整:FPM啟動(dòng)時(shí)有5個(gè)進(jìn)程,最小空閑2個(gè)進(jìn)程,最大空閑8個(gè)進(jìn)程,最多可以有20個(gè)進(jìn)程存在