獲取全套nginx教程,請訪問瓦力博客
這小節(jié)小菜將記錄三種虛擬主機的配置,第一種是nginx虛擬主機單網卡多IP配置,第二種是nginx虛擬主機基于多端口配置,第三種是nginx虛擬主機基于多域名配置來實現(xiàn)
小菜將一一舉例,企業(yè)中長用到的還是后兩種方法。
nginx -t -c /etc/nginx/nginx.conf #命令了檢測語法
nginx -s reload -c /etc/nginx/nginx.conf #重啟配置
nginx -s stop -c /etc/nginx/nginx.conf #停止nginx服務
nginx -c /etc/nginx/nginx.conf #重啟nginx服務
開始之前先做點準備工作,輸入
cd /usr/share/nginx/html
在該目錄下面我們建兩個文件夾server1和server2,在文件建里面分別建index.html,內容為
<!DOCTYPE html>
<html>
<head>
<title>Welcome to nginx!</title>
</head>
<body>
<h1>服務器server1</h1>
</body>
</html>
將index.html中的server1修改為server2。創(chuàng)建好后路徑視圖
/usr/share/nginx/html
|
|--server1
| |--index.html
|
|--server2
|--index.html
進入nginx配置,將默認的default.conf拷貝兩份,分別命名為server1.conf和server2.conf
cd /etc/nginx/conf.d
cp default.conf server1.conf
cp default.conf server2.conf
1.單網卡多IP配置
查看本機ip
# ip a
輸入信息
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN qlen 1
link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
inet 127.0.0.1/8 scope host lo
valid_lft forever preferred_lft forever
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP qlen 1000
link/ether 00:16:3e:0c:3f:85 brd ff:ff:ff:ff:ff:ff
inet 172.19.139.239/20 brd 172.19.143.255 scope global eth0
valid_lft forever preferred_lft forever
可以看出有兩個網卡,一個是lo是本地回環(huán)網卡,一個是物理網卡。從172.19.139.239/20 brd 172.19.143.255地址段中可添加ip,添加ip前先ping一下,防止和本地ip沖突
ping 172.19.139.240
ping不通時,說明未和本地ip沖突,然后添加到本地設備,由于我的機器本地設備是eth0
ip a add 172.19.139.240/20 dev eth0
添加好ip之后查看下
ip a
輸入信息
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN qlen 1
link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
inet 127.0.0.1/8 scope host lo
valid_lft forever preferred_lft forever
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP qlen 1000
link/ether 00:16:3e:0c:3f:85 brd ff:ff:ff:ff:ff:ff
inet 172.19.139.239/20 brd 172.19.143.255 scope global eth0
valid_lft forever preferred_lft forever
inet 172.19.139.240/20 scope global secondary eth0
valid_lft forever preferred_lft forever
我們看到172.19.139.240/20就被添加上去,然后切換到nginx配置目錄
cd /etc/nginx/conf.d
vim server1.conf
#這里我們只修改兩處地方
#將原來的listen 80 修改為 listen 172.19.139.240:80;
listen 172.19.139.240:80;
#將原來指向的目錄root /usr/share/nginx/html 修改為 root /usr/share/nginx/html/server1;
root /usr/share/nginx/html/server1;
server2.conf文件和server1.conf修改的地方一樣,只不過ip和文件路徑指定不同。修改好后,重啟nginx服務就可以了
nginx -s stop -c /etc/nginx/nginx.conf #停止nginx服務
nginx -c /etc/nginx/nginx.conf #重啟nginx服務
在虛擬機里是可以訪問的,但是小菜我用的是阿里云服務器,阿里云服務器對外的訪問ip是一個。單網卡虛擬主機配置在阿里云服務器上不能訪問。
2.單ip多端口配置
ip多端口配置這個很好理解,就是在nginx上監(jiān)聽不同的端口號,我們來直接修改端口號
cd /etc/nginx/conf.d
vim server1.conf
#將原來的listen 172.19.139.240:80修改為 listen 80 ;
listen 80;
vim server2.conf
listen 9000;
修改完成后
nginx -s stop -c /etc/nginx/nginx.conf #停止nginx服務
nginx -c /etc/nginx/nginx.conf #重啟nginx服務
因為我們之前配置了兩個應用server1和server2,所以這里我們只修改端口號就可以了。然后在阿里云安全組設置允許9000端口通過就可以了。



3.多域名配置
多端口配置虛擬主機配置完成,最后來配置多域名。自己去阿里云域名購買域名(域名是要備案的),小菜這里有兩個域名walidream.com和yagm.xin,正好可以用來演示。
cd /etc/nginx/conf.d
vim server1.conf
listen 80;
server_name walidream.com;
將server1.conf配置好后,修改同樣的key
vim server2.conf
listen 80;
server_name yagm.xin;
修改完成后
nginx -s stop -c /etc/nginx/nginx.conf #停止nginx服務
nginx -c /etc/nginx/nginx.conf #重啟nginx服務
在瀏覽器中輸入域名查看