请参考官方:
http://wiki.nginx.org/HttpRewriteModule#Synopsis
关于缓存大小权限
error log 有如下日志:an upstream response is buffered to a temporary file,
注意:当临时文件提示没有权限写时,发发送给客户端只接收到的这部分数据。
fastcgi_buffer_size 512k; fastcgi_buffers 6 512k; fastcgi_busy_buffers_size 512k; fastcgi_temp_file_write_size 512k;
默认的vhost
listen 80 default_server; server_name _;
增加Nginx请求缓存
location =/test_oss/cgi_interface/get_rs_proxy_by_domain.php { add_header X-Location cae_data_cache; add_header X-Cached $upstream_cache_status; fastcgi_cache fcgi_cache; fastcgi_cache_key "$request_method$uri$is_args$arg_domain$arg_city"; fastcgi_cache_valid 200 3m; fastcgi_cache_min_uses 1; fastcgi_cache_use_stale error timeout invalid_header http_500; fastcgi_temp_path /tmp/ngx_fcgi_tmp; include fastcgi.conf; fastcgi_pass unix:/dev/shm/cae_webdev.socket; }
默认均匹配
location / { include fastcgi.conf; fastcgi_pass unix:/dev/shm/cae_webdev.socket; }
TCP相关
sendfile on; tcp_nopush on; tcp_nodelay on; keepalive_requests 64; keepalive_timeout 10;
PHP HHVM容错配置
location ~ .php$ { include fastcgi.conf; fastcgi_pass 127.0.0.1:9090; #for 500/502 error change it to php-fpm error_page 500 502 = @fallback_fpm; } location @fallback_fpm { include fastcgi.conf; fastcgi_pass unix:/dev/shm/cweb_php.socket; }
重定向配置
if (!-e $request_filename) { rewrite ^(.*)$ /index.php?$1 last; } try_files $uri /index.php$is_args$args;
- 注意尽量不要用if
- rewrite不改变当前$uri的值,也就是多个rewrite时,$uri的值始终只有初始一个
- try_files会修改全局变量$uri的值
- location是有顺序的,rewrite的优先级可以认为比location高