1. 程式人生 > >Nginx服務器之 Nginx的基本配置

Nginx服務器之 Nginx的基本配置

connect cast body netmask gin 主機ip ash 操作 日誌輸出

本文使用 Linux centos系統

一、Nginx虛擬主機的配置

虛擬主機:通常情況下,為了使每個服務器可以供更多用戶使用,可以將一個服務器分為很多虛擬的子服務器,每個子服務器都是互相獨立的。這些服務器是根據虛擬化技術分出來的,這樣,一臺服務器就可以虛擬成很多臺子服務器。我們把子服務器叫做虛擬主機。我們搭建好Nginx服務器之後,此時只有一臺Nginx服務器,這時如果我們對這臺服務器進行虛擬主機配置,就可以將一臺Nginx服務器分割為多臺獨立的子服務器。

Nginx中配置虛擬主機的步驟主要有兩個:

1、創建虛擬主機IP 通過ifconfig查看自己的主機ip,然後根據主機ip創建虛擬主機Ip。命令: ifconfig eth1:2 121.42.41.145 broadcast 121.42.43.255 netmask 255.255.252.0 執行後如圖:

技術分享

b、第二步是綁定IP地址與虛擬主機。 nginx.conf:該文件是nginx的系統配置文件,建議不要在這上邊改動。我們一般采用自定義文件,然後加載該文件,從而達到相同的效果。

建立配置文件在 /usr/local/nginx/conf目錄下創建 xnzj.conf。

技術分享
#========工作衍生進程數(建議設置成與cpu核數相同或者2倍)==========
worker_processes  1;
#===========設置最大連接數==============
events {
    worker_connections  1024;
}
#============http協議的相關信息==============
http {
    server {
        #===========要監聽虛擬主機的IP地址與端口==========
        listen 121.42.41.144:80;
        #===========該虛擬主機的名稱===========
        server_name  121.42.41.144;
        #===============該虛擬主機服務器的日誌文件=========
        access_log  logs/server144.access.log  combined;
        #============== 默認請求資源=============
        location / {
            root   html/server144;
            #===== nginx會先找index.html 如果沒找到就找index.htm
            index  index.html index.htm;
        }
    }
    server {
        #===========要監聽虛擬主機的IP地址與端口==========
        listen 121.42.41.145:80;
        #===========該虛擬主機的名稱===========
        server_name  121.42.41.145;
        #===============該虛擬主機服務器的日誌文件=========
        access_log  logs/server145.access.log  combined;
        #============== 默認請求資源=============
        location / {
            root   html/server145;
            index  index.html index.htm;
        }
    }
}
技術分享

在 /usr/local/nginx/html下創建對應的虛擬主機默認資源 /usr/local/nginx/html/server144/index.html ;/usr/local/nginx/html/server145/index.html

c、讓Nginx加載我麽自定義的配置文件(我的配置文件:xnzj.conf) 執行命令:/usr/local/nginx/sbin/nginx -c /usr/local/nginx/conf/xnzj.conf

二、日誌的配置

Nginx服務器在運行的時候,會有各種操作,這些關鍵的操作信息會記錄到文件中,這些文件叫做日誌文件。日誌文件的記錄是有格式的,我們可以按系統默認的格式去記錄,也可以按我們自定義的格式去記錄。我們可以使用log_format指令來設置Nginx服務器的日誌文件的記錄格式。

配置方式:打開nginx.conf 文件,開啟註釋的下端代碼。

技術分享
     #combined:日誌輸出格式 
     #remote_addr 客戶端請求地址 
     #remote_user:客戶端用戶名  
     #request:請求的地址(服務器資源位置) 
     #status:用戶的請求狀態 
     #body_bytes_sent:服務器響應的資源大小(字節數),  
     #http_referer:源網頁    
     #http_user_agent:客戶端瀏覽器信息  
     #http_x_forwarded_for:客戶端Ip地址  
    log_format  combined  ‘$remote_addr - $remote_user [$time_local] "$request" ‘
                      ‘$status $body_bytes_sent "$http_referer" ‘
                     ‘"$http_user_agent" "$http_x_forwarded_for"‘;
    #==================日誌文件  access_log:off;表示關閉日誌===========
    access_log  logs/access.log  combined;
