我有一个在AWS EC2实例上运行的lighttpd服务器。它可以在端口80(或任何其他端口,如果我在/etc/lighttpd/lighttpd.conf中更改server.port)上提供服务而没有任何问题。但是,当我在不同的端口(例如,8080)上提供备用文档根时,浏览器永远不能连接到服务器。
我的lighttpd.conf文件的相关部分:
server.port = 80
##
## Use IPv6?
##
server.use-ipv6 = "disable"
##
## bind to a specific IP
##
#server.bind = "localhost"
##
## Run as a different username/groupname.
## This requires root permissions during startup.
##
server.username = "lighttpd"
server.groupname = "lighttpd"
##
## enable core files.
##
#server.core-files = "disable"
##
## Document root
##
server.document-root = server_root + "/release"
$SERVER["socket"] == ":8080" {
server.document-root = server_root + "/dev"
}
完整档案here
根据server_root + "/dev"
工作的站点工作正常 - 我已经通过反转他们的端口分配进行测试,在这种情况下/ dev加载正常:80和/ release未找到。
我读过很多指南(例如here,official docs,here等)都无济于事。其中第一个提到可能存在防火墙冲突,但我不知道如何在EC2上解决这个问题,而且我可以设置server.port=8080
没有问题的事实使我认为这不是问题。
这两个文件夹都归我的lighttpd
用户所有,该用户在两个文件夹中都拥有完全权限。
在向<my address>:8080
发出请求时,我在日志文件中看不到任何注释。
哎呀,我现在可以回答我自己的问题了。
这确实是一个防火墙问题,但修复非常简单 - 转到console.aws.amazon.com(必要时登录),选择相关的安全组,并添加防火墙规则,允许该端口上的传入流量 - 如果您希望限制访问,则来自特定来源,或者从0.0.0.0/0进行通用访问。
只需配置防火墙,该防火墙将创建允许端口80上所有连接的防火墙规则。
sudo ufw允许80
添加规则后,尝试点击浏览器中的URL。