gpt4 book ai didi

同一台服务器上的 nginx 上游子域

转载 作者:行者123 更新时间:2023-12-02 02:55:46 25 4
gpt4 key购买 nike

我正在使用 Nginx 上游模块配置 Nginx 负载均衡,配置如下:

upstream load {
server loadapi.example.com;
server loadapi.anotherdomain.com down;
}

server {
listen 80;
server_name api.example.com;

location / {
proxy_pass http://load;
# proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
}
}

server {
listen 80;
server_name loadapi.example.com;
root /disk/projects/load/loadapi;
index index.html index.htm index.shtml index.php;
...
...
error_page 404 /404.html;
}

注意 api.example.comloadapi.example.com在同一台服务器上。 loadapi.anotherdomain.com被解析到提供相同服务的另一台服务器。
loadapi.anotherdomain.com 一切正常,它们在另一台服务器上。

但是当我使用 loadapi.example.com作为后端,Nginx 似乎无法正确处理它。我可以在 loadapi.example.com 上启动并运行我的服务.但它不适用于上游。(看起来 Nginx 无法正确解析子域名)。

有什么建议吗?提前谢谢。

最佳答案

nginx使用 Host header 来确定 server用于处理请求的 block 。

当请求通过 proxy_pass http://load;声明,Host header 设置为值 load默认情况下。

制作 nginx选择server包含 server_name loadapi.example.com; 的 block 声明,它要么需要是 default_server服务器,或包含名称 load在其server_name , 或设置 Host header 使用:

proxy_set_header Host loadapi.example.com;

当然,使用 upstream负载平衡意味着两台服务器接收到相同的 Host 值。 header ,并且都必须正确响应它。

this document更多。

关于同一台服务器上的 nginx 上游子域,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49526862/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com