nginx 预防单点故障

作者:杨润炜
日期:2016/2/23 14:33

通常情况我们需要密切关注网站服务的可持续访问,并且会采取一些宕机提醒及预防措施。下面我们通过配置nginx来实现预防网站服务单点故障的方法。

预防单点故障

我们的web服务通常运行在一台主服务器,由它来为用户的日常访问提供服务。如果这台web服务器宕机了,那么我们的所有业务服务将停止,这将对我们的利益带来很大的损失。如果在宕机时,有一个程序能把用户的访问转发到另外一台应急服务器上,那我们的服务将持续下去,而且在我们维护主服务器时能够不间断地提供服务。nginx就可以做到。下面我们来看看如何配置。

  1. upstream serverUpstream{
  2. server 10.252.131.148:3100;
  3. server 10.173.163.241:3100 backup;
  4. keepalive 8;
  5. }
  6. server {
  7. ...
  8. location ~ ^/ {
  9. limit_req zone=allips burst=4;
  10. proxy_set_header Host $host;
  11. proxy_set_header X-Real-IP $remote_addr;
  12. proxy_headers_hash_max_size 1024;
  13. proxy_headers_hash_bucket_size 128;
  14. proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
  15. proxy_set_header Accept-Encoding "";
  16. proxy_pass http://serverUpstream;
  17. proxy_http_version 1.1;
  18. proxy_set_header Connection "";
  19. }
  20. }

serverUpstream中包含了两个ip地址,第一个是主服务器的地址,第二个是应急服务器的地址,并带上backup标记,表示主服务器无法工作时,就用backup服务器。

这样,nginx就帮我们做好单点故障的预防咯。还有需要注意的就是主服务器和应急服务器的代码同步,发布新版本时需要发布到这两个机器上去。再者,如果我们在服务器宕机时做个提醒,然后工程师们进行及时维修,nginx同时解决单点故障,这样项目就不会因为宕机而受到太大的影响。

感谢您的阅读!
如果看完后有任何疑问,欢迎拍砖。
欢迎转载,转载请注明出处:http://www.yangrunwei.com/a/30.html
邮箱:glowrypauky@gmail.com
QQ: 892413924