经过一些服务器强化,并安装 NGINX(不修改配置)后,我不知何故无法再从外部访问 nginx。
遗憾的是,我根本不是这些方面的专家。强化是通过各种手册/教程完成的(设置 ufw、ssh 强化等)。
在本地机器上,我似乎没有遇到设置 NGINX 和在本地运行它的任何问题 - 所以我猜这与强化有关。
在阅读了一些类似的问题、尝试了不同的解决方案等之后,我仍然处于开始阶段:调用服务器(通过域或 IP)导致等待大约 1 分钟后出现“页面不可用”的情况。
我该如何分析问题?需要哪些信息才能找到瓶颈?(如果是 ufw、nginx,等等?)目标是最终看到“欢迎使用 nginx”页面。我是否需要某个 ARP 条目才能通过外部 IP 访问?
如果您能告诉我要执行哪些命令,我会在下面添加信息。
编辑:这似乎是 ufw 的问题。删除“拒绝任何”后,nginx 似乎可以访问(我想我已经尝试过了,但显然第一次没有成功)——现在的问题是,NGINX 需要哪个端口被阻止了?端口 80 是开放的,NGINX 是否需要另一个端口才能工作?(因为我想关闭不需要的 IN 端口)
我尝试过的事情:
/var/log/nginx/access.log
并且/var/log/nginx/error.log
均无条目
-
# lsof -i:80
COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME
nginx 11512 root 7u IPv4 3215792 0t0 TCP *:http (LISTEN)
nginx 11513 www-data 7u IPv4 3215792 0t0 TCP *:http (LISTEN)
nginx 11514 www-data 7u IPv4 3215792 0t0 TCP *:http (LISTEN)
nginx 11515 www-data 7u IPv4 3215792 0t0 TCP *:http (LISTEN)
nginx 11516 www-data 7u IPv4 3215792 0t0 TCP *:http (LISTEN)
-
# ufw status
Status: active
To Action From
-- ------ ----
3456 LIMIT Anywhere
80 ALLOW Anywhere
443 ALLOW Anywhere
Anywhere DENY Anywhere
3456 ALLOW Anywhere (v6)
80 ALLOW Anywhere (v6)
443 ALLOW Anywhere (v6)
Anywhere (v6) DENY Anywhere (v6)
53 ALLOW OUT Anywhere
80 ALLOW OUT Anywhere
123 ALLOW OUT Anywhere
443 ALLOW OUT Anywhere
Anywhere DENY OUT Anywhere
53 ALLOW OUT Anywhere (v6)
80 ALLOW OUT Anywhere (v6)
123 ALLOW OUT Anywhere (v6)
443 ALLOW OUT Anywhere (v6)
Anywhere (v6) DENY OUT Anywhere (v6)
-
# netstat -ltnp
Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name
tcp 0 0 0.0.0.0:80 0.0.0.0:* LISTEN 11512/nginx
tcp 0 0 0.0.0.0:3456 0.0.0.0:* LISTEN 886/sshd
tcp 0 0 127.0.0.1:9000 0.0.0.0:* LISTEN 10909/php-fpm.conf)
答案1
ufw 是导致问题的原因。DENY IN TO ANY
导致问题的原因 - 我删除了规则并将其更改为UFW DEFAULT DENY
。 现在 NGINX 似乎可以访问(尽管如此,端口 80 之前始终是开放的)
即使我不确定有什么区别(?)