![Debian 上的 apache + lighttpd,两者都应该使用 ssl,端口 443 已被使用](https://linux22.com/image/636582/Debian%20%E4%B8%8A%E7%9A%84%20apache%20%2B%20lighttpd%EF%BC%8C%E4%B8%A4%E8%80%85%E9%83%BD%E5%BA%94%E8%AF%A5%E4%BD%BF%E7%94%A8%20ssl%EF%BC%8C%E7%AB%AF%E5%8F%A3%20443%20%E5%B7%B2%E8%A2%AB%E4%BD%BF%E7%94%A8.png)
我在 Debian 7 中安装了 apache 和 lighttpd,apache 使用端口 80 而 lighttpd 使用端口 88,现在我为 apache 安装 ssl(443),当我尝试对 lighttpd 执行相同操作时,出现错误,因为 443 已被 apache 使用。
我怎样才能让两个 SSL 都工作?无需禁用 apache SSL。我只能为 lighttpd 使用另一个端口吗?是否有专门用于 https 的端口?我试过 445,但它不起作用。我还尝试创建文件夹 iptables(文件 rules.v4),但没有成功:
SERVER_IP="..."
iptables -A INPUT -p tcp -s 0/0 --sport 1024:65535 -d $SERVER_IP --dport 445 -m state --state NEW,ESTABLISHED -j ACCEPT
iptables -A OUTPUT -p tcp -s $SERVER_IP --sport 445 -d 0/0 --dport 1024:65535 -m state --state ESTABLISHED -j ACCEPT
这是我在 lighttpd 中添加的内容:
$SERVER["socket"] == "127.0.0.1:445" {
ssl.engine = "enable"
ssl.pemfile = "/etc/lighttpd/certs/bla.com/server.pem"
}
答案1
当然,您可以(并且必须)让 lighttpd 监听与 apache 监听的端口不同的端口。在任何给定时间,只有一个进程可以监听“IP:PORT”组合
通过使用
$SERVER["socket"] == "127.0.0.1:445"
您的 lighttpd 将只在本地主机上侦听端口 445,因此除非您执行某些 IPTABLES 目标地址转换,否则无法从网络访问。如果您需要 lighttpd 在外部可用,只需将其设置为
$SERVER["socket"] == ":445"
此外,一旦进程启动,请尝试通过运行确认它们正在按预期监听端口
$ sudo netstat -nlp | egrep -i "apache|httpd"