此问题可以基于WebServer 的ServerName 机制解决,即“虚拟主机”技术来解决这个问题,它可以实现一台服务器运行多个网站,且多个网站共用一个公网IP,访问时不同域名共用一个IP,访问不同的网站,大大节省了开销。举例如下: Linux 项目实战之基于域名的虚拟主机:
前提条件:linux 服务器安装了httpd 服务 #yum -y install httpd* 实验需求:
当用户访问www.aaa.com的时候访问aaa网站
当用户访问www.bbb.com的时候访问bbb网站
当用户访问www.ccc.com的时候访问ccc网站
步骤:
(1) 配置客户端hosts文件(以win7为例)
192.168.1.112 www.aaa.com
192.168.1.112 www.bbb.com
192.168.1.112 www.ccc.com
若客户端为Linux则修改/etc/hosts配置文件.
(2)建立网站存放路径(Linux服务器端)
mkdir -p /data/web/{aaa,bbb,ccc} //分别创建对应网站的存放的目录
vim /data/web/aaa/index.html //创建并编辑测试网页
<html> <head> <title>This is a test Page!!! </title> <body> <h1>This www.aaa.com test Page!! </h1> </body> </head> </html>
#vim /data/web/bbb/index.html //创建并编辑测试网页 <html> <head> <title>This is a test Page!!! </title> <body>
<h1>This www.bbb.com test Page!! </h1>
</body> </head> </html>
#vim /data/web/ccc/index.html //创建并编辑测试网页 <html> <head> <title>This is a test Page!!! </title> <body>
<h1>This www.ccc.com test Page!! </h1>
</body> </head> </html>
(3)修改Apache的httpd主配置文件/etc/httpd/conf/httpd.conf中的子配置文件目录/etc/httpd/conf.d/
[root@localhost ~]# vim /etc/httpd/conf.d/virt.conf //创建并编辑virt.conf子配置文件
可以拷贝/etc/httpd/conf/httpd.conf 这个模版
NameVirtualHost *:80 //虚拟主机开关——必写
<VirtualHost *:80>
DocumentRoot /var/www/html
ServerName www.aaa.com //对虚拟主机”www.aaa.com”配置
ErrorLog logs/aaa.com-error_log
CustomLog logs/aaa.com-access_log common
</VirtualHost>
<VirtualHost *:80>
DocumentRoot /data/web/bbb
ServerName www.bbb.com//对虚拟主机”www.bbb.com”配置
ErrorLog logs/bbb.com-error_log
CustomLog logs/bbb.com-access_log common
</VirtualHost>
<VirtualHost *:80>
DocumentRoot /data/web/ccc
ServerName www.ccc.com//对虚拟主机”www.ccc.com”配置
ErrorLog logs/ccc.com-error_log
CustomLog logs/ccc.com-access_log common
</VirtualHost>
(4)启动服务
[root@localhost ~]# service httpd restart
*注:应用虚拟主机技术后,默认站点不生效,若想让默认站点生效,需将其添加到/etc/httpd/conf.d/virt.conf中
(5)客户端测试
http://www.aaa.com http://www.bbb.com http://www.ccc.com
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。