我有一个托管在Ubuntu上的活动站点,使用Nginx,站点是用Python编写的(CherryPy是服务器,Bottle是框架).
我有一个shell脚本,它复制我在现有的实时站点上传的python文件,然后当然导致CherryPy重新启动服务器,因此它运行最新的代码(我想要它).问题是,在它停止和启动之间,默认静态页面会显示给当时试图查看网站页面的任何不幸的人(希望他们不提交表单).我在更新时已经多次看过这个页面.
我当前的设置是两个端口上运行的两个副本,在两个端口上使用Nginx反向代理.所以我想如果我更新一个,等待几秒钟,然后更新另一个,那么该网站将在100%的时间内上升,但这似乎不是这样的情况?
假设我在端口8095和8096上有反向代理,两者都显示相同的站点,但在硬盘驱动器上显示两个相同的副本.我更新了端口8095的python文件,导致该端口在CherryPy重新启动时关闭.难道每个人都不应该打8096吗?它似乎不像这样工作.我的文件复制脚本有8秒延迟,根据CherryPy日志,第2次停止重启,在第1次重启后6秒重启,但我看到服务器关闭时显示的默认静态离线页面.我糊涂了.根据日志,总有一个端口.
这是我的Nginx.conf的一部分:
upstream app_servers {
server 127.0.0.1:8095;
server 127.0.0.1:8096;
}
server {
server_name www.mydomain.com;
listen 80;
error_page 502 503 /offline/offline.html;
location /offline {
alias /usr/share/Nginx/html/mysite/1/views/;
}
location / {
proxy_pass http://app_servers;
proxy_redirect off;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Host $server_name;
proxy_set_header X-Scheme $scheme;
proxy_connect_timeout 10;
proxy_read_timeout 10;
}
}
解决方法:
试试这个:From the manual
upstream app_servers {
server 127.0.0.1:8095 max_fails=1 fail_timeout=1;
server 127.0.0.1:8096 max_fails=1 fail_timeout=1;;
}
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。