如何创建一个用于无域请求的 Apache 站点?

如何创建一个用于无域请求的 Apache 站点?

如何配置 Apache 站点,专门用于不包含域名的请求(即直接来自 IP,http://123.45.67.89/)?

这个答案建议创建一个虚拟主机,例如:

<VirtualHost *>
    DocumentRoot /www/default
    # ...
</VirtualHost>

但这在 Apache 2.4.18 上对我来说不起作用。

我还尝试指定default.conf没有定义 ServerName 的站点,例如:

<VirtualHost *:80>
        ServerAdmin webmaster@localhost
        DocumentRoot /var/www/html

        ErrorLog ${APACHE_LOG_DIR}/error.log
        CustomLog ${APACHE_LOG_DIR}/access.log combined

        Alias /log/ "/var/log/"
    <Directory "/var/log/">
           Options Indexes MultiViews FollowSymLinks
           AllowOverride None
           Order deny,allow
           Deny from all
           Allow from all
            Require all granted
    </Directory>
</VirtualHost>

但这也不起作用。对我的服务器 IP 的所有请求都超时,而服务器对域名主机的请求却立即响应。

查看我的 apache error.log,我看到大量类似的行:

[Sun Oct 29 21:13:13.843598 2017] [core:notice] [pid 5650:tid 139875504514944] AH00051: child pid 23179 exit signal Segmentation fault (11), possible coredump in /etc/apache2
[Sun Oct 29 21:13:13.843609 2017] [core:error] [pid 5650:tid 139875504514944] AH00546: no record of generation 0 of exiting child 23179
[Sun Oct 29 21:13:14.845641 2017] [core:notice] [pid 5650:tid 139875504514944] AH00051: child pid 23183 exit signal Segmentation fault (11), possible coredump in /etc/apache2
[Sun Oct 29 21:13:14.845704 2017] [core:error] [pid 5650:tid 139875504514944] AH00546: no record of generation 0 of exiting child 23183
[Sun Oct 29 21:13:14.845733 2017] [core:notice] [pid 5650:tid 139875504514944] AH00051: child pid 23184 exit signal Segmentation fault (11), possible coredump in /etc/apache2
[Sun Oct 29 21:13:14.845746 2017] [core:error] [pid 5650:tid 139875504514944] AH00546: no record of generation 0 of exiting child 23184
[Sun Oct 29 21:13:14.845770 2017] [core:notice] [pid 5650:tid 139875504514944] AH00051: child pid 23185 exit signal Segmentation fault (11), possible coredump in /etc/apache2
[Sun Oct 29 21:13:14.845783 2017] [core:error] [pid 5650:tid 139875504514944] AH00546: no record of generation 0 of exiting child 23185

我猜这不太好?什么会导致 Apache 出现段错误?

答案1

问题原来是 Apache 可以同时运行的 ModWSGI 站点数量的错误/限制。我有大约 20 个 WSGI 站点运行 Django 应用程序,显然这导致 Apache 崩溃并关闭了我试图测试的“简单”站点。

因此,我的上述示例实际上都有效,但我必须首先删除几个 WSGI 站点以防止 Apache 崩溃。

答案2

我相信 Apache 使用目录中 *.conf 文件的字母顺序sites-enabled。因此,如果我在服务器上有一些网站:

example.org.conf
example.org-ssl.conf
another-domain.conf
another-domain-ssl.conf

并且我想使用 example.org 作为“默认”站点,您可以创建一个指向您想要的站点的符号链接,并使用类似的名称000-default.conf(Debian 就是这样做的)。

000-default.conf -> example.org.conf

相关内容