nginx上传限制

利用nginx做了play的前端服务器,应用一切正常,但是管理后台上传文件时,受到了限制,原来是nginx的一个参数惹的祸! client_max_body_size这个参数限制了上传文件的大小,默认是1M,此参数是在代理设置文件中配置的, 下面是我的proxy.conf 配置信息。
location / {
proxy_pass        http://fabo;
proxy_redirect          off;
proxy_set_header   Host             $host:80;
proxy_set_header   X-Real-IP        $remote_addr;
proxy_set_header   X-Forwarded-For  $proxy_add_x_forwarded_for;
client_max_body_size    1000m;
}

测试一下配置文件/usr/local/nginx/sbin/nginx -t
重启nginx:kill -HUP `cat /usr/local/nginx/logs/nginx.pid`
这里我的设置是1000M的上限,通过修改client_max_body_size 设置的大小,重启nginx服务,解决了文件上传问题!

j j j

nginx搭建支持flv mp4 seek 实现拖拽

wget http://sourceforge.net/projects/pcre/files/pcre/8.12/pcre-8.12.zip/download

wget http://h264.code-shop.com/download/nginx_mod_h264_streaming-2.2.7.tar.gz

wget http://nginx.org/download/nginx-1.0.0.tar.gz
wget http://sourceforge.net/projects/yamdi/files/yamdi/1.8/yamdi-1.8.tar.gz/download

tar zxvf  yamdi-1.8.tar.gz
cd yamdi-1.8
gcc yamdi.c -o yamdi -O2 -Wall

mv yamdi /usr/bin/
注意我们编译的 yamdi 它起着重要的作用,因为一个FLV视频要能够拖拽播放,这个FLV在其 metadata中有关键桢的信息,但大部分FLV 是没有的。所以,我们要甬道开源的yamdi来为视频添加关键帧信息
命令为
yamdi -i input.flv -o out.flv

yamdi的参数:
-i 指定FLV源文件.
-o 指定输出文件,如果文件名为-,则输出到标准输出设备上,如果不指定也是
-x 插入的metadata信息XML文件。如果输出文件省略了,则只生成metadata信息.
-c 一个写入creator标签的字符串.
-l 添加 onLastSecond 行为.
-h 显示帮助信息.

安装nginx

安装nginx之前必须先安装pcre

pcre编译安装需要gcc gcc-c++

yum install gcc gcc-c++ openssl-devel zlib-devel

unzip pcre-8.12.zip

cd pcre-8.12

./configure

make && make install

tar zxvf  nginx_mod_h264_streaming-2.2.7.tar.gz
tar zxvf nginx-1.0.0.tar.gz
cd nginx-1.0.0
./configure  –user=www –group=www –with-http_sub_module –with-http_flv_module  –add-module=../nginx_mod_h264_streaming-2.2.7 –with-http_dav_module –with-http_stub_status_module –with-http_addition_module
make时会有报错如下:
make[1]: *** [objs/addon/src/ngx_http_h264_streaming_module.o] Error 1
make[1]: Leaving directory `/home/mock/BUILD_ROOT/BUILD/nginx-0.8.38′
make: *** [build] Error 2
解决办法:Vim nginx_mod_h264_streaming-2.2.7/src/ngx_http_streaming_module.c  将如下几行注释
/* TODO: Win32 */
if (r->zero_in_uri)
{
return NGX_DECLINED;
}
make && make install
nginx配置文件
#nginx.conf
worker_processes 1;
events {
use epoll;
worker_connections  65535;

}
http {
include mime.types;
default_type application/octet-stream;
sendfile on;
keepalive_timeout 65;
server {
listen 80;
server_name localhost;
location / {
root html;
index index.html index.htm;
}

location ~ \.mp4$ {
mp4;
}
location ~ \.flv$ {
flv;
}
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root html;
}
}
}
命令测试:
curl -v http://xx.xx.com/resbase/2010/06/baihezhengdan.flv?start=10240000 -o /dev/null
找个支持seek(拖拽)的播放器JWplayer
http://www.longtailvideo.com/support/jw-player-setup-wizard

j j j

nginx无法正常显示图片和css的一个原因

前几天在服务器上面配置nginx,发现加入的一个网站无法正常显示图片和css样式表,百思不得其解。后来查看日志,发现

2011/07/19 18:33:06 [crit] 13321#0: *115 open() “/usr/local/nginx/proxy_temp/9/00/0000000009” failed (13: Permission denied) while reading upstream, client: 221.223.78.59,

这么一段,到网上一搜,才知道,原来是proxy_temp这个目录权限不够,因为nginx是用apache用户运行的,而这个目录是www权限,这就是修改了ngxin默认运行用户的后遗症。目录改完权限之后,问题解决。又学了一招。

j j j