解决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部署Vue项目

    服务器使用Nginx部署Vue项目

    本文主要介绍了服务器使用Nginx部署Vue项目,文中通过示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2022-04-04
  • Nginx1.21.6生产环境升级步骤

    Nginx1.21.6生产环境升级步骤

    这篇文章主要介绍了Nginx1.21.6生产环境升级步骤,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2022-01-01
  • WinPC搭建nginx服务器的实现步骤

    WinPC搭建nginx服务器的实现步骤

    本文主要介绍了WinPC搭建nginx服务器的实现步骤,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2023-01-01
  • Windows下Nginx的启动停止重启等命令操作过程

    Windows下Nginx的启动停止重启等命令操作过程

    最近在window 上安装了nginx ,对nginx 的操作不是很熟,故在此记录一下常用操作,本文详细介绍了Windows下Nginx的启动,停止,重启等命令,需要的朋友可以参考下
    2024-03-03
  • Nginx之带宽限制的实现示例

    Nginx之带宽限制的实现示例

    本文主要介绍了Nginx之带宽限制的实现示例,一般使用limit_rate指令来限制响应传输到客户端的速率,具有一定的参考价值,感兴趣的可以了解一下
    2023-09-09
  • Nginx配置使用详解

    Nginx配置使用详解

    Nginx是一个高性能的HTTP和反向代理web服务器。本文详细讲解了Nginx配置使用的方法,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2022-06-06
  • 如何利用nginx通过正则拦截指定url请求详解

    如何利用nginx通过正则拦截指定url请求详解

    这篇文章主要介绍了如何利用nginx通过正则拦截指定url请求的相关资料,文中通过示例代码介绍的非常详细,对大家学习或者使用nginx具有一定的参考学习价值,需要的朋友们下面来一起学习学习吧
    2020-05-05
  • Nginx为已安装nginx动态添加模块

    Nginx为已安装nginx动态添加模块

    本篇文章主要介绍了Nginx之为已安装nginx动态添加模块的方法,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2018-04-04
  • 超级详细的nginx负载均衡配置

    超级详细的nginx负载均衡配置

    所谓负载均衡就是就是把大量的请求按照我们指定的方式均衡的分配给集群中的每台服务器,从而不会产生集群中大量请求只请求某一台服务器,从而使该服务器宕机的情况,这篇文章主要给大家介绍了关于nginx负载均衡配置的相关资料,需要的朋友可以参考下
    2022-05-05
  • Nginx禁止国外IP访问我的网站的实现

    Nginx禁止国外IP访问我的网站的实现

    本文主要介绍了Nginx禁止国外IP访问我的网站的实现,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2023-07-07

最新评论