首頁  >  文章  >  運維  >  Nginx虛擬主機怎麼配置

Nginx虛擬主機怎麼配置

王林
王林轉載
2023-05-15 22:46:042636瀏覽

一、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快取設定##########當########三、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虛擬主機怎麼配置的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文轉載於:yisu.com。如有侵權,請聯絡admin@php.cn刪除