解决nginx 503 Service Temporarily Unavailable方法示例

 更新时间:2019年12月04日 11:36:32   作者:Jack2013tong  
这篇文章主要介绍了解决nginx 503 Service Temporarily Unavailable方法示例,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧

最近网站刷新后经常出现503 Service Temporarily Unavailable错误,有时有可以,联想到最近在nginx.conf里做了单ip访问次数限制,(limit_req_zone $binary_remote_addr zone=allips:20m rate=20r/s;) 把这个数量放大后在刷新发现问题解决。(还顺便把这个改大了 limit_req zone=allips burst=50 nodelay;   )为了证实该问题,反复改动该数量测试发现问题确实在这。这个数量设得太小有问题,通过fiddler发现web页面刷新一下,因为页面上引用的js,css,图片都算一个连接。所以单个页面刷新下就有可能刷爆这个限制,超过这个限制就会提示503 Service Temporarily Unavailable。

附上nginx.conf

#user nobody;
worker_processes 1;
#worker_rlimit_nofile 100000; 
#error_log logs/error.log;
#error_log logs/error.log notice;
#error_log logs/error.log info;
 
#pid    logs/nginx.pid;
 
events {
  worker_connections 1024;
}
 
http {
  include    mime.types;
  default_type application/octet-stream;
 
##cache##
 proxy_connect_timeout 5;
 proxy_read_timeout 60;
 proxy_send_timeout 5;
 proxy_buffer_size 16k;
 proxy_buffers 4 64k;
 proxy_busy_buffers_size 128k;
 proxy_temp_file_write_size 128k;
 proxy_temp_path /home/temp_dir;
 proxy_cache_path /usr/local/nginx/cache levels=1:2 keys_zone=cache_one:200m inactive=1d max_size=30g;
 ##end##
#limit per ip per second access times 10 
limit_req_zone $binary_remote_addr zone=allips:20m rate=20r/s;
 
  #log_format main '$remote_addr - $remote_user [$time_local] "$request" '
  #         '$status $body_bytes_sent "$http_referer" '
  #         '"$http_user_agent" "$http_x_forwarded_for"';
 
  #access_log logs/access.log main;
 
  sendfile    on;
  #tcp_nopush   on;
 
  #keepalive_timeout 0;
  keepalive_timeout 65;
 
  #gzip on;
upstream myweb80{
  ip_hash;
  server 192.168.3.105:80;
  server 192.168.3.103:80;
}
 
upstream myweb8080{
  ip_hash;
  server 192.168.3.222:10080;
  #server 192.168.3.103:8080;
 } 
upstream myweb10086{
  ip_hash;
  server 192.168.3.102:10086;
  server 192.168.3.108:10086;
 } 
upstream myweb443{
  ip_hash;
  server 192.168.3.105:443;
  server 192.168.3.103:443;
 } 
 
  # another virtual host using mix of IP-, name-, and port-based configuration
  #
  server {
    listen    80;
    allow  218.17.158.2;
allow 127.0.0.0/24;
allow 192.168.0.0/16;
allow 58.251.130.1;
allow 183.239.167.3;
allow 61.145.164.1;
deny  all;
server_name myweb.com;
    location / {
        proxy_pass http://myweb80;
proxy_set_header X-Real-IP $remote_addr;
limit_req zone=allips burst=50 nodelay;  
    }
  }
 
  server {
    listen    8080;
allow  218.17.158.2;
allow 127.0.0.0/24;
allow 192.168.0.0/16;
allow 58.251.130.1;
allow 183.239.167.3;
allow 61.145.164.1;
deny  all;
    location / {
        proxy_pass http://myweb8080;
proxy_set_header X-Real-IP $remote_addr;
limit_req zone=allips burst=50 nodelay;  
    }
  }
 
# HTTPS server
  #
  server {
    listen    10086 ssl;
    server_name localhost;
allow  218.17.158.2;
allow 127.0.0.0/24;
allow 192.168.0.0/16;
allow 58.251.130.1;
allow 183.239.167.3;
allow 61.145.164.1;
#deny  all;
    ssl_certificate   ssl/1_www.myweb.com_bundle.crt;
    ssl_certificate_key ssl/2_www.myweb.com.key;
 
  #  ssl_session_cache  shared:SSL:1m;
  #  ssl_session_timeout 5m;
 
  #  ssl_ciphers HIGH:!aNULL:!MD5;
  #  ssl_prefer_server_ciphers on;
 
    location / { 
   proxy_pass https:// myweb10086; 
   #roft html; 
   #index index.html index.htm; 
    } 
  }
 
  服务器{ 
    listen 443 ssl; 
    server_name localhost;
 
    ssl_certificate ssl / 1_www.myweb.com_bundle.crt; 
    ssl_certificate_key ssl / 2_www.myweb.com.key;
 
  #ssl_session_cache共享:SSL:1m; 
  #ssl_session_timeout 5m;
 
  #ssl_ciphers HIGH:!aNULL:!MD5; 
  #ssl_prefer_server_ciphers on;
 
    location / { 
   proxy_pass https:// myweb443; 
   #roft html; 
   #roft html; 
   #index index.html index.htm; 
    } 
  } 
}

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持脚本之家。

