总结403到504的常用问题

################ 总结 403 Forbidden ##############
1. nginx配置文件里不配置默认首页参数或者首页文件在站点目录下没有
   譬如:没有配置 index index.php index.html index.htm;

2. 站点目录或内部的程序文件没有Nginx用户访问权限
   譬如: chmod 700 index.php 或者 chmod 700 db2  无法读取文件

3. Nginx配置文件中设置allow、deny等权限控制,导致客户端没有没权限访问,即屏蔽某个ip访问.
   譬如:在server中
         allow 192.168.1.0/24;
         deny all;

################ 总结 502 Bad Gateway ##############
1. 502错误一般不是nginx错误,一般是后端有问题。nginx背锅了。
2. 后端主机宕机,error timeout
3. PHP FastCGI进程数不够用,如果接近预设的进程数就不够用.(netstat -anpo | grep "php-fpm" | wc -l)
4. 部分PHP程序的执行时间超过了Nginx的等待时间.(适当修改nginx.conf中的fastcgi的timeout时间),譬如:fastcgi_connect_timeout 300;  fastcgi_send_timeout 300;  fastcgi_read_timeout 300。。。。
5. PHP的内存是否不足(譬如修改了php.ini的memory_limit为64M)
6. 调整php-fpm.conf参数:max_children最多10个进程,按照每个进程20MB内存,最多200MB。request_terminate_timeout执行的时间为60秒,也就是1分钟。
7. mysql有瓶颈

################ 总结 503 ##############
1. 服务不可用
2. 出现503错误多半是因为网站访问量大,造成了流量超限或者并发数大引起的资源超限出现的错误。
3. 如果网站程序没有问题,可能空间有过多的限制造成了系统资源不足引起的错误,可以考虑换空间了。
4. 如果空间没有问题,那么就要仔细检查网站程序是否有死循环或者内存泄露等问题。
5.

nginx里的访问限制:
  limit_conn_zone $binary_remote_addr zone=addr:5m;
  limit_conn addr 800;
  参数$binary_remote_addr:表示以客户端ip作为键值来进行限制
  参数zone=addr:5m:表示生成一个大小为5M,名字为addr的存储区域,用来存储访问次数
  参数addr 800:表示在addr存储区内,限制客户端ip只能访问800次,若超过访问限制,则返回503错误。

################ 总结 504 ##############
1. 网关超时
   Nginx 504错误(Gateway time-out  网关超时)的含义是所请求的网关没有请求到,简单来说就是没有请求到可以执行的PHP-CGI】
   一般看来, 这种情况可能是由于nginx默认的fastcgi进程响应的缓冲区太小造成的, 这将导致fastcgi进程被挂起, 如果你的fastcgi服务对这个挂起处理的不好, 那么最后就极有可能导致504 Gateway Time-out。
现在的网站, 尤其某些论坛有大量的回复和很多内容的, 一个页面甚至有几百K,默认的fastcgi进程响应的缓冲区是8K, 我们可以设置大点,

在nginx.conf里, 加入:
fastcgi_buffers 8 128k

这表示设置fastcgi缓冲区为8×128k
当然如果您在进行某一项即时的操作, 可能需要nginx的超时参数调大点, 例如设置成60秒:

send_timeout 60;
Nginx 502与504的区别:

Nginx 502 Bad Gateway的含义是请求的PHP-CGI已经执行,但是由于某种原因(一般是读取资源的问题)没有执行完毕而导致PHP-CGI进程终止。
Nginx 504 Gateway Time-out的含义是所请求的网关没有请求到,简单来说就是没有请求到可以执行的PHP-CGI。
解决这两个问题其实是需要综合思考的,一般来说Nginx 502 Bad Gateway和php-fpm.conf的设置有关,而Nginx 504 Gateway Time-out则是与nginx.conf的设置有关。

时间: 2024-08-03 07:21:49

总结403到504的常用问题的相关文章

Python web面试常见问题

一.Python语法以及其他基础部分: 1.可变与不可变类型 2.浅拷贝与深拷贝的实现方式.区别:deepcopy如果你来设计,如何实现 3.new()与init()的区别 4.你知道几种设计模式 5.编码与解码你了解过吗 6.列表推导式list comprehension和生成器的优劣 7.什么是装饰器:如果想在函数之后进行装饰,应该怎么做 8.手写个使用装饰器实现的单例模式 9.使用装饰器的单例和使用其他方法的单例,在后续使用中,有何区别 10.手写:正则邮箱地址 11.介绍下垃圾回收:引用

Python爬虫面试常见问题

