我在 LightSail 上有一台 Ubuntu 机器,它使用 nginx 提供静态文件。
我想要一个子域,所以我添加了一个指向名为client.mydomain.com
.
我的 nginx 站点配置文件定义为
server {
listen 5000;
server_name client.mydomain.com;
location / {
root /home/ubuntu/client-data;
}
}
虽然我可以通过 http://[ip]/file.txt http://client.mydomain.com/file.txt访问客户端数据中的文件,但返回 301 Permanent Moved 错误。
为什么?是不是因为我已经有一个运行在 80 和 8080 端口的 nginx 站点。为什么子域不能使用 5000 的正确站点?
默认情况下,当使用 HTTP 或 HTTPS 时,您的客户端(Internet-Browser/Utility)将使用默认端口 80/443 连接到您的服务器。
否则,如果您使用,例如在您的情况下,即http://client.mydomain.com:5000/file.txt,您将按预期请求该文件,因为您在此处在端口 5000 上配置此服务器,该文件将是在存在的情况下提供服务。
如果您已经在端口 80 上定义了下面的默认 server_name 示例,示例:
在使用域名访问您的服务器时,它通常会连接到端口 80,然后使用 server_name 查找已配置的服务器块以验证它是否存在,否则,如果已配置,它将提供默认页面。
你的块解释说:
如果您想使用 client1.mydomain.com/myfile.txt 请求它:
将“监听”设置为端口 80。如果您随后连接到您的服务器,它将解析 server_name 指令。例如:
此外,如果出于某种原因您也想喜欢,请监听两个端口:
另请阅读:https ://nginx.org/en/docs/http/server_names.html
我们希望我们能帮助您,如果您想提高客户的最大数量,听错了 :-)