首頁 > 軟體

Nginx虛擬主機的設定步驟過程全解

2022-03-31 19:00:52

一、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

執行後如圖:

2、是繫結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  

讓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目錄下 執行 [root@iZ28b4kreuaZ 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設定步驟的資料請關注it145.com其它相關文章!


IT145.com E-mail:sddin#qq.com