1. nginx version: nginx/0.7.65
built by gcc 4.4.1 (Ubuntu 4.4.1-4ubuntu9)
configure arguments: --with-http_sub_module
2.
[code]
worker_processes 1;
worker_rlimit_nofile 65535;
events {
use epoll;
worker_connections 65535;
}
http {
server_tokens off;
include mime.types;
default_type application/octet-stream;
reset_timedout_connection on;
sendfile on;
#tcp_nopush on;
keepalive_timeout 15;
gzip_comp_level 6;
gzip_types text/plain text/css application/json application/x-javascript text/xml application/xml application/xml+rss text/javascript application/atom+xml;
gzip_min_length 1000;
gzip_proxied any;
gzip_http_version 1.0;
#gzip_disable "msie6";
index default.aspx;
port_in_redirect off;
proxy_buffers 8 16k;
proxy_buffer_size 32k;
proxy_intercept_errors on;
proxy_connect_timeout 30;
proxy_send_timeout 90;
proxy_read_timeout 90;
proxy_hide_header X-Powered-By;
proxy_hide_header X-AspNet-Version;
proxy_cache_use_stale timeout invalid_header http_500;
#limit_zone demo $binary_remote_addr 10m;
#limit_conn demo 5;
log_format main '$remote_addr - $remote_user [$time_local] '
'"$request" $status $bytes_sent '
'"$http_referer" "$http_user_agent" '
'"$http_cookie" "$gzip_ratio"';
gzip on;
proxy_cache_path /usr/local/nginx/cache/prod levels=1:2 keys_zone=prodcache:150m max_size=500m;
client_max_body_size 50m;
upstream backend {
server 10.226.142.223;
}
server {
include /usr/local/nginx/conf/vhosts/blockips.conf;
set $cached 0;
proxy_next_upstream timeout http_500 http_502 http_503 http_504;
listen 80;
server_name myserver;
error_page 500 502 503 504 = @nocached;
error_page 400 401 403 405 406 408 = @nocached;
error_page 404 = @nocached;
expires epoch;
access_log /usr/local/nginx/logs/prod/access.log main;
error_log /usr/local/nginx/logs/prod/error.log;
if ($host ~* ^(www\.|)orgdomain\.org$) {
rewrite ^.* http://workdomain.com permanent;
}
if ($host ~* www\.(.*)) {
set $no_www $1;
rewrite ^(.*)$ http://$no_www$1 permanent;
}
location @storage {
access_log off;
error_log /usr/local/nginx/logs/prod/error_data01.log crit;
rewrite ^(.*)$ http://$storage_domain$1 permanent;
}
#кэшируем статику на себя
location @fetch {
root /home/prod;
access_log /usr/local/nginx/logs/prod/access_static.log;
proxy_pass http://backend;
proxy_store on;
proxy_temp_path /usr/local/nginx/proxy_temp/prod 1 2;
proxy_set_header Host $host;
proxy_set_header If-Modified-Since "";
proxy_store_access user:rw group:rw all:r;
}
#для зарегистрированных проксируем прозрачно
location @nocached {
gzip on;
client_max_body_size 50m;
proxy_pass http://backend;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
}
#гостям проксируем и кэшируем
location @cached {
gzip on;
proxy_pass http://backend;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_cache prodcache;
proxy_cache_valid 200 301 304 300s;
proxy_cache_key "$request_method|$http_if_modified_since|$http_if_none_match|$host|$request_uri";
proxy_hide_header "Set-Cookie";
proxy_ignore_headers "Cache-Control" "Expires";
proxy_hide_header X-Powered-By;
proxy_hide_header X-AspNet-Version;
}
#redirect to default.aspx after reconstruction
location /default.html {
rewrite ^\/default\.html(.*)$ http://$host/default.aspx$1;
}
location / {
#если нет нашей куки
if ($http_cookie !~ "auth") {
set $cached 1;
}
if ($request_method = POST) {
set $cached 0;
}
if ($request_method != GET) {
set $cached 0;
}
if ($args ~* "isvisit=(0|1)") {
set $cached 0;
}
if ($args ~* "viewtype=(0|1)") {
set $cached 0;
}
if ($args ~* "arg1=") {
set $cached 0;
}
#set $cached 0;
if ($cached = 1) {
error_page 404 405 500 502 504 = @cached;
return 404;
#break;
}
if ($cached = 0) {
error_page 404 405 500 502 504 = @nocached;
return 404;
#break;
}
}
location ^~ /data/ {
error_page 404 = @storage;
error_log /usr/local/nginx/logs/prod/error_data01.log;
return 404;
}
location ^~ /images/personal/ {
error_page 404 = @storage;
error_log /usr/local/nginx/logs/prod/error_data01.log;
return 404;
}
location ^~ /images/galleries/ {
error_page 404 = @storage;
error_log /usr/local/nginx/logs/prod/error_data01.log;
return 404;
}
location ^~ /images/votes/ {
error_page 404 = @storage;
error_log /usr/local/nginx/logs/prod/error_data01.log;
return 404;
}
location ~* ^.+\.(jpg|jpeg|gif|gz|zip|flv|rar|wmv|avi|swf|png|htc|ico|mpeg|mpg|txt|mp3|mov|ico|css|js).* {
access_log off;
root /home/prod;
expires 31d;
error_log /usr/local/nginx/logs/prod/error_static.log;
error_page 404 = @fetch;
}
}
}
[/code]
3. Не совсем понял что нужно сделать в этом пункте - нужно дебаг лог?