存档

文章标签 ‘nginx’

周五工作总结

2011年8月5日 没有评论

每周记录下零星的收获吧,无论对心情还是以后的技术或多或少有点益处的吧,大部分摘自weibo/twitter
先上技术类:
1. discuz论坛装插件,/forumdata/目录要有可读可写的权限,今天被坑了好长时间,直接从线上复制下来的程序,到本地解开后属性丢了,最后才想起来权限的问题。
2. Nginx+fastcgi报错502/504,解决方案已经写这儿了
3. Mysql权限开通: grant all privileges on game_stat.* to webgame@’10.3.16.26′ identified by ‘webgame’;flush priviledges;
现在插入生活:
1.在家抓紧时间看书-学习,这个摆在第一位。
2.照顾好LP和小宝。
3.地铁路上无聊看网络小说,不过好多没结局的,以后提前搜下,没结局的就不看了

分类: 杂七杂八 标签: , , ,

Nginx出现502和504错误提示的解决方案

2011年8月3日 没有评论

今天在测试机器上搞了个web论坛,discuz的,还算轻车熟路,直接用nginx+fast-cgi,搞了几下就运行一起来了,可是没多久就出现问题了,访问首页的时候,总是提示502或者504的,很是郁闷,潜意识里觉得是fast-cgi没搞正确,在度娘上搜了下果然如此,简单记录下吧。
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的设置有关。
php-fpm.conf有两个至关重要的参数,一个是“max_children”,另一个是”request_terminate_timeout” ,但是这个值不是通用的,而是需要自己计算的。
解决办法如下:
1、调整php-fpm.conf的相关设置:

<value name="max_children">32</value>
<value name="request_terminate_timeout">60s</value>

2、调整nginx.conf的相关设置:

fastcgi_connect_timeout 600; #set timeout
fastcgi_send_timeout 600;
fastcgi_read_timeout 600;
fastcgi_buffer_size 256k;
fastcgi_buffers 16 256k;   # 16*256,可以继续调大
fastcgi_busy_buffers_size 512k;
fastcgi_temp_file_write_size 512k;

关于fastcgi buffer相关的日志,可以参考这篇
3、终级解决方案: 阅读全文…

分类: 技术收集 标签: , , , ,

nginx基本配置

2009年9月29日 3 条评论


#user nobody;
worker_processes 8;
#error_log logs/error.log;
#error_log logs/error.log notice;
#error_log logs/error.log info;
pid logs/nginx.pid;
worker_rlimit_nofile 65535;
events {
use epoll;
worker_connections 10240;
}

http {
include mime.types;
default_type application/octet-stream;
#定义日志格式
log_format main '$remote_addr [$time_local] $request '
'$status $body_bytes_sent $request_time'
'"$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;
#gzip_min_length 1000;
gzip_proxied expired no-cache no-store private auth;
gzip_types text/plain application/xml text/html;
gzip_disable "MSIE [1-6] .";

upstream local{
server 127.0.0.1:8080; #监听本地服务端口
server 10.3.18.190:8080; #监听另外一台机器的服务端口,切换可以试用down参数或者注释
}

server {
listen 80; #nginx本地端口
server_name localhost; #本地服务

#charset koi8-r;

#access_log logs/host.access.log main;

#location / {
# root html;
# index index.html index.htmi;
#}

#error_page 404 /404.html;

# redirect server error pages to the static page /50x.html
#
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root html;
}

# proxy request to resin
location / {
proxy_pass http://local;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; #后端服务获取用户真正ip
#允许客户端请求的最大的单个文件字节数
client_max_body_size 10m;
#缓冲区代理缓冲用户端请求的最大字节数 可以理解为先保存到本地再传给用户
client_body_buffer_size 128k;
client_body_temp_path /data/client_body_temp;
#跟后端服务器连接的超时时间_发起握手等候响应超时时间
proxy_connect_timeout 90;
#后端服务器数据回传时间_就是在规定时间之内后端服务器必须传完所有的数据
proxy_send_timeout 90;
#连接成功后_等候后端服务器响应时间_其实已经进入后端的排队之中等候处理
proxy_read_timeout 90;
#代理请求缓存区_这个缓存区间会保存用户的头信息以供Nginx进行规则处理_一般只要能保存下头信息即可
proxy_buffer_size 4k;
proxy_buffers 4 32k; #同上 告诉Nginx保存单个用的几个Buffer 最大用多大空间
proxy_busy_buffers_size 64k; #如果系统很忙的时候可以申请更大的proxy_buffers 官方推荐*2
proxy_temp_file_write_size 64k; #proxy缓存临时文件的大小
proxy_temp_path /data/proxy_temp;
}
location /nginx-profiler {
stub_status on;
access_log on;
auth_basic "NginxStatus";
}
}
}

分类: 技术收集 标签: