apache虚拟机配置方法
apache吧
全部回复
仅看楼主
level 1
chinaluyang 楼主
apache对于一个ip配置多个网站是得心应手的。
我经过摸索,一定要如下写法,
需求是:有一个有域名,有一个没有域名,而网上大多数例子是都有域名的,难度较小。如
NameVirtualHost 指令
说明 为一个基于域名的虚拟主机指定一个IP地址(和端口)
语法 NameVirtualHost addr[:port]
作用域 server config
状态 核心(C)
模块 core
另外,您还可以为您使用的基于域名的虚拟主机指定一个端口号。比如:
NameVirtualHost 111.22.33.44:8080
请注意,<VirtualHost>指令的参数必须与NameVirtualHost指令的参数完全匹配。
NameVirtualHost 1.2.3.4
<VirtualHost 1.2.3.4>
# ...
</VirtualHost>
IPv6地址必须封装在一对方括号内,如下例所示:
NameVirtualHost [2001:db8::a00:20ff:fea7:ccea]:8080
为了接受所有界面的请求,您可以使用"*":
NameVirtualHost *
---------------
应对我的需求的写法
NameVirtualHost 127.0.0.1:80
<VirtualHost 127.0.0.1:80>
ServerAdmin [email protected]
DocumentRoot /var/www/html/di
DirectoryIndex index.html
ServerName http://www.abcd.cn(有域名的目录)
ErrorLog logs/abcd.cn.err.log
CustomLog logs/abcd.cn.log common
</VirtualHost>
<VirtualHost 127.0.0.1:80>
ServerAdmin [email protected]
DocumentRoot /var/www/html/abc
DirectoryIndex login.php
ServerName 127.0.0.1 (这个目录没有对应域名,一定要写127.0.0.1而不能写真实ip,否则不能显示)
ErrorLog logs/abc.cn.err.log
CustomLog logs/abc.cn.log common
</VirtualHost>
NameVirtualHost 的写法一定要和<VirtualHost 127.0.0.1:80>完全一致
2014年12月02日 03点12分 1
level 12
如果来访问的 ServerName 没有符合任何自己所定义的时候,
则会用第一个所定义的 ServerName 的虚拟机配置来回应。
nginx 所定义的 server_name _; 的作法较明确,
但 apache 里好像 ServerName _default_; 不会生效。
实务上,对於只能访问80,443的用户而言,
基於多port的虚拟机,这样的配置是困扰。
2014年12月04日 00点12分 2
level 1
你好,你的追求正是我要的结果,请问下你有详细配置方法吗,因为我按照你的来不行,但理论上应该可以的,你可以告诉我方法吗?急求答案
2015年03月14日 15点03分 3
过了好久,都忘了,如果你按我的方法不行,就用nginx吧,我查apache的文档,根本没有一个有域名,一个没有域名的情况,是否行得通,真真要打个问号,我记得我当时也是换了一种方法回避了这个问题。好像是啊。
2015年03月16日 03点03分
level 12
@q63176347
我的实际配置是:
/etc/httpd/httpd.conf里:
没设ServerName
#ServerName http://www.example.com:80
这个是原来的没变:
DocumentRoot "/srv/http"
但在最后设以下这个,
把每个虚拟服务器各设成一个在下列的目录里:
NameVirtualHost *:80
Include conf/sites-enabled/
分别有这些文件配置:
0default.cn => ServerName default.cn
abc.cn => ServerName abc.cn
cde.cn => ServerName cde.cn
为什麼文档要前面设0
是因为dir或ls的时候,会作为读取为第一个配置,
假设用127.0.0.1或1.2.3.4来访问题时候,
因找不到对应的ServerName,
就会用第一个服务器的配置内容来做回应!
当然也可以把所有的这些配置档都写在同一个httpd.conf的文件里,
这时就是看哪一个是第一个ServerName,
来做为没有符合任何ServerName的访问时,来做回应。
2015年03月17日 05点03分 4
@q63176347 看看有没有解到你的问题。
2015年03月17日 05点03分
1