我正在创建一个网站,它发送一个请求到另一个服务器,然后解析它,并返回响应。我使用python中的requests库来发送请求。我发送请求的代码如下:
external_server_url = 'https://external_server.com/'
response = self.requests_session.get(external_server_url,
headers={'user-agent': self._get_device_user_agent(),
'cache-control': 'max-age=0',
'sec-fetch-user': '?1',
'upgrade-insecure-requests': '1'})
return response.text架构是这样的:

但是requests库太慢了。我将nginx重定向与requests进行了比较,nginx重定向的速度要快得多。重定向的nginx代码如下:
server {
listen 8888 ssl;
rewrite ^/(.*)$ https://external_server.com/ redirect;
ssl_certificate /etc/letsencrypt/live/example.com/fullchain.pem; # managed by Certbot
ssl_certificate_key /etc/letsencrypt/live/example.com/privkey.pem; # managed by Certbot
include /etc/letsencrypt/options-ssl-nginx.conf; # managed by Certbot
ssl_dhparam /etc/letsencrypt/ssl-dhparams.pem; # managed by Certbot
}我想使用新的架构,nginx将请求发送到外部服务器,并将其提供给Django服务器。新的架构是这样的:

如何使用nginx服务器创建此体系结构?
发布于 2019-12-07 00:57:22
这里的罪魁祸首不是“请求”库,而是远程服务器,它没有关闭连接。还有一种可能是,response包含一些不符合标准的头文件,“请求”库不能正确地处理它们,也不能关闭自身的连接。
您可以将http协议从"1.1“降级为"1.0”(使用可禁用http保活功能),也可以在您的请求连接:close中添加header,从而要求远程服务器在服务请求后关闭连接(有效地禁用了保活功能)。
external_server_url = 'https://external_server.com/'
response = self.requests_session.get(
external_server_url,
headers={
'Connection': 'close',
'user-agent': self._get_device_user_agent(),
'cache-control': 'max-age=0',
'sec-fetch-user': '?1',
'upgrade-insecure-requests': '1'
}
)
return response.texthttps://stackoverflow.com/questions/59115221
复制相似问题