前言:本博客仅作记录学习使用,部分图片出自网络,如有侵犯您的权益,请联系删除
1、什么是虚拟主机
虚拟主机是一种特殊的软硬件技术,它可以将网络上的每一台计算机分成多个虚拟主机,每个虚拟主机可以独立对外提供www服务,这样就可以实现一台主机对外提供多个web服务,每个虚拟主机之间是独立的,互不影响。
nginx可以实现虚拟主机的配置,nginx支持三种类型的虚拟主机配置:
- 基于域名的虚拟主机 (server_name来区分虚拟主机——应用:外部网站)
- 基于ip的虚拟主机 (一块主机绑定多个ip地址)
- 基于端口的虚拟主机 (端口来区分虚拟主机——应用:公司内部网站,外部网站的管理后台)
2、基于域名的虚拟主机
(1)配置通过域名区分的虚拟机
[root@centos ~]# cat /etc/nginx/nginx.confworker_processes auto;worker_rlimit_nofile 102400;events {worker_connections 1024;}http {include mime.types;default_type application/octet-stream;sendfile on;keepalive_timeout 65;server {listen 80;server_name web.testpm.com; # 配置域名为web.testpm.comlocation / {root /var/www/nginx; # 根目录index index.html index.htm; # 文件}}server {listen 80;server_name web.1000phone.com; # 配置域名为web.1000phone.comlocation / {root /1000phone/html; # 网站展示文件根目录index index.html index.htm; # 展示文件}}}
(2)为配置的两个域名创建目录与index文件
[root@centos html]# cat /var/www/nginx/index.htmlThis is the index.html Home of domain web.testpm.com!\nweb.testpm.com![root@centos html]# cat /1000phone/html/index.htmlThis is the index.html Home of domain web.1000phone.com!\nweb.1000phone.com!
(3)重新加载配置文件
# 如果编译安装的执行[root@nginx]# /usr/local/nginx/sbin/nginx -s reload# 如果 yum 安装的执行[root@nginx]# nginx -s reload
(4)客户端配置路由映射
在 C:\Windows\System32\drivers\etc\hosts 文件中添加两行 | (linux:/etc/hosts)
# 主机IP 配置的域名10.0.0.2 web.testpm.com10.0.0.2 web.1000phone.com
(5)测试访问
浏览器分别输入http://web.testpm.com与http://web.1000phone.com
3、基于IP的虚拟主机
(1)为网卡新增一个IP地址
[root@centos ~]# ifconfigens33: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500inet 10.0.0.2 netmask 255.255.255.0 broadcast 10.0.0.255inet6 fe80::20c:29ff:fe39:6cf4 prefixlen 64 scopeid 0x20<link>ether 00:0c:29:39:6c:f4 txqueuelen 1000 (Ethernet)RX packets 99486 bytes 71872175 (68.5 MiB)RX errors 0 dropped 0 overruns 0 frame 0TX packets 74475 bytes 5417252 (5.1 MiB)TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0[root@centos ~]# ifconfig ens33:1 10.0.0.3/24[root@centos ~]# ifconfigens33: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500inet 10.0.0.2 netmask 255.255.255.0 broadcast 10.0.0.255inet6 fe80::20c:29ff:fe39:6cf4 prefixlen 64 scopeid 0x20<link>ether 00:0c:29:39:6c:f4 txqueuelen 1000 (Ethernet)RX packets 99522 bytes 71875437 (68.5 MiB)RX errors 0 dropped 0 overruns 0 frame 0TX packets 74505 bytes 5422160 (5.1 MiB)TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0ens33:1: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500inet 10.0.0.3 netmask 255.255.255.0 broadcast 10.0.0.255ether 00:0c:29:39:6c:f4 txqueuelen 1000 (Ethernet)
(2)配置通过IP区分的虚拟机
[root@centos ~]# cat /etc/nginx/nginx.conf...server {listen 10.0.0.2:80; # 修改网站监听IP为10.0.0.2:80server_name web.testpm.com;location / {root /var/www/nginx;index index.html index.htm;}}server {listen 10.0.0.3:80; # 修改此处server_name web.1000phone.com;location / {root /1000phone/html;index index.html index.htm;}}}
(3)重新加载配置文件
nginx -t && nginx -s reload
(4)客户端配置路由映射
# 主机IP 配置的域名10.0.0.2 web.testpm.com10.0.0.2 web.1000phone.com10.0.0.3 web.1000phone.com
(5)测试访问
4、基于端口的虚拟主机
(1)编辑配置文件并重新加载
[root@centos ~]# cat /etc/nginx/nginx.conf...server {listen 80; # 设置80端口server_name web.testpm.com;location / {root /var/www/nginx;index index.html index.htm;}}server {listen 8080; # 设置为8080端口server_name web.1000phone.com;location / {root /1000phone/html;index index.html index.htm;}}}[root@centos ~]# nginx -s reload
(2)测试访问
致谢
在此,我要对所有为知识共享做出贡献的个人和机构表示最深切的感谢。同时也感谢每一位花时间阅读这篇文章的读者,如果文章中有任何错误,欢迎留言指正。
学习永无止境,让我们共同进步!!