先收藏一下,有空再整理答案 爬虫面试常见问题 一.项目问题: 1.你写爬虫的时候都遇到过什么反爬虫措施,你是怎样解决的 2.用的什么框架.为什么选择这个框架 二.框架问题: 1.scrapy的基本结构(五个部分都是什么,请求发出去的整个流程) 2.scrapy的去重原理(指纹去重到底是什么原理) 3.scrapy中间件有几种类,你用过哪些中间件 4.scrapy中间件在哪里起的作业(面向切片编程) 三.代理问题: 1.为什么会用到代理 2.代理怎么使用(具体代码, 请求在什么时候添加的代理) 3

珍藏版 Python 开发工程师面试试题

说明:不拿到几家公司的offer,那就是卑鄙的浪费 一.Python_基础语法 1.可变与不可变类型: 2.浅拷贝与深拷贝的实现方式.区别:deepcopy如果你来设计,如何实现: 3.__new__() 与 __init__()的区别: 4.你知道几种设计模式: 5.编码和解码你了解过么: 6.列表推导list comprehension和生成器的优劣: 7.什么是装饰器:如果想在函数之后进行装饰,应该怎么做: 8.手写个使用装饰器实现的单例模式: 9.使用装饰器的单例和使用其他方法的单例,在

每周工作总结

项目:英文词频统计 项目类型:个人项目 项目完成情况:已完成 项目改进:未变更 项目日期:2016.9.2----2016.9.6 C类别 C内容 S开始时间 ST结束时间 I中断时间 T净时间 分析 需求,设计 18:00 21:00 50 130 编码 Java编写 10:00 13:00 60 120 文档 随笔 9:30 10:00 5 25 讨论 改进随笔 10:30 10:35 0 5 项目:小学四则运算 项目类型:结对项目 项目完成情况:已完成 项目改进:已进行 项目日期:2016

使用亿牛云爬虫代理失败的原因

http状态码407原因:代理认证信息失败,让对方严格按照demo配置代理信息http状态码429原因:请求超过代理限制,严格按照所开代理的请求数,按照300毫秒为单位进行管理.如果限制之后,既然大量429,需要优化爬虫策略,应该是目标网站返回的错误提示.http状态码302原因:访问的是https网站,会自动跳转一次,正常现象:访问的http网站,网站拒绝服务,大量302需要优化爬虫策略http状态码403或504原因:少量不影响,大量403或504需要优化爬虫策略http请求超时原因:htt

亿牛云API优质代理使用中出现的问题

(1) 代理提取失败停止程序访问,直接使用IE浏览器访问代理API,截图看看错误提示:如果页面访问失败注意API链接是否复制正确:爬虫服务器是否有防火墙禁止网络访问:服务器是Linux提取api,是需要转义,&符号前面要加\页面访问成功,返回错误信息,需要看看错误信息内容您的IP: 125.69.47.134 没在白名单( 125.69.44.227 222.209.8.0 )中原因:ip白名单不对,需要添加,注意看看对方服务器IP是不是电信或联通的IP修改IP白名单太频繁原因:1.ip白名单不

使用亿牛云爬虫代理常见问题的解决方案

(1) 代理使用失败让对方截图看看代理代码,代理信息是否提取配置正确.重点注意必须使用代理域名,不能是代理服务器IP.要求对方复制demo,然后加上ua随机优化,按照所开代理的请求数,按照300毫秒为单位进行管理,运行程序后统计错误信息和http的状态码.代理链接失败原因:对方是否有防火墙,导致无法链接我们服务器:对方开的代理是否过期.http状态码407原因:代理认证信息失败,让对方严格按照demo配置代理信息 http状态码429原因:请求超过代理限制,严格按照所开代理的请求数,按照300毫

HTTP返回代码代表的含义(403,404,500,502,504)

在网站日志中,我们经常会看到很多返回的http代码,如201.304.404.500等等.可是这些具体的返回的HTTP代码究竟什么含义呢,在此做一下知识普及吧,记不住不要紧,到时候看看就行了,但最主要的几个还要要清楚的. 一些常见的状态码为: 200 - 服务器成功返回网页 404 - 请求的网页不存在 503 - 服务器超时 1xx(临时响应) 表示临时响应并需要请求者继续执行操作的状态码. 100(继续)请求者应当继续提出请求.服务器返回此代码表示已收到请求的第一部分,正在等待其余部分. 1

常用的HTTP状态码

成功的状态码: 200 – 服务器成功返回网页   304 – 未修改   失败的状态码:   404 – 请求的网页不存在   503 – 服务器暂时不可用   500 – 服务器内部错误   下面的不是很常用,记住上面那几个就ok了,有bug了再补充 其他的状态码如下: 1xx(临时响应)用于表示临时响应并需要请求者执行操作才能继续的状态代码.100(Continue继续)     请求者应当继续提出请求.服务器返回此代码则意味着,服务器已收到了请求的第一部分,现正在等待接收其余部分.(HT