我有一个在 CentOS 8.2 上运行的 Apache 服务器,其套接字由 systemd 套接字激活管理。但我不希望它在默认端口 80 上进行监听,因为我想在此端口上使用 Nginx 运行反向代理。这是当前的 systemd 套接字配置:
root@server6:~# systemctl status httpd.socket
● httpd.socket - Apache httpd Server Socket
Loaded: loaded (/usr/lib/systemd/system/httpd.socket; enabled; vendor preset: disabled)
Drop-In: /etc/systemd/system/httpd.socket.d
└─20-redir8016.conf, 30-listen8017ssl.conf, override.conf
Active: active (running) since Fri 2020-11-20 14:45:13 UTC; 1 weeks 0 days ago
Docs: man:httpd.socket(8)
Listen: [::]:80 (Stream)
[::]:8001 (Stream)
[::]:8002 (Stream)
[::]:8003 (Stream)
Tasks: 0 (limit: 820374)
Memory: 0B
CGroup: /system.slice/httpd.socket
如您所见,端口 80 已启用。这是默认设置。其他端口是故意添加的。的手册页httpd.socket(8)
仅描述如何添加另一个端口,而不是如何删除默认端口。.80 端口没有在任何配置文件中配置/etc/httpd
。
如何在此处停用端口 80?默认配置存储在哪里?
您可以使用以下命令列出 systemd 用于套接字的文件:
在我的系统上显示(删除了一些行以保持简短):
您可以看到(在我的系统上)使用了 2 个命名文件来侦听端口 80 和 443。您可以使用它
sudo systemctl edit httpd.socket
来添加更多配置。要真正取消现有配置,您需要使用标准的 systemd 方法为关键字输入一个空值,即在这种情况下为:ListenStream=
,后跟任何想要的附加值:man systemd.syntax
(或man systemd.unit
旧版本)说