Nginx虛擬主機怎么配置

一、nginx虛擬主機的配置

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

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

1、創建虛擬主機IP

通過ifconfig查看自己的主機ip,然后根據主機ip創建虛擬主機Ip。

命令:?ifconfig eth2:2 121.42.41.145 broadcast 121.42.43.255 netmask 255.255.252.0

執行后如圖:

Nginx虛擬主機怎么配置

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;#開啟自動列目錄 ????????}

? 版權聲明
THE END
喜歡就支持一下吧
點贊6 分享