詳述Linux系統中配置Nginx網頁優化(二)

更改Nginx運行進程數

  • 在高併發場景,需要啓動更多的Nginx進程以保證快速響應,以處理用戶的請求,避免造成阻塞
  • 可以使用ps aux命令查看Nginx運行進程的個數
  • 更改進程數的配置方法

    • 修改配置文件,修改進程配置參數
  • 修改配置文件的worker_ processes參數

    • 一般設爲CPU的個數或者核數
    • 在高併發情況下可設置爲CPU個數或者核數的2倍
  • 運行進程數多-些,響應訪問請求時,Nginx就不會臨時啓動新的進程提供服務,減少了系統的開銷,提升了服務速度
  • 使用ps aux查看運行進程數的變化情況

  • 默認情況,Nginx的多個進程可能跑在一個CPU上, 可以分配不同的進程給不同的CPU處理,充分利用硬件多核多CPU
  • 在一臺4核物理服務器,可進行以下配置,將進程進行分配
    • Worker_ cpu_affinity 0001 0010 0100 1000

配置實例

[root@localhost conf]# ps aux | grep nginx      //查看進程數
root       5278  0.0  0.0  20548   612 ?        Ss   15:17   0:00 nginx: master process /usr/local/nginx/sbin/nginx
nginx      5279  0.0  0.0  23076  1396 ?        S    15:17   0:00 nginx: worker process
root       5295  0.0  0.0 112728   972 pts/0    S+   15:18   0:00 grep --color=auto nginx
[root@localhost ~]# cd /proc/     //進入設備目錄
[root@localhost proc]# cat cpuinfo       //查看cpu信息
processor   : 0 
vendor_id   : GenuineIntel
cpu family  : 6
...//省略部分內容...                               //第一個cpu信息
clflush size    : 64
cache_alignment : 64
address sizes   : 43 bits physical, 48 bits virtual
power management:

processor   : 1
vendor_id   : GenuineIntel
cpu family  : 6
...//省略部分內容...
clflush size    : 64                 //第二個cpu信息
cache_alignment : 64
address sizes   : 43 bits physical, 48 bits virtual
power management:
[root@localhost proc]# vim /usr/local/nginx/conf/nginx.conf    //進入編輯nginx配置文件
#user  nobody;
worker_processes  2;             //增加cpu個數
worker_cpu_affinity 01 10;       //設置平均分配訪問請求

#error_log  logs/error.log;
#error_log  logs/error.log  notice;
#error_log  logs/error.log  info;

#pid        logs/nginx.pid;

events {
    worker_connections  1024;
}
...//省略部分內容...
:wq
[root@localhost proc]# systemctl restart nginx.service      //重啓服務
[root@localhost proc]# ps aux | grep nginx       //查看進程數
root       1813  0.0  0.0  20548   616 ?        Ss   15:32   0:00 nginx: master process /usr/local/nginx/sbin/nginx
nginx      1814  0.0  0.0  23076  1400 ?        S    15:32   0:00 nginx: worker process
nginx      1815  0.0  0.0  23076  1400 ?        S    15:32   0:00 nginx: worker process
//增加進程數
root       1823  0.0  0.0 112728   972 pts/0    S+   15:32   0:00 grep --color=auto nginx

配置Nginx實現網頁壓縮功能

  • Nginxngx_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壓縮的頁面

將以上的壓縮功能參數加入到主配置文件httpd配置中段

配置實例

