zabbix準備:nginx安裝

一.nginxs的三個依賴包javascript

1.zlib庫。  gzip 模塊須要 zlib 庫   ( 下載: http://www.zlib.net/ )php

  gzip(GNU-ZIP)是一種壓縮技術。通過gzip壓縮後頁面大小能夠變爲原來的30%甚至更小,這樣,用戶瀏覽頁面的時候速度會塊得多。gzip 的壓縮頁面須要瀏覽器和服務器雙方都支持,實際上就是服務器端壓縮,傳到瀏覽器後瀏覽器解壓並解析。瀏覽器那裏不須要咱們擔憂,由於目前的巨大多數瀏覽器 都支持解析gzip過的頁面。
  Nginx的壓縮輸出有一組gzip壓縮指令來實現。相關指令位於http{….}兩個大括號之間。css

  默認狀況下,Nginx的gzip壓縮是關閉的, gzip壓縮功能就是可讓你節省很多帶寬,可是會增長服務器CPU的開銷哦(與節約帶寬相比,寧願選擇節約帶寬,節約帶寬就是快速響應用戶的訪問)。html

  Nginx默認只對text/html進行壓縮 ,若是要對html以外的內容進行壓縮傳輸,咱們須要手動來調。java

2.pcre庫。  rewrite 模塊須要 pcre 庫 ( 下載: http://www.pcre.org/ ) node

  PCRE(Perl Compatible Regular Expressions)是一個Perl庫,包括 perl 兼容的正則表達式庫。這些在執行正則表達式模式匹配時用與Perl 5一樣的語法和語義是頗有用的。nginx

3.openssl庫。  ssl 功能須要 openssl 庫 ( 下載: http://www.openssl.org/ ) c++

    默認狀況下ssl模塊並未被安裝,若是要使用該模塊則須要在編譯時指定–with-http_ssl_module參數,安裝模塊依賴於OpenSSL庫和一些引用文件,一般這些文件並不在同一個軟件包中。一般這個文件名相似libssl-dev。web

二.nginx安裝正則表達式

1.依賴環境安裝

yum -y install gcc gcc-c++ zlib openssl-devel zlib-devel

2.安裝pcre-devel庫

 wget http://ftp.exim.llorien.org/pcre/pcre-8.36.tar.gz -P /download/
 cd /download/
 tar xf pcre-8.36.tar.gz -C /usr/src
 cd /usr/src/pcre-8.36
./configure --prefix=/usr/local/pcre --enable-utf8 --enable-jit
make && make install

3.安裝openssl(根據須要判斷是否安裝)

yum -y install openssl*

4.安裝nginx

 wget http://nginx.org/download/nginx-1.8.1.tar.gz -P /download/
 cd /download/
 tar xf nginx-1.8.1.tar.gz
 cd nginx-1.8.1
groupadd -g 1001 deamon useradd -M -u 1001 -g deamon -s /sbin/nologin deamon ./configure --prefix=/usr/local/nginx --error-log-path=/var/log/nginx/error.log --http-log-path=/var/log/nginx/access.log --pid-path=/var/run/nginx/nginx.pid --lock-path=/var/run/nginx/nginx.lock --user=daemon --group=daemon --with-pcre=/usr/src/pcre-8.36 --with-threads --with-http_realip_module --with-http_gzip_static_module --with-http_stub_status_module make && make install  
--with-pcre後面跟的是pcre的解壓路徑
--prefix=/usr/local/nginx                  #指定nginx 的安裝路徑
--error-log-path=/var/log/nginx/error.log         #指定nginx錯誤日誌的路徑
--http-log-path=/var/log/nginx/access.log         #指定用戶訪問http時信息保存路徑
--pid-path=/var/run/nginx/nginx.pid             #指定nginx的PID路徑
--lock-path=/var/run/nginx/nginx.lock            
--user=daemon --group=daemon                #指定nginx的用戶和組
--with-pcre=/usr/src/pcre-8.36 --with-threads      #爲了支持rewrite重寫功能,指定pcre解壓路徑
###########################附加經常使用選項--------------------------------
--with-http_stub_status_module:支持nginx狀態查詢
--with-http_ssl_module:支持https
--with-http_spdy_module:支持google的spdy,想了解請百度spdy,這個必須有ssl的支持
參數解釋

 

三.nginx主配文件修改 

配置說明:

配置文件位置:/usr/local/nginx/conf/nginx.conf
Nginx配置文件分爲4個部分
1. main(全局設置)
2. server(主機設置)
3. upstream(負載均衡設置)
4. localtion(URL匹配特定位置的設置)
server繼承main location繼承server
upstream即不會繼承其它設置也不會被繼承.

#==================================一全局配置#========================
user  user_00 users;  #這個模塊指令,指Nginx Worker 運用的用戶和組,默認爲nobody
worker_processes  8;  #指定了要開啓的進程數,每進程佔用10M~12M的內存,建議和CPU的核心數量同樣多的進程就好了。


error_log  logs/error.log; #全局錯誤日誌
#error_log  logs/error.log  notice; 
#error_log  logs/error.log  info;   
  
pid        logs/nginx.pid;  #:用來指定進程ID的存儲位置.


#Specifies the value for maximum file descriptors that can be opened by this process.
#events 用來指定Nginx工做模式以及鏈接數上限
events {
    use epoll;  #使用epoll高效模式,適用於Linux,Unix使用kqueue
    worker_connections  100000; #定義Ningx沒個進程最大的鏈接數。默認爲1024,受到文件句柄的約束。
}
worker_rlimit_nofile 100000; #打開的文件句柄數量最高爲10萬

#==================================2、HTTP配置========================
http {
    include       mime.types;  #實現對配置文件所包含的文件設定
    default_type  application/octet-stream; #屬於HTTP核心模塊,默認設定爲二進制流
    server_tokens off;   #禁止錯誤頁面裏顯示nginx的版本號

    # 定義日誌處理的格式
    #log_format  main  '$remote_addr - $remote_user [$time_local] "$request" '
    #                  '$status $body_bytes_sent "$http_referer" '
    #                  '"$http_user_agent" "$http_x_forwarded_for"';

    # 定義它的hash表爲128K
    server_names_hash_bucket_size 128;
    client_header_buffer_size 32k; #客戶端請求頭部的緩衝區大小,通常一個請求頭的大小不會超過1k
    large_client_header_buffers 4 32k; #客戶請求頭緩衝大小 nginx默認會用client_header_buffer_size這個buffer來讀取header值
    client_max_body_size 8m; #設定經過nginx上傳文件的大小

    #sendfile指令指定 nginx 是否調用sendfile 函數(zero copy 方式)來輸出文件,
     #對於普通應用,必須設爲on。
     #若是用來進行下載等應用磁盤IO重負載應用,可設置爲off,以平衡磁盤與網絡IO處理速度,下降系統uptime。
    sendfile          on;
    tcp_nopush        on; #此選項容許或禁止使用socke的TCP_CORK的選項,此選項僅在使用sendfile的時候使用
    tcp_nodelay       on;

    #keepalive_timeout  0;
    keepalive_timeout 60; #keepalive超時時間。鏈接保持活動時間超過這個,將被關閉掉

    #===================重要位置============
    fastcgi_connect_timeout 300; #指定鏈接到後端FastCGI的超時時間。
    fastcgi_send_timeout 300; #向FastCGI傳送請求的超時時間,這個值是指已經完成兩次握手後向FastCGI傳送請求的超時時間。
    fastcgi_read_timeout 300; #接收FastCGI應答的超時時間,這個值是指已經完成兩次握手後接收FastCGI應答的超時時間。
    fastcgi_buffer_size 254k; #指定讀取FastCGI應答第一部分須要用多大的緩衝區
    fastcgi_buffers 16 256k; #指定本地須要用多少和多大的緩衝區來緩衝FastCGI的應答。
    fastcgi_busy_buffers_size 512k; #這個指令我也不知道是作什麼用,只知道默認值是fastcgi_buffers的兩倍。
    fastcgi_temp_file_write_size 512k; #在寫入fastcgi_temp_path時將用多大的數據塊,默認值是fastcgi_buffers的兩倍。

    gzip              on; #該指令用於開啓或關閉gzip模塊(on/off)
    gzip_min_length   1k; #設置容許壓縮的頁面最小字節數,頁面字節數從header頭得content-length中進行獲取
    gzip_buffers      4 16k; #設置系統獲取幾個單位的緩存用於存儲gzip的壓縮結果數據流
    gzip_http_version 1.0; #識別http的協議版本
    gzip_comp_level   2;   #gzip壓縮比,1壓縮比最小處理速度最快
    #匹配mime類型進行壓縮,不管是否指定,」text/html」類型老是會被壓縮的
    gzip_types        text/plain application/x-javascript text/css application/xml text/javascript;
    gzip_vary         on; #和http頭有關係,加個vary頭,給代理服務器用的

    charset      utf-8;  #字符集爲utf-8

    access_log   off;    # 平常日誌關閉
    log_not_found off;   # 平常日誌關閉

        error_page  400 403 405 408  /40x.html;  # 錯誤返回頁面
        error_page  500 502 503 504  /50x.html;  # 錯誤返回頁面
    #===================Server虛擬機配置保持默認============
    server {
        listen       80 default;   #默認監聽端口號爲80
        server_name  _;
    return       444;
    }
#===================自定義虛擬機配置文件===========
include vhost/vhost.www.fanhougame.com;

}
nginx配置文件解析

主配虛擬Server配置文件以下:

    server {
        listen       80 ; #監聽端口號
        #域名爲
        server_name  10.0.0.201;
        # 指定網站的目錄
        root         /data/www/oa.com/www.fanhougame.com ;

        # localtion模塊指定網站首頁名稱
        location / {
            index index.php index.html index.htm;
            if (!-e $request_filename) {
                return 444;
            }
        }

        #:返回的錯誤信息
        error_page   500 502 503 504  /50x.html;
        location = /50x.html {
            root   /usr/local/nginx/html;
        }

        #能夠指定多個localtion進行不一樣的指令處理,這裏是指定php的sock
        location ~ \.php$ {
            fastcgi_pass   unix:/tmp/php-cgi-5313-web.sock;
            fastcgi_index  index.php;
            include        fastcgi_params;
            fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
            fastcgi_param SERVER_NAME $http_host;
            fastcgi_ignore_client_abort on;
        }

        #指定對網頁圖片格式進行緩存max表示10年,也能夠是30d(天)
        location ~ \.(swf|js|css|xml|gif|jpg|jpeg|png|bmp)$ {
            error_log    off;
            access_log   off;
            #expires      30d;
            expires      max;
        }
    }
vhost/vhost.www.fanhougame.com

四.開放端口

#vi /etc/sysconfig/iptables

-A INPUT -m state --state NEW -m tcp -p tcp --dport 80 -j ACCEPT

將上述代碼加入ssh服務(22端口)下面 

 

啓動與平滑重啓

# cd /usr/local/services/nginx/sbin/
# ./nginx –t 檢測配置文件是否有錯誤
# ./nginx 啓動nginx
# ./nginx -s reload 平滑重啓

本次配置:

 1 user  deamon;
 2 worker_processes  8;  #指定了要開啓的進程數,每進程佔用10M~12M的內存,建議和CPU的核心數量同樣多的進程就好了。
 3 error_log  /var/log/nginx/error.log warn;
 4 pid        /var/run/nginx/nginx.pid;
 5 #Specifies the value for maximum file descriptors that can be opened by this process.
 6 #events 用來指定Nginx工做模式以及鏈接數上限
 7 events {
 8     use epoll;  #使用epoll高效模式,適用於Linux,Unix使用kqueue
 9     worker_connections  100000; #定義Ningx沒個進程最大的鏈接數。默認爲1024,受到文件句柄的約束。
10 }
11 worker_rlimit_nofile 100000; #打開的文件句柄數量最高爲10萬
12 
13 
14 http {
15     include       mime.types;
16     default_type  application/octet-stream;
17 
18     log_format  main  '$remote_addr - $remote_user [$time_local] "$request" '
19                       '$status $body_bytes_sent "$http_referer" '
20                       '"$http_user_agent" "$http_x_forwarded_for"';
21 
22     access_log  /var/log/nginx/access.log  main;
23     sendfile        on;
24     #tcp_nopush     on;
25     #keepalive_timeout  0;
26     keepalive_timeout  65;
27     server_names_hash_bucket_size 128;
28     client_header_buffer_size 32k; #客戶端請求頭部的緩衝區大小,通常一個請求頭的大小不會超過1k
29     large_client_header_buffers 4 32k; #客戶請求頭緩衝大小 nginx默認會用client_header_buffer_size這個buffer來讀取header值
30     client_max_body_size 8m; #設定經過nginx上傳文件的大小
31 
32 
33     gzip              on; #該指令用於開啓或關閉gzip模塊(on/off)
34     gzip_min_length   1k; #設置容許壓縮的頁面最小字節數,頁面字節數從header頭得content-length中進行獲取
35     gzip_buffers      4 16k; #設置系統獲取幾個單位的緩存用於存儲gzip的壓縮結果數據流
36     gzip_http_version 1.0; #識別http的協議版本
37     gzip_comp_level   2;   #gzip壓縮比,1壓縮比最小處理速度最快
38         #匹配mime類型進行壓縮,不管是否指定,」text/html」類型老是會被壓縮的
39     gzip_types        text/plain application/x-javascript text/css application/xml text/javascript;
40     gzip_vary         on; #和http頭有關係,加個vary頭,給代理服務器用的
41 
42     charset      utf-8;  #字符集爲utf-8
43 
44     access_log   off;    # 平常日誌關閉
45     log_not_found off;   # 平常日誌關閉
46 
47 #fastcgi_temp_path  /etc/nginx/tmp;
48 #fastcgi_cache_path /etc/nginx/cache levels=1:2 keys_zone=MYAPP:100m inactive=60m;
49 #fastcgi_cache_key " request_method request_uri";
50 
51     fastcgi_connect_timeout 300; #指定鏈接到後端FastCGI的超時時間。
52     fastcgi_send_timeout 300; #向FastCGI傳送請求的超時時間,這個值是指已經完成兩次握手後向FastCGI傳送請求的超時時間。
53     fastcgi_read_timeout 300; #接收FastCGI應答的超時時間,這個值是指已經完成兩次握手後接收FastCGI應答的超時時間。
54     fastcgi_buffer_size 254k; #指定讀取FastCGI應答第一部分須要用多大的緩衝區
55     fastcgi_buffers 16 256k; #指定本地須要用多少和多大的緩衝區來緩衝FastCGI的應答。
56     fastcgi_busy_buffers_size 512k; #這個指令我也不知道是作什麼用,只知道默認值是fastcgi_buffers的兩倍。
57     fastcgi_temp_file_write_size 512k; #在寫入fastcgi_temp_path時將用多大的數據塊,默認值是fastcgi_buffers的兩倍。
58 
59 
60     server {
61         listen       80 ; #監聽端口號
62                 #域名爲
63         server_name  localhost;
64         # 指定網站的目錄
65                 root         /www/;
66                 # localtion模塊指定網站首頁名稱
67         location / {
68             index index.php index.html index.htm;
69             if (!-e $request_filename) {
70                 return 444;
71             }
72         }
73         location ~ \.php$ {
74             root           /www;
75             #fastcgi_cache MYAPP;
76             #fastcgi_cache_valid 200 60m;
77             fastcgi_pass   unix:/tmp/php-cgi.sock;
78             fastcgi_index  index.php;
79             fastcgi_cache_valid 200 60m;
80             fastcgi_param  SCRIPT_FILENAME  $document_root$fastcgi_script_name;
81             include        fastcgi_params;
82         }
83         location /zabbix{
84             alias /www/zabbix;
85         }
86                 #指定對網頁圖片格式進行緩存max表示10年,也能夠是30d(天)
87         location ~ \.(swf|js|css|xml|gif|jpg|jpeg|png|bmp)$ {
88             error_log    off;
89             access_log   off;
90                         #expires      30d;
91             expires      max;
92         }
93 }
94 }
View Code
相關文章
相關標籤/搜索