试图找出为什么我们的请求得到502 ProxyError
,特别是在我们的Python服务器上提供长时间运行的请求时。
我们的服务器位于CentOS上,我们使用httpd
代理Web请求,然后将其路由到运行WSGI REST应用程序(在端口8000上运行)的Tornado服务器。
通常,不超过一定时间的请求会成功,但是当请求超时时,我们会在完成后获得几个502 ProxyError
,并且我们的服务器无响应。我们在将应用程序部署到开发服务器时也看到了这种行为,开发服务器也以相同的方式使用httpd
。
我们httpd.conf
VirtualHost的配置为:
<VirtualHost *:80>
ServerName server_ip
ServerAlias server
ServerAdmin admin@server
DocumentRoot /var/www/
ErrorLog /var/www/log/error_log
LogLevel debug
# Reverse proxy
ProxyRequests off
ProxyPass /rest/ http://server_ip:8000/
# Rewrites
<Directory />
Order allow,deny
Allow from all
RewriteEngine On
#RewriteRule /rest/(.*) http://server_ip:8000/$1 [L,QSA]
</Directory>
</VirtualHost>
我也在服务器日志中看到这样的条目:
....[error] proxy: HTTP: disabled connection for (server_ip)
可能导致这种情况的原因是什么?我们应该在这里使用其他东西(不同的库或配置)吗?
我不确定我在这里提供的信息是否足够,所以如果还有其他有用的东西,请告诉我,我会尽快发布。非常感谢!
答案 0 :(得分:1)
试试这个
ProxyPass / rest / http:// server_ip:8000 / connectiontimeout = 5 timeout = 30
将超时更改为最适合您的方式。
的更多信息