Apache下配置虚拟主机后,主机却不能访问了
Apache下配置了基于名称的虚拟主机后,不管用IP地址还是主机的名字都只能访问第一个虚拟主机. :em13: :em14:
查了些资料,发现大多数是增加了一个跟主机名字一样的虚拟主机配置来解决的,因为我在主机的配置中,有ssl以及php的相关配置,而在虚拟主机中没有.
配置了虚拟主机后,就只能用虚拟主机来访问apache了吗?
nemo 回复于:2004-06-21 09:10:54
又试了一下,如果用https://主机名或者用https://IP地址的话,出现apache默认的主页面
用https://虚拟主机名的话,访问的不是虚拟主机,而是跟上边用主机名访问的效果一样
五花小鱼 回复于:2004-06-21 09:28:21
请把你的配置文件贴出来!
twodog29 回复于:2004-06-21 09:32:25
我前两天刚配了一下虚拟主机(基于名称),和你说一下我的实验结果吧
如果有3个站点目录,WWW为默认站点,WWW1为虚拟主机1(在配置文件中第一个虚拟主机),WWW2为虚拟主机2
如果配置了虚拟主机,直接输入https://IP,访问到的是WWW1。如果是输入域名,则两个虚拟主机都可以访问(必须设置好DNS)
如果把虚拟主机的配置注释掉,输入https://IP则访问WWW默认站点。
nemo 回复于:2004-06-21 10:09:26
[quote:1a903a0fe7="twodog29"]我前两天刚配了一下虚拟主机(基于名称),和你说一下我的实验结果吧
如果有3个站点目录,WWW为默认站点,WWW1为虚拟主机1(在配置文件中第一个虚拟主机),WWW2为虚拟主机2
如果配置了虚拟主机,直接输入https://..........[/quote:1a903a0fe7]
没错,我现在就是这种情况
我想知道,不用https就不能访问www了吗??
twodog29 回复于:2004-06-21 14:01:07
等高手来解决吧
我想可能是一旦建立了虚拟主机WWW1和WWW2,就只能访问虚拟主机,默认站点WWW就不能访问了
如果的确需要访问WWW,你可以再设置一个虚拟主机啊,把WWW设置为虚拟主机的第一个
geel 回复于:2004-06-22 09:06:56
配置文件贴上来
nemo 回复于:2004-06-22 16:38:48
这是配置文件有关虚拟主机的部分
### Section 3: Virtual Hosts
NameVirtualHost 192.168.0.4
<IfDefine SSL>
AddType application/x-x509-ca-cert .crt
AddType application/x-pkcs7-crl .crl
</IfDefine>
<IfModule mod_ssl.c>
SSLPassPhraseDialog builtin
SSLSessionCache dbm:/usr/local/apache/logs/ssl_scache
SSLSessionCacheTimeout 300
SSLMutex file:/usr/local/apache/logs/ssl_mutex
SSLRandomSeed startup builtin
SSLRandomSeed connect builtin
SSLLog /usr/local/apache/logs/ssl_engine_log
SSLLogLevel info
</IfModule>
<IfDefine SSL>
<VirtualHost _default_:443>
DocumentRoot "/usr/local/apache/htdocs"
ServerName nemo.test.com
ServerAdmin root@localhost
ErrorLog /usr/local/apache/logs/error_log
TransferLog /usr/local/apache/logs/access_log
SSLEngine on
SSLCipherSuite ALL:!ADH:!EXPORT56:RC4+RSA:+HIGH:+MEDIUM:+LOW:+SSLv2:+EXP:+eNULL
SSLCertificateFile /usr/local/apache/conf/ssl.crt/server.crt
SSLCertificateKeyFile /usr/local/apache/conf/ssl.key/server.key
<Files ~ "\.(cgi|shtml|phtml|php3?)$">
SSLOptions +StdEnvVars
</Files>
<Directory "/usr/local/apache/cgi-bin">
SSLOptions +StdEnvVars
</Directory>
SetEnvIf User-Agent ".*MSIE.*"
nokeepalive ssl-unclean-shutdown
downgrade-1.0 force-response-1.0
CustomLog /usr/local/apache/logs/ssl_request_log
"%t %h %{SSL_PROTOCOL}x %{SSL_CIPHER}x \"%r\" %b"
</VirtualHost>
</IfDefine>
<VirtualHost test1.test.com>
ServerAdmin root@localhost
DocumentRoot /usr/local/apache/htdocs/test1
ServerName test1.test.com
ErrorLog logs/test1-error_log
CustomLog logs/test1-access_log common
</VirtualHost>
<VirtualHost test2.test.com>
ServerAdmin root@localhost
DocumentRoot /usr/local/apache/htdocs/test2
ServerName test2.test.com
ErrorLog logs/test2-error_log
CustomLog logs/test2-access_log common
</VirtualHost>
geel 回复于:2004-06-23 00:13:49
<VirtualHost _default_:443>
改为
<VirtualHost _default_:*>
nemo 回复于:2004-06-23 08:42:27
一样啊 访问nemo.test.com还是只能用https的方式
用http的话,访问的还是第一个虚拟主机test1.test.com
geel 回复于:2004-06-23 15:27:05
那把80根443分开段写呢
nemo 回复于:2004-06-30 08:58:50
真的是配置了虚拟主机以后,主机就不能访问了吗??
geel 回复于:2004-06-30 09:13:30
把_default_:80段放在最后呢,或者干脆配一个main server
nemo 回复于:2004-06-30 15:39:21
那不是还相当于又配了一个虚拟主机,只不过主目录用的是主机的目录而已吗??
geel 回复于:2004-06-30 18:53:22
web服务器其实没有主机和虚拟主机的概念。当只有一个站点的时候,称之为主机,当运行多个站点的时候,所有站点都可以当做虚拟主机对待。
我的方法是配置一个主机头名为空的vhost来当作main server(default)
bend 回复于:2004-07-01 11:01:21
如果你设了虚拟主机,原来的apache的默认站点是看不到的,你也要给原来的默认站点设一个虚拟主机,而且用IP地址访问apache中的虚拟主机时,默认出现第一个虚拟主机。
nemo 回复于:2004-07-02 09:05:40
哦 这样 谢谢两位
我增加了一个这样的虚拟主机
<VirtualHost 192.168.0.4>
DocumentRoot /usr/local/apache/htdocs/
</VirtualHost>
hzbiz 回复于:2004-07-05 10:13:44
現在可以了嗎?
snssh 回复于:2004-07-06 00:52:04
hello
snssh 回复于:2004-07-06 00:52:41
hello
linuxsky 回复于:2004-07-06 08:23:04
这办法我一直是这样用的。
哈哈。。就是给自己的默认站点。设置成虚拟主机。。
cqf820 回复于:2005-06-08 14:36:01
:o :arrow: :P :!: :em11: [b:8f67dbcf2a][/b:8f67dbcf2a]