获取全套nginx教程,请访问瓦力博客
这小节小菜将记录三种虚拟主机的配置,第一种是nginx虚拟主机单网卡多IP配置
,第二种是nginx虚拟主机基于多端口配置
,第三种是nginx虚拟主机基于多域名配置
来实现
小菜将一一举例,企业中长用到的还是后两种方法。
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
。创建好后路径视图
/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
是本地回环网卡,一个是物理网卡。从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上监听不同的端口号,我们来直接修改端口号
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服务
在浏览器中输入域名查看