Gena Makhomed Wrote:
-------------------------------------------------------
> On 12.06.2011 11:56, ssbury wrote:
> Операционная система Linux
> этих ограничений
> не имеет и поэтому в Linux
> связку nginx <-> apache
> можно настроить способом,
> который будет вызывать
> меньше проблем.
>
> Например, некоторые
> скрипты на php видят что
> запрос к ним пришёл
> на порт 8080 и формируют url
> сайта с явным указанием
> порта 8080.
> Если и apache и nginx будут
> работать на 80 порту - этой
> проблемы
> не будет и везде будет
> нормальный url.
>
> Никаких преимуществ
> указывать Listen 127.0.0.1:8080 в
> конфиге апача
> вместо директивы Listen
> 127.0.0.1:80 нет, это только
> дополнительный
> потенциальный источник
> проблем и глюков в работе
> через nginx+apache
>
> >>> proxy_pass http://127.0.0.1:8080;
> >
> >> в редких и сперцифических
> случаях uri необходимо
> >> передавать на backend в
> необработанном виде.
> >
> >> более безопасный и
> надежный вариант:
> >> proxy_pass http://127.0.0.1/;
> >
Большое спасибо за доходчивое объяснение!
Порывшись в инете я вроде как запустил работу сайтов, но обнаружил что некоторые функции в админках работают некорректно. Я так понял это связано с rewrite функциями. Еще немного порывшись мой сонфиг стал таким:
http {
include /etc/nginx/mime.types;
default_type application/octet-stream;
log_format main '$remote_addr - $remote_user [$time_local] "$request" '
'$status $body_bytes_sent "$http_referer" '
'"$http_user_agent" "$http_x_forwarded_for"';
access_log /var/log/nginx/access.log main;
proxy_cache_path /var/lib/nginx/tmp/proxy levels=1:2 keys_zone=my_cache:10m max_size=1024m inactive=4d;
proxy_temp_path /var/lib/nginx/tmp/proxy_tmp 1 2;
proxy_buffering on;
proxy_cache_min_uses 1;
proxy_cache_valid 200 10m;
proxy_cache_valid 302 304 10m;
proxy_cache_valid 404 502 1m;
proxy_cache_valid 503 4s;
proxy_cache_valid any 30m;
proxy_cache_use_stale error timeout invalid_header http_500 http_502 http_503 http_504;
proxy_pass_header Cookie;
proxy_pass_header Set-Cookie;
sendfile on;
tcp_nopush on;
tcp_nodelay on;
##keepalive_timeout 0;
keepalive_timeout 65;
gzip on;
gzip_min_length 1024;
gzip_proxied expired no-cache no-store private auth;
gzip_types text/plain application/xml application/x-pointplus application/x-javascript text/css;
gzip_comp_level 3;
#
# The default server
#
server {
listen 94.45.132.146:80;
server_name domain.ru www.domain.ru;
server_name_in_redirect off;
#charset koi8-r;
access_log /srv/Web/www.domain.ru/_NG_server.log main;
location / {
proxy_pass http://127.0.0.1/;
proxy_redirect off;
proxy_cache my_cache;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
client_max_body_size 40m;
client_body_buffer_size 256k;
proxy_connect_timeout 120;
proxy_send_timeout 120;
proxy_read_timeout 120;
proxy_buffer_size 64k;
proxy_buffers 4 64k;
proxy_busy_buffers_size 64k;
proxy_temp_file_write_size 64k;
proxy_cache_key "$scheme$request_method$proxy_host$uri$is_args$args$cookie_member_id";
proxy_ignore_headers "Cache-Control" "Expires" "Set-Cookie";
proxy_hide_header "Set-Cookie";
proxy_cache_bypass $cookie_member_id;
proxy_no_cache $cookie_member_id;
access_log /srv/Web/domain.ru/_NG_local.log;
}
location ~* ^.+\.(jpg|jpeg|gif|png|ico|css|zip|tgz|gz|rar|bz2|doc|xls|exe|pdf|ppt|txt|tar|mid|midi|wav|bmp|rtf|js|html|flv)$ {
root /srv/Web/domain.ru/;
access_log /srv/Web/domain.ru/_NG_static.log;
}
#######################################
#### ВОТ ЭТОТ ЛОКЕЙШЕН Я ДОБАВИЛ (!!!)
#######################################
location ~*(comments|wp-admin)* {
proxy_pass http://127.0.0.1:80;
proxy_redirect off;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Host $http_host;
proxy_set_header X-URI $uri;
proxy_set_header X-ARGS $args;
proxy_set_header Refer $http_refer;
client_max_body_size 10m;
client_body_buffer_size 128k;
proxy_connect_timeout 90;
proxy_send_timeout 90;
proxy_read_timeout 90;
proxy_buffer_size 4k;
proxy_buffers 4 32k;
proxy_busy_buffers_size 64k;
proxy_temp_file_write_size 10m;
access_log /srv/Web/domain.ru/_NG_admin.log;
}
}
#end server
Теперь вроде все работает корректно, НО перестал работать кеш. Первый локейшен не срабатывает вообще, лог пустой и каталог кеша тоже пустой. Со статикой все хорошо. Если убрать тот локейшан что я добавил, то работает и кеш и статика, но возникают проблемы с постами в админке сайта вордпресса. Не могу понять почему так происходит с отработкой локейшенов. Расскажите в чем проблема, я явно что-то не до конца понимаю.
Заранее спасибо,
Александр