![Apache 处理 127.*.*.*:80,而不仅仅是 127.0.0.1:80](https://linux22.com/image/740444/Apache%20%E5%A4%84%E7%90%86%20127.*.*.*%3A80%EF%BC%8C%E8%80%8C%E4%B8%8D%E4%BB%85%E4%BB%85%E6%98%AF%20127.0.0.1%3A80.png)
我希望 Apache 仅处理对 127.0.0.1 的请求,以便我可以将 127.0.0.2 等用于其他应用程序,因此我尝试将 /etc/apache2/sites-enabled/000-default.conf 更改为
<VirtualHost 127.0.0.1:80>
ServerName localhost
ServerAdmin webmaster@localhost
DocumentRoot /var/www/html
ErrorLog ${APACHE_LOG_DIR}/error.log
CustomLog ${APACHE_LOG_DIR}/access.log combined
</VirtualHost>
然后我重启了 Apache,但是没有用。没有其他 vhost 规则,输出apachectl -S
如下:
AH00558: apache2: Could not reliably determine the server's fully qualified domain name, using 127.0.1.1. Set the 'ServerName' directive globally to suppress this message
VirtualHost configuration:
127.0.0.1:80 localhost (/etc/apache2/sites-enabled/000-default.conf:1)
ServerRoot: "/etc/apache2"
Main DocumentRoot: "/var/www/html"
Main ErrorLog: "/var/log/apache2/error.log"
Mutex mpm-accept: using_defaults
Mutex watchdog-callback: using_defaults
Mutex default: dir="/var/run/apache2/" mechanism=default
PidFile: "/var/run/apache2/apache2.pid"
Define: DUMP_VHOSTS
Define: DUMP_RUN_CFG
User: name="www-data" id=33 not_used
Group: name="www-data" id=33 not_used
答案1
这Listen
指令用于配置 Apache httpd 应该绑定到哪些地址/端口组合(或听如果你愿意的话,可以开启它。
当只指定一个端口(没有地址)时,这意味着将所有地址绑定到指定的端口。
这VirtualHost
另一方面,指令是如何响应请求的配置的一部分(例如提供什么内容等)。
在此上下文中指定的地址/端口用于选择 Apache httpd 应该尝试使用此地址/端口来处理哪些传入请求VirtualHost
。
如果您只希望 Apache httpd 仅绑定到127.0.0.1:80
,您可以执行如下操作作为您的唯一Listen
指令:
Listen 127.0.0.1:80