溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

Nginx虛擬主機(jī)配置實(shí)踐(一)

發(fā)布時(shí)間:2020-07-11 00:35:59 來源:網(wǎng)絡(luò) 閱讀:588 作者:品鑒初心 欄目:建站服務(wù)器

Nginx虛擬主機(jī)配置實(shí)踐(一)


一、虛擬主機(jī)的概念

在Web服務(wù)里虛擬主機(jī)就是一個(gè)獨(dú)立的網(wǎng)站站點(diǎn),這個(gè)站點(diǎn)對(duì)應(yīng)獨(dú)立的域名(也可能是IP或端口),具有獨(dú)立的程序及資源目錄,可以獨(dú)立的對(duì)外提供服務(wù)供用戶訪問。

二、虛擬主機(jī)的類型

  1. 基于域名的虛擬主機(jī)

  2. 基于端口的虛擬主機(jī)

  3. 基于IP的虛擬主機(jī)

    說明:實(shí)際生產(chǎn)中用的最多的就是基于域名的虛擬主機(jī),其他兩種了解即可。

三、基于一個(gè)域名虛擬主機(jī)的配置

  1. Nginx主配置文件結(jié)構(gòu)

    Nginx虛擬主機(jī)配置實(shí)踐(一)

  2. 創(chuàng)建一個(gè)最簡(jiǎn)化的Nginx主配置文件

    [root@nginx-oldboy conf]# egrep -v "#|^$" nginx.conf.default > nginx.conf

    說明:Nginx的主配置文件是nginx.conf,nginx.conf.default與nginx.conf內(nèi)容是一樣的。

    執(zhí)行上述命令之后,得到如下內(nèi)容:

    Nginx虛擬主機(jī)配置實(shí)踐(一)

    修改如下內(nèi)容:

    12   server_name  www.afeilinux.com;

    14   root   html/wtf;

    Nginx虛擬主機(jī)配置實(shí)踐(一)

  3. 創(chuàng)建域名對(duì)應(yīng)的站點(diǎn)目錄及文件

    [root@nginx-oldboy nginx1.10]# mkdir -p html/wtf

    [root@nginx-oldboy nginx1.10]# cd html/ && ls

    50x.html  index.html  wtf

    [root@nginx-oldboy html]# echo "第一次測(cè)試" > ./wtf/index.html

    [root@nginx-oldboy html]# cat ./wtf/index.html

    第一次測(cè)試

    說明:上述命令的作用是創(chuàng)建一個(gè)html/wtf站點(diǎn)目錄,對(duì)應(yīng)于主機(jī)配置文件里root根目錄的html/wtf設(shè)置(root html/wtf;)。然后生成一個(gè)默認(rèn)的首頁文件index.html,文件內(nèi)容是“第一次測(cè)試”。

  4. nginx語法檢查并重新加載

    [root@nginx-oldboy html]# nginx -t

    Nginx虛擬主機(jī)配置實(shí)踐(一)

    [root@nginx-oldboy html]# nginx -s reload

    說明:如果沒有啟動(dòng)nginx,則無法reload。報(bào)錯(cuò)內(nèi)容如下:

    Nginx虛擬主機(jī)配置實(shí)踐(一)

  5. 查看監(jiān)聽端口

    [root@nginx-oldboy html]# netstat -lnp |grep nginx

    Nginx虛擬主機(jī)配置實(shí)踐(一)

  6. 修改hosts配置文件

    [root@nginx-oldboy html]# echo "192.168.100.116  www.afeilinux.com" >> /etc/hosts

    查看一下:

    [root@nginx-oldboy html]# tail -n1 /etc/hosts

    192.168.100.116  www.afeilinux.com

    在windows端也要修改hosts配置文件。

  7. 測(cè)試域名站點(diǎn)

    Nginx虛擬主機(jī)配置實(shí)踐(一)