技術分享

日誌切割:
為了使Nginx的日誌文件存儲更合理、有序,我們需要將日誌文件進行分開存儲,比如我們可以按時間來分開,今天的日誌文件存儲到一個文件中,明天的日誌文件則存儲到另一個新的文件中等等。這個時候,我們就會用到日誌文件的切割操作。

日誌切割步驟:

1、創建批處理文件

在/usr/local/nginx/logs目錄下 執行 [[email protected] logs]# touch cutlog.sh

2、為該文件添加內容:

D=$(date +%Y%m%d)
mv /usr/local/nginx/logs/access.log ${D}.log
kill -USR1 $(cat /usr/local/nginx/nginx.pid)

3、定時執行批處理文件 執行 crontab -e 命令添加以下內容

23 59 *** /bin/bash /usr/local/nginx/logs/cutlog.sh

三、Nginx緩存配置

當我們在瀏覽器中瀏覽某網頁時,我們會把該網頁上的一些信息(比如這個網頁上的圖片)存儲到本地,當我們第二次瀏覽該網頁的時候,這個網頁上的某些信息就可以從本地加載,這樣速度就會快很多。存儲到本地的這些信息我們把其稱為緩存。但是緩存過多的時候,緩存文件就會非常大,影響我們正常的上網活動。故而緩存需要定期清理。

配置方式:/usr/local/nginx/conf/nginx.conf 配置文件的http{ server{}}中的location下添加 如下代碼:

技術分享
#====================緩存配置=============
       location ~.*\.(jpg|png|swf|gif)${
            expires 2d;#兩天後清除
       }
       location ~.*\.(css|js)?${
        expires:1h;#
       }
技術分享

四、Nginx的gzip壓縮配置

這裏我們提到的壓縮功能指的是gzip壓縮技術。通過gzip壓縮技術,可以使原來的網頁的內容大小壓縮成原來的30%,這樣,用戶在訪問網頁的時候,由於傳輸的內容比原內容小很多,故而訪問速度會快很多。Nginx服務器支持gzip壓縮技術,但是,需要進行配置。

配置方式:/usr/local/nginx/conf/nginx.conf 配置文件的http{ }中添加 如下代碼:

    gzip  on;#開啟壓縮
    gzip_min_lenth 1k;#設置使用壓縮的最小單位
    gzip_buffers 4 16k;#創建壓縮文件緩存大小
    gzip_http_version 1.1;#使用壓縮技術的協議 及其版本
    gzip_vary:on;#開啟判斷客戶端瀏覽器是否支持壓縮技術

五、Nginx自動列目錄配置  

  當客戶端通過瀏覽器訪問服務器上的某一文件夾的時候,如果該文件夾上有默認的首頁文件,比如index.html,那麽此時用戶就會自動訪問到index.html這個網頁。但是,當沒有index.html這一類默認首頁的文件的時候,假設此時該文件夾還有其他文件,在沒有配置自動列目錄的功能的情況下,用戶訪問不到我們這個文件夾的內容。但當我們配置好了自動列目錄功能之後,我們就可以看到該文件夾下所有文件的一個列表,該列表目錄是自動列的。

實現自動列目錄需要兩個條件:

1.訪問的文件夾下不存在index之類的默認首頁文件。

2.服務器配置了自動列目錄功能。

配置方式:/usr/local/nginx/conf/nginx.conf 配置文件的http{ server{}}中添加 如下代碼:

location / {
            root   html;
            index  index.html index.htm;
            autoindex on;#開啟自動列目錄
        }

Nginx服務器之 Nginx的基本配置