[root@localhost proc]# 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;

    gzip  on;                               //開啓壓縮功能
    gzip_min_length 1k;                     //編輯壓縮功能條目
    gzip_buffers 4 16k;
    gzip_http_version 1.1;
    gzip_comp_level 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 application/javascript application/json;
    gzip_disable "MSIE [1-6]\.";
    gzip_vary on;

    server {
        listen       80;
        server_name  localhost;
...//省略部分內容...
:wq
[root@localhost conf]# systemctl restart nginx.service     //重啓服務
  • 在客戶機中訪問網頁,並使用抓包工具查看是否開啓壓縮功能

詳述Linux系統中配置Nginx網頁優化(二)詳述Linux系統中配置Nginx網頁優化(二)

配置Nginx實現防盜鏈

  • 在企業網站服務中,- -般都要配置防盜鏈功能,以避免網站內容被非法盜用,造成經濟損失
  • Nginx防盜鏈功能也非常強大。默認情況下,只需要進行簡單的配置,即可實現防盜鏈處理

配置實例

[root@localhost ~]# mount.cifs //192.168.100.10/lamp-c7 /mnt/  //將準備的防盜鏈圖片目錄掛載到Linux系統
Password for root@//192.168.100.10/lamp-c7: 
root@localhost mnt]# cd /mnt/        //進入掛載目錄
[root@localhost mnt]# ls
apr-1.6.2.tar.gz       cronolog-1.6.2-14.el7.x86_64.rpm  httpd-2.4.29.tar.bz2  mysql-5.6.26.tar.gz
apr-util-1.6.0.tar.gz  Discuz_X2.5_SC_UTF8.zip           LAMP-php5.6.txt       nginx-1.12.0.tar.gz
awstats-7.6.tar.gz     error.png                         miao.jpg              php-5.6.11.tar.bz2
[root@localhost mnt]# cp error.png /usr/local/nginx/html/      //將防盜鏈圖片複製到nginx站點目錄
[root@localhost mnt]# cd /usr/local/nginx/html/          //進入站點目錄
[root@localhost html]# ls                      //查看
50x.html  error.png  index.html  miao.jpg      //圖片成功複製
[root@localhost html]# yum install bind -y     //安裝DNS功能
已加載插件:fastestmirror, langpacks
Loading mirror speeds from cached hostfile
...//省略部分內容...
已安裝:
  bind.x86_64 32:9.11.4-9.P2.el7                                                                 
作爲依賴被安裝:
  bind-export-libs.x86_64 32:9.11.4-9.P2.el7                                                     
作爲依賴被升級:
  bind-libs.x86_64 32:9.11.4-9.P2.el7                  bind-libs-lite.x86_64 32:9.11.4-9.P2.el7   
  bind-license.noarch 32:9.11.4-9.P2.el7               bind-utils.x86_64 32:9.11.4-9.P2.el7      
  dhclient.x86_64 12:4.2.5-77.el7.centos               dhcp-common.x86_64 12:4.2.5-77.el7.centos 
  dhcp-libs.x86_64 12:4.2.5-77.el7.centos             
完畢!
[root@localhost html]# vim /etc/named.conf      //編輯DNS主配置文件
...//省略部分內容...
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; };
...//省略部分內容...
:wq
[root@localhost html]# vim /etc/named.rfc1912.zones     //編輯DNS區域配置文件
...//省略部分內容...
zone "kgc.com" IN {
        type master;
        file "kgc.com.zone";
        allow-update { none; };
};
...//省略部分內容...
:wq
[root@localhost named]# cp -p named.localhost kgc.com.zone    //複製DNS區域數據文件,並更改文件名
[root@localhost named]# vim kgc.com.zone        //編輯DNS區域數據配置文件
$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.144.133            //設置解析地址
:wq
[root@localhost named]# systemctl start named      //啓動DNS服務
  • 打開一臺win10 客戶機與一臺win 7客戶,在win 7客戶機中安裝web服務,建立盜鏈網站,並在客戶機中測試訪問網站

詳述Linux系統中配置Nginx網頁優化(二)詳述Linux系統中配置Nginx網頁優化(二)詳述Linux系統中配置Nginx網頁優化(二)詳述Linux系統中配置Nginx網頁優化(二)詳述Linux系統中配置Nginx網頁優化(二)詳述Linux系統中配置Nginx網頁優化(二)

詳述Linux系統中配置Nginx網頁優化(二)詳述Linux系統中配置Nginx網頁優化(二)詳述Linux系統中配置Nginx網頁優化(二)詳述Linux系統中配置Nginx網頁優化(二)

[root@localhost html]# cd ../conf/             //進入nginx配置文件目錄
[root@localhost conf]# vim nginx.conf         //編輯配置文件
...//省略部分內容...
# redirect server error pages to the static page /50x.html
        #
        error_page   500 502 503 504  /50x.html;
        location = /50x.html {
            root   html;
        }

        location ~*\.(jpg|gif|swf)$ {         //在server模塊下添加防盜鏈條目
             valid_referers none blocked *.kgc.com kgc.com;
             if ( $invalid_referer ) {
                 rewrite ^/ http://www.kgc.com/error.png;
            }
        }
...//省略部分內容...
:wq
[root@localhost conf]# systemctl restart nginx.service
  • 在win 10客戶機中測試防盜鏈功能是否開啓

詳述Linux系統中配置Nginx網頁優化(二)

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章