如何关闭Apache对应子域名的443端口以部署Safari网页通知服务
解决步骤
- 第一步:确认443端口当前占用进程
执行以下命令查看绑定443端口的进程,确认是否确实为Apache:
如果输出中PID对应的进程是apache2/httpd,再继续排查Apache配置,否则需要处理对应占用端口的进程。ss -tulpn | grep :443 # 或者使用lsof lsof -i :443 - 第二步:修正Apache全局配置
注意:端口监听是系统级的进程资源,不存在「某个子域名占用443端口」的说法,只要Apache全局配置了Listen 443,无论你是否删除对应子域名的虚拟主机配置,整个443端口都会被Apache占用,其他服务无法绑定
查找所有Apache配置文件中的Listen 443指令:
如果你需要将443端口完全交给新服务使用,注释所有匹配到的# Debian/Ubuntu 系 grep -r "Listen 443" /etc/apache2/ # CentOS/RHEL 系 grep -r "Listen 443" /etc/httpd/Listen 443行;如果需要保留Apache其他域名的443站点,只能通过反向代理将目标子域名的请求转发到你新服务的本地其他端口,无法让两个进程同时监听443端口。 - 第三步:验证配置并重启Apache
先检查Apache配置语法是否正确,避免重启失败:
确认语法无误后重启Apache:# Debian/Ubuntu 系 apache2ctl configtest # CentOS/RHEL 系 httpd -t# Debian/Ubuntu 系 systemctl restart apache2 # CentOS/RHEL 系 systemctl restart httpd - 第四步:验证端口释放
再次执行第一步的端口查询命令,确认443端口已无Apache进程占用,再启动你需要部署的新服务即可。
若重启Apache后端口仍被占用,可先完全停止Apache再验证:
停止后443端口释放则说明还有未排查到的Apache监听配置,若停止后端口仍被占用,需要对应处理其他占用进程。# Debian/Ubuntu 系 systemctl stop apache2 # CentOS/RHEL 系 systemctl stop httpd
内容的提问来源于stack exchange,提问作者Fabrizio Bartolomucci
相关产品推荐
相关产品推荐

