0
希望了解是否有任何方法可以迫使NGINX从它背后的一台特定服务器提供请求。从NGINX后面的特定服务器获取HTTP响应
我在查询NGINX服务器,我从两个不同的服务器得到响应。我可以通过查看响应中的“服务器”标题来说明这一点。一个服务器在提供数据方面一直比其他服务器慢。有什么方法可以让NGINX从更快的服务器提供内容?
即使你能指出我的方向 - 这将会有所帮助。
希望了解是否有任何方法可以迫使NGINX从它背后的一台特定服务器提供请求。从NGINX后面的特定服务器获取HTTP响应
我在查询NGINX服务器,我从两个不同的服务器得到响应。我可以通过查看响应中的“服务器”标题来说明这一点。一个服务器在提供数据方面一直比其他服务器慢。有什么方法可以让NGINX从更快的服务器提供内容?
即使你能指出我的方向 - 这将会有所帮助。
您可以通过多种方式做到这一点,您可以创建一个upstream pool并将请求传递给它,也可以通过location块来完成。 Nginx也提供一些load balancer strategies来帮助像你这样的情况。
使用上游:
upstream backend {
server 192.168.0.10; # Fast server
server 192.168.0.11; # Slow server
}
server {
listen 80;
server_name example.com;
location/{
proxy_pass http://backend;
}
}
使用位置块:
server {
listen 80;
server_name example.com;
location/{
proxy_pass http://192.168.0.10;
}
}
负载平衡策略
最少连接 - 使用服务器与所述至少活动会话:
upstream backend {
least_conn;
server 192.168.0.10; # Fast server
server 192.168.0.11; # Slow server
}
会话持久性 - 航线同一用户为每个请求相同的后端:
upstream backend {
ip_hash;
server 192.168.0.10; # Fast server
server 192.168.0.11; # Slow server
}
加权平衡 - 发送更多的请求比另外一个服务器:
upstream backend {
server 192.168.0.10 weight=3; # Fast server
server 192.168.0.11; # Slow server
}
这一战略将导致快速服务器为每个请求服务3个请求提供慢速服务器服务。
谢谢你的答案,但我试图从客户端做到这一点。我无法访问Nginx服务器本身。你会提出一些我可以查询Nginx的策略,这样我的请求就会被转发到更快的服务器上。我看到一些建议,发送空参数,使用没有缓存头等,但似乎没有工作。但是,是的..我正在尝试从客户端做到这一点。 –
仅从客户端就很难,因为平衡策略是在服务器端决定的,所以你很难做到。 – sjdaws