詳述Linux系統中Nginx虛擬主機的配置

Nginx虛擬主機應用

Nginx支持的虛擬主機有三種

  • 基於域名的虛擬主機.
  • 基於IP的虛擬主機
  • 基於端口的虛擬主機

通過"server{}"配置段實現

  • 本篇實驗接着上一篇搭建Nginx服務繼續搭建,前面Nginx的編譯安裝不在介紹

    基於域名的虛擬主機

    [root@localhost nginx-1.12.2]# mkdir -p /var/www/html/accp   //遞歸創建accp網頁站點目錄
    [root@localhost nginx-1.12.2]# mkdir -p /var/www/html/kgc     //遞歸創建kgc網頁站點目錄
    [root@localhost nginx-1.12.2]# cd /var/www/html/      //進入站點目錄
    [root@localhost html]# ls           //查看
    accp  kgc
    [root@localhost html]# echo "this is kgc web" > kgc/index.html    //創建站點文件
    [root@localhost html]# echo "this is accp web" > accp/index.html  //創建站點文件
    [root@localhost html]# ls accp/   //查看accp站點目錄
    index.html
    [root@localhost html]# ls kgc/   //查看kgc站點目錄
    index.html
    [root@localhost conf]# vim /etc/named.rfc1912.zones     //編輯DNS服務區域配置文件
    ...//省略部分內容...
    zone "kgc.com" IN {
        type master;
        file "kgc.com.zone";
        allow-update { none; };
    };      
    zone "accp.com" IN {
        type master;
        file "accp.com.zone";                //添加accp網頁域名解析
        allow-update { none; };
    };
    ...//省略部分內容...
    :wq
    [root@localhost conf]# cd /var/named/
    [root@localhost named]# cp -p named.localhost kgc.com.zone    //複製區域數據文件
    [root@localhost named]# vim kgc.com.zone              //編輯kgc區域數據文件
    $TTL 1D
    @       IN SOA  @ rname.invalid. (
                                        0       ; serial
                                        1D      ; refresh
                                        1H      ; retry
                                        1W      ; expire
                                        3H )    ; minimum
        NS      @
        A       127.0.0.1
    www IN  A       192.168.144.133
    :wq
    [root@localhost named]# cp -p kgc.com.zone accp.com.zone     
    //複製kgc區域數據文件保持權限不變,複製爲accp區域數據文件
    [root@localhost named]# systemctl restart named          //重啓DNS服務
    [root@localhost init.d]# cd /usr/local/nginx/conf/      
    [root@localhost conf]# vim nginx.conf               //編輯Nginx主配置文件
    ...//省略部分內容...
    server {
        listen       80; 
        server_name  www.kgc.com;         //設置kgc域名訪問條目
        charset utf-8;                   //更改字符串類型
        access_log  logs/www.kgc.com.access.log;    //更改日誌文件名稱
        location / { 
            root   /var/www/html/kgc;           //更改站點位置
            index  index.html index.htm;
        }   
        error_page   500 502 503 504  /50x.html;
        location = /50x.html {
            root   html;
        }   
    }   
    server {
        listen       80; 
        server_name  www.accp.com;
        charset utf-8;
        access_log  logs/www.accp.com.access.log;
        location / { 
            root   /var/www/html/accp;
            index  index.html index.htm;
        }   
        error_page   500 502 503 504  /50x.html;
        location = /50x.html {
            root   html;
        }   
    }   
    ...//省略部分內容...
    :wq
    [root@localhost conf]# nginx -t    //檢測語法
    nginx: the configuration file /usr/local/nginx/conf/nginx.conf syntax is ok
    nginx: configuration file /usr/local/nginx/conf/nginx.conf test is successful
    [root@localhost conf]# service nginx restart     //重啓服務
    [root@localhost conf]# systemctl restart named   //重啓DNS服務
  • 在客戶機中測試網頁

詳述Linux系統中Nginx虛擬主機的配置詳述Linux系統中Nginx虛擬主機的配置

基於端口的虛擬主機

[root@localhost conf]# vim nginx.conf    //編輯Nginx主配置文件
...//省略部分內容...
#    server {
#        listen       80;
#        server_name  www.kgc.com;
#        charset utf-8;
#        access_log  logs/www.kgc.com.access.log;
#        location / {
#            root   /var/www/html/kgc;             //註釋掉此部分內容
#            index  index.html index.htm;
#        }
#        error_page   500 502 503 504  /50x.html;
#        location = /50x.html {
#            root   html;
#        }
#    }

  server {
        listen       192.168.144.133:80;          //端口條目錢添加IP地址
        server_name  www.accp.com;
        charset utf-8;
        access_log  logs/www.accp.com.access.log;
        location / {
            root   /var/www/html/accp;
            index  index.html index.htm;
        }
        error_page   500 502 503 504  /50x.html;
        location = /50x.html {
            root   html;
        }
    }

    server {                                         //複製上面部分的內容
        listen       192.168.144.133:8080;           //設置相同IP監聽不同端口 
        server_name  www.accp.com;
        charset utf-8;
        access_log  logs/www.accp8080.com.access.log;    //更改日誌文件名稱
        location / {
            root   /var/www/html/accp8080;         //整改站點文件目錄名稱
            index  index.html index.htm;
        }
        error_page   500 502 503 504  /50x.html;
        location = /50x.html {
            root   html;
        }
    }
