NGINX 是许多网站和组织使用的强大 Web 服务器。但是,有时可能会发生您已配置 NGINX 服务器但无法从外部公共 IP 或外部框访问您的网站的情况。这是新系统管理员面临的常见问题。在本文中,我们将学习如何解决无法从外部访问 NGINX 的问题。
如果您无法从外部访问 NGINX,请执行以下步骤。
1. 更新 server_name
server_name 指令是 NGINX 服务器响应的域和子域的名称。如果您为其值输入 IP 地址,那么您将无法访问 NGINX。这是错误配置的示例。
服务器名称 54.54.32.21;
这是正确配置的示例。在这种情况下,您的 NGINX 服务器将处理发送到 www.example.com 的请求。
server_name www.example.com;
基本上你需要使用一个或多个域名/子域名,而不是 IP 地址。例如,如果您希望同一服务器到服务器对 www.example.com 和 blog.example.com 的请求,您可以更新 server_name 指令,如下所示。
server_name www.example.com blog.example.com
如果要为所有域和子域提供服务,请更新 server_name,如图所示。
服务器名称 _;
但是在进行上述更改之前请小心,因为您不希望您的服务器不必要地为所有域和子域提供服务。
2. 更新 /etc/hosts
如果上述步骤对您不起作用,请在文本编辑器中打开 /etc/hosts 文件。
$ sudo vi /etc/hosts
添加您的 NGINX 服务器的公共 IP 地址以及您的域名。
54.54.32.21 www.example.com
保存并关闭文件。
3.更新防火墙
如果上述步骤对您不起作用,则可能是您的防火墙阻止了外部入站流量。在这种情况下,只需运行以下命令即可禁用防火墙。
$ sudo ufw 禁用
禁用防火墙后,检查您的网站是否可以访问。如果是这样,那么您需要重新启用我们的防火墙,但打开端口 80 或其他运行 NGINX 服务器的端口。
如果您甚至无法从本地计算机访问 NGINX,那么很可能另一个进程正在 NGINX 所需的端口上运行。在这种情况下,更新“listen”指令中提到的端口号以在不同的端口上运行 NGINX。如果你发现它正在工作,然后使用 netstat 命令找出运行在 NGINX 所需的端口 80 上的进程。
$ sudo netstat -tulpn
你适合学Java吗?4大专业测评方法
代码逻辑 吸收能力 技术学习能力 综合素质
先测评确定适合在学习