共计 1639 个字符,预计需要花费 5 分钟才能阅读完成。
我们在配置一台服务器的时候,如果只运行一个站点,往往过于浪费资源。Nginx 和 Apache 都可以通过配置虚拟主机实现多站点。配置虚拟主机的方式主要有两种,一种是多个不同端口对应的多个虚拟主机站点,一种是同一端口对应多个不同域名的虚拟主机站点。这里我用 80 端口为例,在 Apache 配置多个不同域名虚拟主机。
试验环境:Windows+Apache (Linux+Apache 同理)
1、虚拟机需要用到 Rewrite,所以先编辑 Apache 的 conf 目录下的 httpd.conf 文件
掉 Rewrite 模块列行中前面的 #号(删除注释)。添加 mod_rewrite.so 模块支持。
LoadModule rewrite_module modules/mod_rewrite.so
同时,还要让主配置文件包含虚拟机配置文件:
找到 #Include conf/extra/httpd-vhosts.conf 这一行去掉前面的 #。
2、然后编辑 /conf/extra/httpd-vhosts.conf 文件:
(1)如果里面有默认的设置,删除里面默认设置的虚拟主机,我这里是以下这段代码:
<VirtualHost _default_:80>
DocumentRoot “/Apache24/htdocs”
#ServerName www.example.com:80
</VirtualHost>
(2)修改 NameVirtualHost 参数,要在本机的所有 IP 的 80 端口上面做多域名:NameVirtualHost *:80
(3)添加虚拟主机一:
<VirtualHost *:80>
#管理员邮箱
ServerAdmin xxx@163.com
#虚拟主机根目录
DocumentRoot “E:/www/linux/”
#虚拟主机名
ServerName www.linuxidc.net
#虚拟主机别名
ServerAlias linuxidc.net
#日志路径
ErrorLog “logs/linux-error.log”
CustomLog “logs/linux-access.log” common
RewriteEngine on
</VirtualHost>
(4)添加虚拟主机二:
<VirtualHost *:80>
#管理员邮箱
ServerAdmin xxx@163.com
#虚拟主机根目录
DocumentRoot “E:/www/linuxidc/”
#虚拟主机名
ServerName www.linuxidc.com
#虚拟主机别名
ServerAlias linuxidc.com
#日志路径
ErrorLog “logs/linuxidc-error.log”
CustomLog “logs/linuxidc-access.log” common
RewriteEngine on
</VirtualHost>
(5)保存退出
3、修改本地 hosts 文件:
在 windows 中,进入 C:/Windows/System32/drivers/etc (在 linux 环境中应该是在 /etc/hosts)
打开 host 文件,在最后面添加下面两行:
127.0.0.1 www.linuxidc.net
127.0.0.1 www.linuxidc.com
保存退出
4、重启服务器。
在你两个虚拟机的根目录下新建一些测试文件,比如在”E/www/linux/”目录新建个 test.html,在目录 ”E:/www/linuxidc/” 页新建个 test.html,写上对应的测试代码,在浏览器里输入 www.linuxidc.net/test.html 和 www.linuxidc.com/test.html 查看结果。
本文永久更新链接地址 :http://www.linuxidc.com/Linux/2017-11/148536.htm