...//省略部分內容...
:wq          
[root@localhost conf]# cd /var/www/html/      //進入站點目錄
[root@localhost html]# mkdir accp8080           //創建目錄
[root@localhost html]# echo "this is accp8080 web" > accp8080/index.html   //編輯網頁內容
[root@localhost html]# cd /usr/local/nginx/conf/    
[root@localhost conf]# nginx -t             //檢測語法
nginx: the configuration file /usr/local/nginx/conf/nginx.conf syntax is ok
nginx: configuration file /usr/local/nginx/conf/nginx.conf test is successful
[root@localhost conf]# service nginx restart   //重啓服務
[root@localhost conf]# netstat -ntap | grep 80     //查看端口
tcp        0      0 192.168.144.133:8080    0.0.0.0:*            LISTEN      11967/nginx: master 
tcp        0      0 192.168.144.133:80      0.0.0.0:*            LISTEN      11967/nginx:
  • 在客戶機中訪問測試

詳述Linux系統中Nginx虛擬主機的配置詳述Linux系統中Nginx虛擬主機的配置

基於不同IP的虛擬主機

  • 首先給Linux虛擬機添加網卡

詳述Linux系統中Nginx虛擬主機的配置

[root@localhost conf]# ifconfig     //查看新添加的網卡信息,並記錄IP地址
ens33: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
        inet 192.168.144.133  netmask 255.255.255.0  broadcast 192.168.144.255
        inet6 fe80::a85a:c203:e2e:3f3c  prefixlen 64  scopeid 0x20<link>
        ether 00:0c:29:5b:d3:a0  txqueuelen 1000  (Ethernet)
        RX packets 67362  bytes 72060261 (68.7 MiB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 16836  bytes 1825469 (1.7 MiB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

ens36: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
        inet 192.168.144.145  netmask 255.255.255.0  broadcast 192.168.144.255
        inet6 fe80::deb1:3cec:3e26:5ec2  prefixlen 64  scopeid 0x20<link>
        ether 00:0c:29:5b:d3:aa  txqueuelen 1000  (Ethernet)
        RX packets 6  bytes 926 (926.0 B)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 27  bytes 4513 (4.4 KiB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0
[root@localhost conf]# vim /var/named/kgc.com.zon       //更改DNS區域數據文件中kgc網頁解析的IP地址
$TTL 1D
@       IN SOA  @ rname.invalid. (
                                        0       ; serial
                                        1D      ; refresh
                                        1H      ; retry
                                        1W      ; expire
                                        3H )    ; minimum
        NS      @
        A       127.0.0.1
www IN  A       192.168.144.145      //更改爲新添加網卡的IP地址
:wq
[root@localhost conf]# vim nginx.conf    //編輯主配置文件
...//省略部分內容...
 server {
        listen       192.168.144.145:80;       //去掉上面配置基於端口時全面添加的註釋,並添加監聽的IP地址
        server_name  www.kgc.com;
        charset utf-8;
        access_log  logs/www.kgc.com.access.log;
        location / { 
            root   /var/www/html/kgc;
            index  index.html index.htm;
        }   
        error_page   500 502 503 504  /50x.html;
        location = /50x.html {
            root   html;
        }   
    }   

    server {
        listen       192.168.144.133:80;
        server_name  www.accp.com;
        charset utf-8; 
        access_log  logs/www.accp.com.access.log;            //保持不變
        location / { 
            root   /var/www/html/accp;
            index  index.html index.htm;
        }   
        error_page   500 502 503 504  /50x.html;
        location = /50x.html {
            root   html;
        }   
    } 

#    server {
#        listen       192.168.144.133:8080;
#        server_name  www.accp.com;
#        charset utf-8;
#        access_log  logs/www.accp8080.com.access.log;          //註釋掉此部分內容
#        location / {
#            root   /var/www/html/accp8080;
#            index  index.html index.htm;
#        }
#        error_page   500 502 503 504  /50x.html;
#        location = /50x.html {
#            root   html;
#        }
#    }
...//省略部分內容...
:wq
[root@localhost conf]# nginx -t          //檢測語法 
nginx: the configuration file /usr/local/nginx/conf/nginx.conf syntax is ok
nginx: configuration file /usr/local/nginx/conf/nginx.conf test is successful
[root@localhost conf]# service nginx restart    //重啓服務
[root@localhost conf]# systemctl restart named   //重啓DNS服務
  • 在客戶機中訪問測試(此處建議新開啓一臺客戶機做訪問測試)

詳述Linux系統中Nginx虛擬主機的配置

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章