我目前正在从一台服务器迁移到另一台服务器。我目前正在设置我的 apache2。但是在旧服务器上我使用了几个子域。现在我想在新服务器上测试这些子域,但是 subdomain.xx.xx.xx.xx (subdomain.ip-address) 似乎不起作用。这是不可能的,还是只是我的配置错误?
我的配置
NameVirtualHost *:80
<VirtualHost *:80>
ServerAdmin webmaster@localhost
DocumentRoot /var/www/tld.com
<Directory>
Options FollowSymLinks
AllowOverride None
</Directory>
<Directory /var/www/tld.com>
Options -Indexes FollowSymLinks MultiViews
AllowOverride None
Order allow,deny
allow from all
# This directive allows us to have apache2's default start page
# in /apache2-default/, but still have / go to the right place
#RedirectMatch ^/$ /apache2-default/
</Directory>
ScriptAlias /cgi-bin/ /usr/lib/cgi-bin/
<Directory "/usr/lib/cgi-bin">
AllowOverride None
Options ExecCGI -MultiViews +SymLinksIfOwnerMatch
Order allow,deny
Allow from all
</Directory>
ErrorLog /var/log/apache2/error.log
# Possible values include: debug, info, notice, warn, error, crit,
# alert, emerg.
LogLevel warn
CustomLog /var/log/apache2/access.log combined
ServerSignature On
Alias /doc/ "/usr/share/doc/"
<Directory "/usr/share/doc/">
Options Indexes MultiViews FollowSymLinks
AllowOverride None
Order deny,allow
Deny from all
Allow from 127.0.0.0/255.0.0.0 ::1/128
</Directory>
</VirtualHost>
<VirtualHost *:80>
ServerAdmin webmaster@localhost
DocumentRoot /var/www/subdomain
ServerName subdomain.62.75.145.146
</VirtualHost>
答案1
- 确保您的子域名指向正确的 IP。
- 确保子域名在虚拟主机配置中列为主机,可以是服务器名称 (ServerName) 或服务器别名 (Server Alias)。
如果其中任何一个都不能解决问题,您将需要向我们提供更多信息 - 至少发布您的 apache vhost 配置。
--编辑-- 好的,首先,subdomain.62.75.145.146
不是有效的 DNS 名称。您不能将任意主机名添加到服务器的 IP 地址。您需要任何一个为该虚拟主机提供专用 IP或者分配一个有效的 DNS 名称。如果您只是进行测试,则只需在客户端的 hosts 文件中添加一个映射到subdomain.example.com
的条目即可62.75.145.146
。该行如下所示:
62.75.145.146 subdomain.example.com
然后subdomain.example.com
在 VirtualHost 中将其设置为 ServerName。此时,您应该能够subdomain.example.com
在浏览器中访问,并且它将从正确的虚拟主机提供服务。
如果 hosts 文件对您来说不是一个好的解决方案,您需要为子域创建适当的 DNSA
或CNAME
记录。执行此操作的过程超出了本问题的范围,但其他 ServerFault 文章中应该有大量关于该过程的信息。