您可能感兴趣的文章:

相关文章

  • Nginx缓存在服务端 代理和客户端的区别深入探索

    Nginx缓存在服务端 代理和客户端的区别深入探索

    这篇文章主要介绍了Nginx缓存在服务端 代理和客户端的区别深入探索,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2023-10-10
  • nginx如何设置禁止访问PHP脚本

    nginx如何设置禁止访问PHP脚本

    禁止访问 PHP 脚本可以通过 Nginx 服务器配置中的多种方式来实现,这篇文章主要为大家整理了一些常见的方法,感兴趣的小伙伴可以参考下
    2023-09-09
  • Ubuntu 22.04.1 LTS 编译安装 nginx-1.22.1的配置过程

    Ubuntu 22.04.1 LTS 编译安装 nginx-1.22.1的配置过程

    Ubuntu安装Nginx有两种方式,一种是通过命令的方式,这种方式安装的Nginx版本低,之前漏扫扫出来Nginx版本低,需要升级所以现在用编译的方式安装版本高点的,本文介绍Ubuntu22.04.1 LTS编译安装nginx1.22.1的配置过程,本文给大家介绍的非常详细,需要的朋友参考下吧
    2024-01-01
  • 在Nginx服务器上配置Google反向代理的基本方法

    在Nginx服务器上配置Google反向代理的基本方法

    这篇文章主要介绍了在Nginx服务器上配置Google反向代理的基本方法,文中使用到了SSL来加密反向代理,需要的朋友可以参考下
    2015-12-12
  • Nginx开启一个参数就能让你的WEB性能提升3倍的方法

    Nginx开启一个参数就能让你的WEB性能提升3倍的方法

    这篇文章主要介绍了Nginx开启一个参数就能让你的WEB性能提升3倍的方法,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2019-03-03
  • 详解nginx高并发场景下的优化

    详解nginx高并发场景下的优化

    这篇文章主要介绍了详解nginx高并发场景下的优化,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2018-09-09
  • CentOS 7下编译安装Nginx 1.11.10教程

    CentOS 7下编译安装Nginx 1.11.10教程

    这篇文章主要介绍了在CentOS 7下编译安装Nginx 1.11.10的方法,文中给出了详细的安装步骤,相信对大家具有一定的参考价值,需要的朋友们下面来一起看看吧。
    2017-03-03
  • 解决Nginx 配置 proxy_pass 后 返回404问题

    解决Nginx 配置 proxy_pass 后 返回404问题

    这篇文章主要介绍了Nginx 配置 proxy_pass 后 返回404问题,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2021-01-01
  • nginx使用IPV6的相关配置项介绍

    nginx使用IPV6的相关配置项介绍

    这篇文章主要介绍了nginx使用IPV6的相关配置项介绍,首先查看编译参数是否编译了IPV6模块,然后介绍了监听IPV6的配置语法,需要的朋友可以参考下
    2014-07-07
  • Nginx+Keepalived实现双机主备的方法

    Nginx+Keepalived实现双机主备的方法

    这篇文章主要介绍了Nginx+Keepalived实现双机主备的方法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2020-03-03

最新评论