nginx的虚拟主机配置
什么是虚拟主机?
虚拟主机是一种特殊的软硬件技术,它可以将网络上的每一台计算机分成多个虚拟主机,每个虚拟主机可以独立对外提供www服务,这样就可以实现一台主机对外提供多个web服务,每个虚拟主机之间是独立的,互不影响。
nginx可以实现虚拟主机的配置,nginx支持三种类型的虚拟主机配置。
1、基于域名的虚拟主机 (server_name来区分虚拟主机——应用:外部网站)
2、基于ip的虚拟主机, (一台主机绑定多个ip地址)
3、基于端口的虚拟主机 (端口来区分虚拟主机——应用:公司内部网站,外部网站的管理后台)
环境初始化需要:
关闭selinux和防火墙
[root@localhost ~]# setenforce 0
[root@localhost ~]# sed -i '/SELINUX/s/enforcing/disabled/' /etc/selinux/config
[root@localhost ~]# systemctl stop firewalld
[root@localhost ~]# systemctl disable firewalld
一、 基于端口的虚拟主机
1、在nginx的配置文件下,添加如下内容
#由于这里nginx是yum安装的,所以是在主配置文件nginx.conf下所包含的子配置文件中编辑的
该实验主配置文件nginx.conf下不需要配置,在子配置文件default.conf配置即可
[root@localhost ~]# vim /etc/nginx/conf.d/default.conf
server {
listen 80;
server_name localhost;
location / {
root /usr/share/nginx/html;
index www.html index.htm;
}
}
server {
listen 90;
server_name localhost;
location / {
root /usr/share/nginx/html;
index down.html index.htm;
}
}
server {
listen 100;
server_name localhost;
location / {
root /usr/share/nginx/html;
index doc.html index.htm;
}
}
2、进入到网站发布目录下,添加访问内容
[root@localhost ~]# cd /usr/share/nginx/html
[root@localhost html]# echo "www" >> www.html
[root@localhost html]# echo "down" >> down.html
[root@localhost html]# echo "doc" >> doc.html
[root@localhost html]# ls
50x.html doc.html down.html index.html www.html
3、重新加载配置文件:
[root@localhost html]# nginx -s reload
4、测试访问:
浏览器输入:http://10.11.67.79:80
浏览器输入:http://10.11.67.79:90
浏览器输入:http://10.11.67.79:100
若能成功访问,则配置成功
二、基于ip的虚拟主机
添加三块网卡,这里三块网卡IP分别为:
10.11.67.79
10.11.67.97
10.11.67.98
[root@localhost ~]# 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
inet6 ::1/128 scope host
valid_lft forever preferred_lft forever
2: ens33: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP qlen 1000
link/ether 00:0c:29:b8:21:4c brd ff:ff:ff:ff:ff:ff
inet 10.11.67.79/24 brd 10.11.67.255 scope global ens33
valid_lft forever preferred_lft forever
inet6 fe80::7587:3efd:547:b744/64 scope link
valid_lft forever preferred_lft forever
3: ens36: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP qlen 1000
link/ether 00:0c:29:b8:21:60 brd ff:ff:ff:ff:ff:ff
inet 10.11.67.97/24 brd 10.11.67.255 scope global dynamic ens36
valid_lft 593sec preferred_lft 593sec
inet6 fe80::cacf:217d:24d:4866/64 scope link
valid_lft forever preferred_lft forever
4: ens37: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP qlen 1000
link/ether 00:0c:29:b8:21:56 brd ff:ff:ff:ff:ff:ff
inet 10.11.67.98/24 brd 10.11.67.255 scope global dynamic ens37
valid_lft 593sec preferred_lft 593sec
inet6 fe80::dbf0:f59c:e0a:c73b/64 scope link
valid_lft forever preferred_lft forever
2、配置通过ip区分的虚拟机
[root@localhost ~]# vim /etc/nginx/conf.d/default.conf
server {
listen 10.11.67.79:80;
server_name localhost;
location / {
root /usr/share/nginx/html;
index www.html index.htm;
}
}
server {
listen 10.11.67.97:80;
server_name localhost;
location / {
root /usr/share/nginx/html;
index down.html index.htm;
}
}
server {
listen 10.11.67.98:80;
server_name localhost;
location / {
root /usr/share/nginx/html;
index doc.html index.htm;
}
}
3、进入到网站发布目录下,添加访问内容
第一个实验已添加,无需再添加
4、重新加载配置文件
[root@localhost ~]#nginx -s reload
5、测试访问
浏览器输入:http://10.11.67.79
浏览器输入:http://10.11.67.97
浏览器输入:http://10.11.67.98
若能成功访问,则配置成功
三、 基于域名的虚拟主机
三个域名分别为:
www.linux1.com
down.linux1.com
doc.linux1.com
1、配置通过域名区分的虚拟机
[root@localhost ~]# vim /etc/nginx/conf.d/default.conf
server {
listen 80;
server_name www.linux1.com;
location / {
root /usr/share/nginx/html;
index www.html index.htm;
}
}
server {
listen 80;
server_name down.linux1.com;
location / {
root /usr/share/nginx/html;
index down.html index.htm;
}
}
server {
listen 80;
server_name doc.linux1.com;
location / {
root /usr/share/nginx/html;
index doc.html index.htm;
}
}
2、进入到网站发布目录下,添加访问内容
第一个实验已添加,无需再添加
3、重新加载配置文件
如果 yum 安装的执行
[root@nginx]# nginx -s reload
备注:如果编译安装的执行
[root@nginx]# /usr/local/nginx/sbin/nginx -s reload
4、客户端配置路由映射
windows系统都在 C:\Windows\System32\drivers\etc\hosts 文件中添加:
(linux在/etc/hosts下添加)
10.11.67.79 www.linux1.com down.linux1.com doc.linux1.com
5、 测试访问
浏览器输入:http://www.linux1.com
浏览器输入:http://down.linux1.com
浏览器输入:http://doc.linux1.com
若能成功访问,则配置成功