四、基于多個(gè)域名虛擬主機(jī)的配置

  1. 增加新域名對(duì)應(yīng)的配置

    上面已經(jīng)有了一個(gè)www.afeilinux.com虛擬主機(jī)的配置,下面再增加一個(gè)www.afeilinux.org虛擬主機(jī)的配置。增加的主機(jī)一定要在nginx.conf的http{}區(qū)塊內(nèi),最好放在www.afeilinux.com虛擬主機(jī)配置的下面。

    server {

            listen       80;

            server_name  www.afeilinux.org;

            location / {

                root   html/org;

                index  index.html index.htm;

            }

            error_page   500 502 503 504  /50x.html;

            location = /50x.html {

                root   html;

            }

        }

    Nginx虛擬主機(jī)配置實(shí)踐(一)

  2. 創(chuàng)建新虛擬機(jī)主機(jī)站點(diǎn)對(duì)應(yīng)的目錄和文件

    [root@nginx-oldboy nginx1.10]# mkdir ./html/org

    [root@nginx-oldboy nginx1.10]# echo "第二次測(cè)試" > ./html/org/index.html

    [root@nginx-oldboy nginx1.10]# cat !$

    cat ./html/org/index.html

    第二次測(cè)試

  3. 檢查下站點(diǎn)目錄結(jié)構(gòu)

    [root@nginx-oldboy nginx1.10]# tree

    -bash: tree: command not found

    解決方法:

    [root@nginx-oldboy nginx1.10]# yum install -y tree

    [root@nginx-oldboy nginx1.10]# tree html/

    Nginx虛擬主機(jī)配置實(shí)踐(一)

  4. 檢查語法并重新加載nginx配置

    [root@nginx-oldboy ~]# nginx -t

    [root@nginx-oldboy ~]# nginx -s reload

  5. 測(cè)試域名站點(diǎn)

    Nginx虛擬主機(jī)配置實(shí)踐(一)

五、規(guī)范和優(yōu)化nginx配置文件

  1. 將虛擬主機(jī)配置成單獨(dú)的配置文件與nginx主配置文件nginx.conf分開

    說明:

    (1)適用于虛擬主機(jī)數(shù)量不多的情況;

    (2)主配置文件包含的所有虛擬主機(jī)的子配置文件會(huì)統(tǒng)一放在extra目錄中;

    (3)虛擬主機(jī)配置單獨(dú)的配置文件,使用參數(shù)include,它可以放在nginx主配置文件中任何位置。

    [root@nginx-oldboy conf]# mkdir extra

    [root@nginx-oldboy conf]# sed -n '10,21p' nginx.conf

    Nginx虛擬主機(jī)配置實(shí)踐(一)

    [root@nginx-oldboy conf]# sed -n '10,21p' nginx.conf > extra/wtf.conf

    [root@nginx-oldboy conf]# cat extra/wtf.conf

    [root@nginx-oldboy conf]# sed -n '22,33p' nginx.conf > extra/org.conf

    [root@nginx-oldboy conf]# cat extra/org.conf

  2. 更改主配置文件nginx.conf

    刪除主配置文件nginx.conf中所有虛擬主機(jī)的配置,包含server{}標(biāo)簽。

    [root@nginx-oldboy conf]# sed -i '10,33d' nginx.conf

    [root@nginx-oldboy conf]# cat nginx.conf

    Nginx虛擬主機(jī)配置實(shí)踐(一)

    把虛擬主機(jī)獨(dú)立配置文件wtf.conf和org.conf的信息包含到nginx.conf里,這樣就把主配置文件和各個(gè)虛擬主機(jī)配置分離了。

    include extra/wtf.conf

    include extra/org.conf

    [root@nginx-oldboy conf]# sed -i '10 i include extra/wtf.conf;\ninclude extra/org.conf;' nginx.conf

    Nginx虛擬主機(jī)配置實(shí)踐(一)

  3. nginx語法檢測(cè)和重新加載

    [root@nginx-oldboy conf]# nginx -t

    [root@nginx-oldboy conf]# nginx -s reload

  4. 測(cè)試

    [root@nginx-oldboy conf]# curl www.afeilinux.com

    第一次測(cè)試

    [root@nginx-oldboy conf]# curl www.afeilinux.org

    第二次測(cè)試

    [root@nginx-oldboy conf]# tree extra/

    Nginx虛擬主機(jī)配置實(shí)踐(一)

    這樣虛擬主機(jī)配置文件就與nginx主配置文件分離開了!

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI