这小节小菜将记录三种虚拟主机的配置,第一种是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

在该目录下面我们建两个文件夹server1server2,在文件建里面分别建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.confserver2.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服务

因为我们之前配置了两个应用server1server2,所以这里我们只修改端口号就可以了。然后在阿里云安全组设置允许9000端口通过就可以了。

ssl ssl ssl

3.多域名配置

多端口配置虚拟主机配置完成,最后来配置多域名。自己去阿里云域名购买域名(域名是要备案的),小菜这里有两个域名walidream.comyagm.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服务

在浏览器中输入域名查看

nginx教程

nginx环境搭建(1) nginx基础知识(2) nginx的安装 卸载(3) nginx的基本参数使用(4) nginx分析默认配置(5) nginx 虚拟主机配置(6) nginx 日志(7) nginx 模块(8) nginx 访问控制(9) nginx 静态资源web服务(10) nginx 缓存(11) nginx 跨域访问(12) nginx 防盗链(13) nginx 正向,反向代理配置(14) nginx 代理缓存配置(15) nginx websocket(16) nginx fastcgi(17) nginx 搭建wordPress博客(18) nginx Fastcgi缓存配置(19) nginx uwsgi反向代理(20) nginx 负载均衡(21) [深] nginx 动静分离(22) [深] nginx rewrite规则(23) [深] nginx 平滑升级 添加模块 调试(24) [深] nginx secure_link_module模块(25) [深] nginx geoip_module模块(26) [深] nginx https(27) [深] nginx与lua的开发(28) [架] nginx常见问题(29) [架] nginx性能优化(30) [架] nginx 安全(31) [架] nginx 反向代理gRpc(32)