Quantcast
Channel: Nginx Forum - Nginx Mailing List - Russian
Viewing all 3102 articles
Browse latest View live

При включении gzip не работает chunk-encoding (3 replies)

$
0
0
Добрый день.

Версии: nginx - 1.2.1 + php-fpm

Нужен совет. При включении gzip-а перестает работать chunk-encoding. В заголовке ответа chunked содержится, но по-факту с включенным gzip страница не отдается частями.

Connection:keep-alive
Content-Encoding:gzip
Content-Type:text/html; charset=UTF-8
Date:Mon, 04 Nov 2013 09:57:07 GMT
Server:nginx
Transfer-Encoding:chunked
Vary:Accept-Encoding
X-Powered-By:PHP/5.4.4-14+deb7u5


Конфиги:
gzip on;
gzip_disable "msie6";
gzip_vary on;
gzip_proxied any;
gzip_comp_level 5;
gzip_buffers 16 8k;
gzip_http_version 1.1;
gzip_types text/plain text/css application/json application/x-javascript text/xml application/xml application/xml+rss text/javascript;

..............

upstream ********* {
server unix:/var/run/*******-fpm.sock weight=5;
server *.*.*.*:9010 weight=5;
keepalive 5;
}
.....................
server {
server_name www.***.ua;
return 301 $scheme://********.ua$request_uri;
}
server {
server_name ********.ua;
root /home/*********.ua/www;
chunkin on;

access_log /home/******.ua/logs/access.log;
error_log /home/***********.ua/logs/error.log;

charset utf-8;

include /etc/nginx/access.rules;

error_page 411 = @my_411_error;
location @my_411_error {
chunkin_resume;
}

location / {
try_files $uri @yii;
}

location = /favicon.ico {
log_not_found off;
access_log off;
}

location = /robots.txt {
log_not_found off;
access_log off;
}

location ~ \.php$ {
return 404;
}
location @yii {
include fastcgi_params;
set $memcached_key $uri;
#memcached_pass ******.ua;
fastcgi_param SCRIPT_FILENAME $document_root/index.php;
fastcgi_param PATH_INFO $fastcgi_script_name;
fastcgi_connect_timeout 300;
fastcgi_send_timeout 600;
fastcgi_read_timeout 600;
fastcgi_pass 127.0.0.1:9000;
#proxy_buffering off;
fastcgi_keep_conn on;
chunkin_keepalive on;
proxy_http_version 1.1;
}

настройка nginx для чайника (2 replies)

$
0
0
Доброго времени.

Просьба не кидаться тухлыми помидорами, гугл использовал, wiki читал - но
мозаика так и не сложилась.

Решил давеча переехать на буржуйский vps, т.к. наши шареды больно падучи
или везло так, не суть. Стал читать как nginx + php5-fpm поставить и все
вроде бы срослось.

Осталось дело за малым, просто понять само устройство, вероятно это
настолько очевидно, что нигде не пишут о нем в целом, а я что-то торможу по
всей видимости.

Итак:
1. Есть файл в папке /etc/nginx/nginx.conf. Этот файл для примера лежит,
или используется или его надо переместить в какое-то специальное место?

2. Для чего нужны папки:

- sites-available - здесь лежит некий конфиг default, с таким вот
содержимым http://pastebin.com/MPX0ii0g, которое позволяет работать
только сайту site1.ru, но вот при входе на сайт site2.ru, открывается
первый.
- Как сделать, чтобы для каждого сайта был свой конфиг? Куда его
класть и где до него прописывать инклюд, в nginx.conf?
- sites-enabled - симлинк default на sites-available/default. Что в этой
папке должно быть, её назначение?
- conf.d - пустая, что в ней должно быть и её назначение?

Буду безмерно благодарен, если ответите или дадите ссылку на мануал и
простите за нубство.

--
Relax, take it easy!
_______________________________________________
nginx-ru mailing list
nginx-ru@nginx.org
http://mailman.nginx.org/mailman/listinfo/nginx-ru

видимо rewrite и location (no replies)

$
0
0
день добрый. перечитал форум, перепробовал кучу вариантов, но не правильно мыслю видимо совершенно.
есть задача из редиректов апача, перевести в синтаксис нгикса.
например.
RewriteRule ^/pro/neon/?n1=1&n2=2&n3=3$ /pro/neon/ [L,R=301]

сначала шёл простым путём, пробовал конвертерами, код получается не правильный. позже читал форум, варианты шли примерно вот такие:
location = /pro/neon/ { rewrite ^/pro/neon/?n1=1&n2=2&n3=3$ http://xxx.ru/pro/neon/? redirect; }
или
location = /pro/neon/ { if ($args ~ ^n1){return 301 http://xxx.ru/pro/neon/;} }

в общем-то практически все варианты возвращают 404 и в логах
"/usr/local/etc/nginx/html/pro/neon/index.html" is not found (2: No such file or directory)

спасибо

Nginx + Crome: part header is too long (400) (1 reply)

$
0
0
Используеся nginx + flash uploader для загузки файлов в медиахранилище. В целом, конфигурация стандартная.

Возникла проблема с ответом от сервера кода 400 при попытке загрузки файлов через crome (при этом неисправность плавающая и не зависит от самого файла). Этот же файл в следующий раз загружается нормально, а какой-нибудь другой отдаёт 400. Увеличение буферов не особо помогает.

Тестировалось также в FF, Opera, Safari: проблема не проявляется. Читал о схожей проблеме тут: http://forum.nginx.org/read.php?2,214924,214926
Но не понял, какие из этого делать выводы.

Вот момент возникновения ошибки:

2013/11/05 19:17:45 [debug] 44995#0: *204201812 hashed path: /home/web/tmp_storage/0038896449
2013/11/05 19:17:45 [debug] 44995#0: *204201812 http script var: "Filedata"
2013/11/05 19:17:45 [debug] 44995#0: *204201812 http script copy: ".name"
2013/11/05 19:17:45 [debug] 44995#0: *204201812 http script var: "girl_walking_together_with_man_and_bike_into_the_sunset.jpg"
2013/11/05 19:17:45 [debug] 44995#0: *204201812 http script var: "Filedata"
2013/11/05 19:17:45 [debug] 44995#0: *204201812 http script copy: ".content_type"
2013/11/05 19:17:45 [debug] 44995#0: *204201812 http script var: "application/octet-stream"
2013/11/05 19:17:45 [debug] 44995#0: *204201812 posix_memalign: 0000000803CA8000:4096 @16
2013/11/05 19:17:45 [debug] 44995#0: *204201812 http script var: "Filedata"
2013/11/05 19:17:45 [debug] 44995#0: *204201812 http script copy: ".path"
2013/11/05 19:17:45 [debug] 44995#0: *204201812 http script var: "/home/web/tmp_storage/0038896449"
2013/11/05 19:17:45 [info] 44995#0: *204201812 started uploading file "girl_walking_together_with_man_and_bike_into_the_sunset.jpg" to "/home/web/tmp_storage/0038896449" (field "Filedata", content type "application/octet-stream"), client: 83.220.58.78, server: test.org, request: "POST /uploadController/?username=test&userkey=aabc5f00f4140924e3014f2f42824160 HTTP/1.1", host: "test.org", referrer: "http://test.org/"
2013/11/05 19:17:45 [debug] 44995#0: *204201812 write: 32, 0000000803CA7000, 4096, 0
2013/11/05 19:17:45 [debug] 44995#0: *204201812 recv: eof:0, avail:5530, err:0
2013/11/05 19:17:45 [debug] 44995#0: *204201812 recv: fd:30 8192 of 8192
2013/11/05 19:17:45 [debug] 44995#0: *204201812 http client request body recv 8192
2013/11/05 19:17:45 [debug] 44995#0: *204201812 write: 32, 0000000803CA7000, 4096, 4096
2013/11/05 19:17:45 [debug] 44995#0: *204201812 write: 32, 0000000803CA7000, 69, 8192
2013/11/05 19:17:45 [info] 44995#0: *204201812 finished uploading file "girl_walking_together_with_man_and_bike_into_the_sunset.jpg" to "/home/web/tmp_storage/0038896449", client: 83.220.58.78, server: test.org, request: "POST /uploadController/?username=test&userkey=aabc5f00f4140924e3014f2f42824160 HTTP/1.1", host: "test.org", referrer: "http://test.org/"
2013/11/05 19:17:45 [debug] 44995#0: *204201812 http script var: "Filedata"
2013/11/05 19:17:45 [debug] 44995#0: *204201812 http script copy: ".md5"
2013/11/05 19:17:45 [debug] 44995#0: *204201812 http script var: "9456bbbe7305698929a7ff9ab111602c"
2013/11/05 19:17:45 [debug] 44995#0: *204201812 http script var: "Filedata"
2013/11/05 19:17:45 [debug] 44995#0: *204201812 http script copy: ".size"
2013/11/05 19:17:45 [debug] 44995#0: *204201812 http script var: "8261"
2013/11/05 19:17:45 [debug] 44995#0: *204201812 malformed filename in part header
2013/11/05 19:17:45 [debug] 44995#0: *204201812 invalid Content-Disposition header
2013/11/05 19:17:45 [debug] 44995#0: *204201812 http finalize request: 400, "/uploadController/?username=test&userkey=aabc5f00f4140924e3014f2f42824160" a:1, c:2
2013/11/05 19:17:45 [debug] 44995#0: *204201812 http special response: 400, "/uploadController/?username=test&userkey=aabc5f00f4140924e3014f2f42824160"
2013/11/05 19:17:45 [debug] 44995#0: *204201812 uploadprogress error-tracker error: 400
2013/11/05 19:17:45 [debug] 44995#0: *204201812 uploadprogress error-tracker not tracking in this location
2013/11/05 19:17:45 [debug] 44995#0: *204201812 charset: "" > "utf-8"
2013/11/05 19:17:45 [debug] 44995#0: *204201812 HTTP/1.1 400 Bad Request

Nginx 1.2.7 + Apache2 2.2.24 on Freebsd 9.1 хостинг speedtest mini проблема с upload (7 replies)

$
0
0
На сервере живет связка из Nginx 1.2.7 + Apache2 2.2.24. Конфиг nginx дефолтный, размеры буферов и т.п не переопределены. Перенес на этот сервер свой хост speedtest mini. Папка с файлами спидеста расположена на рамдиске и проблем с скоростью доступа к ним нет, скорость скачивания (downlaod) 300+ Mbit/s. Но есть проблемы с тестом скорости загрузки (upload) - 40-50 Mbit/s После отключения sendfile в конфиге nginx скорость подросла до 80-120 Mbit/s Во время теста загрузки в top io mode nginx показывает 100% загрузки
VCSW IVCSW READ WRITE FAULT TOTAL PERCENT COMMAND
4839 0 0 16 0 16 100.00% nginx

и gstat показывает активную запись на диск.

Вынос client_body_temp_path на рамдиск и изменение переменных client_body* относительно дефолтных значений приводят только к ухудшению результата теста скорости.

Увеличивается время ответа NGINX? (2 replies)

$
0
0
Добрый день.

Имеем: Ubuntu 12.04 с 1Гиг RAM, NGINX, PHP-FPM+APC, Varnish, WordPress
Иногда машина уходит в swap после которого время отклика NGINX увеличивается в десятки раз, иными словами вэб сервер дико тормозит до ребута.
https://dl.dropboxusercontent.com/u/1290139/nginx.jpg
Проблема еще в том, что иногда это происходит в течении короткого промежутка 10-15 минут, после чего вэб сервер начинает работать штатно без каких либо вмешательств.
.
Подскажите что это может быть и в какую строну двигаться?

uWSGI (1 reply)

$
0
0
Добрый день,
такой вопрос, есть бэкенд, который обрабатывает запросы, можно ли сделать так, чтобы для некоторых локейшенов результаты работы кешировались?
Т.е. бэкенд обрабатывает
/a
/b
/c
я хочу сделать, чтобы для /b ответ кешировался.

Спасибо.

Несколько сайтов в одном домене (5 replies)

$
0
0
Привет,

Есть домен:
http://example.com

Нужно сделать несколько независимых сайтов на WordPress.
URL должны быть вида:
http://example.com/tiger
http://example.com/lynx
http://example.com/lion

По каждой ссылке будет установлен WordPress.

Для начала не могу понять что писать в server_name для каждого из сайтов и как вообще их разграничить.
На данный момент есть такой конфиг:


server {
listen 80;
server_name example.com;
rewrite ^(.*) http://www.example.com$1 permanent;
}

server {
listen 80;
server_name www.example.com;

client_max_body_size 5m;
client_body_timeout 60;

access_log /var/log/nginx/my-wordpress.com-access;
error_log /var/log/nginx/my-wordpress.com-error error;

root /var/www/html/my-wordpress.com/;
index index.html index.php;

### root directory ###
location / {
try_files $uri $uri/ /index.php?$args;
}

### security ###
error_page 403 =404;
location ~ /\. { access_log off; log_not_found off; deny all; }
location ~ ~$ { access_log off; log_not_found off; deny all; }
location ~* wp-admin/includes { deny all; }
location ~* wp-includes/theme-compat/ { deny all; }
location ~* wp-includes/js/tinymce/langs/.*\.php { deny all; }
location /wp-includes/ { internal; }
#location ~* wp-config.php { deny all; }
location ~* ^/wp-content/uploads/.*.(html|htm|shtml|php)$ {
types { }
default_type text/plain;
}

# location ~* wp-admin {
# allow <YOUR_IP>;
# allow 127.0.0.1;
# deny all;
# }

### disable logging ###
location = /robots.txt { access_log off; log_not_found off; }
location = /favicon.ico { access_log off; log_not_found off; }

### caches ###
location ~* \.(jpg|jpeg|gif|css|png|js|ico|html)$ { access_log off; expires max; }
location ~* \.(woff|svg)$ { access_log off; log_not_found off; expires 30d; }
location ~* \.(js)$ { access_log off; log_not_found off; expires 7d; }

### php block ###
location ~ \.php?$ {
try_files $uri =404;
include fastcgi_params;
#fastcgi_pass 127.0.0.1:9001;
fastcgi_pass unix:/var/run/php-wordpress.socket;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
fastcgi_intercept_errors on;
fastcgi_split_path_info ^(.+\.php)(.*)$;
#Prevent version info leakage
fastcgi_hide_header X-Powered-By;
}
}

Проблема с try_files - nginx. Хелп. (1 reply)

$
0
0
Здравствуйте уважаемые форумчане!
Уже мозг кипит не могу понять где у меня косяк (только разбираюсь с nginx).
Не работает try_files

есть: Сервер A - fs.site.ru - так же используется как файловый кеш (flv)
и два сервера B и С - хранилища файлов(flv) они же в upstream

Задача: когда заходим по сылке http://fs.site.ru/data/z/111.111.111.111/5960a0dbce3b7b355b4672d850936e3c/2.flv
файл отдает сервер А, если он есть на нем, иначе вытянуть файл с @video.

Но когда файл удаляю с кеша на сервере А, то try_files не перебрасывает на @video и выдает 404 ошибку

где тут собака зарыта не могу понять, хелп...
OS: CentOS 6.4? nginx 1.4.3


upstream remore {
# ip_hash;
server storage.ru;
server storage2.ru;
}

server {
listen 80;
server_name fs.site.ru;


location / {
try_files $uri @video;
}

location /data/ {
rewrite /data/(.+)/(.*)/(.+)/(.*)\.flv$ /realvideo/$4.flv;
}

location /realvideo/ {
rewrite ^/realvideo/(.*)$ /$1 break;
internal;
flv;
root /mnt/cache;
}

location @video {
proxy_pass http://remote;
proxy_redirect off;

proxy_set_header Host $host;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Real-IP $remote_addr;

proxy_set_header X-ARGS $args;
proxy_set_header X-URI $uri;
proxy_pass_header Set-Cookie;
}

}

limit_rate, limit_req и limit_conn внутри условия IF (1 reply)

$
0
0
Здравствуйте. Вот такой вот конфиг прекрасно работает внутри Location или внутри Server:

location / {
limit_req zone=reqip burst=128;
limit_conn url_ip 4;
set $limit_rate 312k;
limit_rate 312k;
}

Но стоит вместо location / { написать if ($remote_addr = 'xx.xx.xx.xx') { то сервер ругается, ничего не работает.
Мне нужно чтобы для всех клиентов действовали ограничения, а для сервера нет (когда запросы на сервер идут с самого сервера через скрипты).

Подскажите пожалуйста, неужели все эти настройки Nginx не позволяет размещать внутри условия? Может я чего не так делаю. Если всё настолько плохо и не позволяет, то подскажите пожалуйста может кто-то знает каким путем можно решить возникшую проблему... Спасибо

Настройка mod_rewrite (no replies)

$
0
0
Добрый день, господа.

Помогите с адаптацией конфигурационного файла Apache .htaccess в инструкции конфигурационного файла nginx'а.

RewriteCond %{REQUEST_URI} ^(.*)//(.*)$
RewriteRule . %1/%2 [R=301,L]

RewriteRule ^(.*),(.*)$ $2.php?rewrite_params=$1&page_url=$2

RewriteCond %{QUERY_STRING} base64_encode.*(.*) [OR]
RewriteCond %{QUERY_STRING} (<|%3C).*script.*(>|%3E) [NC,OR]
RewriteCond %{QUERY_STRING} GLOBALS(=|[|%[0-9A-Z]{0,2}) [OR]
RewriteCond %{QUERY_STRING} _REQUEST(=|[|%[0-9A-Z]{0,2})
RewriteRule ^(.*)$ index.php [F,L]

Пробовал генераторами - не помогает

Отдельный PHP-FPM сервер (14 replies)

$
0
0
Всем привет!

Целый день пытаюсь заставить работать NGINX с удаленным PHP-FPM сервером
Не получается, никак, хоть башкой об стенку бейся

Есть два сервера, сервер "А" и сервер "Б"
На сервере "А" ведется разработка на PHP, и там же расположен NGINX
На сервере "Б" находится база данных и бекенд PHP-FPM

Конфигурация NGINX сервера "А":
http {
upstream php {
server 10.0.0.10:9000;
}

server {
listen 80;
server_name example.com;
root /var/www/test/web;
index index.php;
server_tokens off;

location / {
try_files $uri /index.php?$args;
}

location ~ \.php$ {
fastcgi_pass php;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params;
}

error_log /var/log/nginx/example.com.error_log info;
access_log /var/log/nginx/example.com.access_log;
}

IP адрес сервера "А" 10.0.0.5


Конфигурация PHP-FPM сервера "Б":
[www]
user = www-data
group = www-data
listen = 9000
listen.allowed_clients = 10.0.0.5
pm = dynamic
pm.max_children = 10
pm.start_servers = 2
pm.min_spare_servers = 1
pm.max_spare_servers = 3
pm.max_requests = 200
access.log = /tmp/access.log

IP адрес сервера "Б" 10.0.0.10

Когда захожу по адресу http://example.com получаю
"File not found. "

В логах сервера "А" следующее:
2013/11/13 02:07:20 [error] 8032#0: *120 FastCGI sent in stderr: "Primary script unknown" while reading response header from upstream, client: 10.0.1.100, server: example.com, request: "GET / HTTP/1.1", upstream: "fastcgi://10.0.0.10:9000", host: "perhyar.liteproject.ru"

10.0.1.100 - - [13/Nov/2013:02:07:20 +0600] "GET / HTTP/1.1" 404 47 "-" "Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:24.0) Gecko/20100101 Firefox/24.0"


В логах сервера "Б":
10.0.0.5 - 12/Nov/2013:15:07:20 -0500 "GET /index.php" 404 - 0.827 256 0.00%


Господа, что я делаю не так??
Заранее спасибо!

перекос в распределении при least_conn (3 replies)

$
0
0
Всем привет!

Включил least_conn в одном из апстримов и вроде бы все хорошо, распределяется более-менее равномерно. Но вот уже второй день подряд (с момента включения) замечаю что nginx в течение некоторого продолжительного времени перестает отправлять запросы на один из бэкендов в апстриме. При reload ситуация восстанавливается.

Есть похожая тема, но она заканчивается ничем - http://forum.nginx.org/read.php?2,237621,237621#msg-237621
Из нее лишь понятно что у воркеров есть свои счетчики соединений. Но не понятно, то ли это инкрементальные счетчики которые все время растут, или счетчики текущего количества соединений с бэкендом? Если первый вариант, то понятно почему происходит перекос и если так тогда как с этим бороться?

nginx version: nginx/1.2.2
worker_processes 10;
upstream nginx_unicorn_01 {
least_conn;
server script1:8080 weight=23;
server script2:8080 weight=31;
server script3:8080 weight=23;
server script4:8080 weight=23;
}

FTP Proxy (8 replies)

$
0
0
Здравствуйте.

Есть куча вируталок во внутренней сети, н с одним нешним ip

Можно ли проксировать в них ftp соединения через nginx?

Или есть какое то аналогичное решение?
_______________________________________________
nginx-ru mailing list
nginx-ru@nginx.org
http://mailman.nginx.org/mailman/listinfo/nginx-ru

Image_filter resize & proxy_cache (no replies)

$
0
0
К сожалению не нашел описание похожей проблемы, может плохо искал.
Все работает отлично, показываются превьюхи.
После обновления картинок:
http://mydomain.com/images/pic1.jpg - показывает новую
http://mydomain.com/w220/images/pic1.jpg - берет из кеша.
Как заставить нжинкс не брать превьюху из кеша если основной файл был изменен?

Вот конфиг:
http {
proxy_cache_path /var/www/mydomain.com/cache/ levels=1:2 keys_zone=image-preview:20m max_size=256m inactive=1d;
......
server {
listen 1.1.1.1:80;
server_name mydomain.com;

location ~^(/images/) {
}

location ~ ^/w(\d*)/(.*)$ {
proxy_pass http://mydomain.com;
rewrite ^/w(\d*)/(.*)$ /$2 break;
image_filter resize $1 -;
image_filter_jpeg_quality 95;
image_filter_buffer 4M;
proxy_cache image-preview;
proxy_cache_key "$host$document_uri";
proxy_cache_valid 200 1d;
proxy_cache_valid any 1m;
}
location / {
root /var/www/mydomain.com;
fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME /var/www/mydomain.com/index.php;
include fastcgi_params;
client_max_body_size 256M;

fastcgi_buffer_size 32k;
fastcgi_buffers 8 16k;

access_log /var/log/nginx/access.log;
error_log /var/log/nginx/error.log;
}
}
}

Вопрос по set_real_ip_from (1 reply)

$
0
0
Привет.

set_real_ip_from отлично работает, но вот потребовалось получить
адрес, который был до set_real_ip_from (фактически, адрес из tcp
сессии) и послать его на бэкэнд в заголовке http.

Как такое можно сделать?


--
Regards,
Oleg
_______________________________________________
nginx-ru mailing list
nginx-ru@nginx.org
http://mailman.nginx.org/mailman/listinfo/nginx-ru

Модули: когда у ngx_http_variable_t срабатывает get_handler и set_handler? (1 reply)

$
0
0
Есть filter module, в ходе работы которого задается одна переменная
(ngx_http_variable_t).

Причем у переменной определен только get_handler с сигнатурой
that_variable_code(ngx_http_request_t *r, ngx_http_variable_value_t *v,
uintptr_t data).

Вопрос: что такое set_handler у переменных? Почему, хотя он не задан, в
get'е получается выполнить процессинг данных ngx_http_request_t и присвоить
значение?

Второй вопрос: допустим, я хочу добавить еще одну переменную. Но при этом
получение значений для обеих переменных выполняется один раз (тяжелая
инициализация..). Куда можно запихнуть в ngx_http_request_t свое значение
так, чтобы его смогли забрать оба get_handler'а? (учитывая то, что
http_request_t вроде как может использоваться для нескольких запросов)

Третий вопрос: каким образом можно задать значение строковой переменной,
находясь в header filter и зная имя переменной (строку)?

--
С уважением,
Игор
_______________________________________________
nginx-ru mailing list
nginx-ru@nginx.org
http://mailman.nginx.org/mailman/listinfo/nginx-ru

Добавить переменую $cache_status (6 replies)

$
0
0
Для инвалидации кеша, мы планировали использовать такую схему:

fastcgi_cache_valid 200 … 1s;
fastcgi_cache_use_stale error updating http_503;

По истечения 1 секунды, запрос будет идти на бекенд, на котором РНР скрипт определяет изменились данные в БД которые использовались в данном URI с момента предыдущего запроса или нет (для проверки достаточно пару запросов к мемкешу), если данные не изменились, скрипт отдаст ответ с кодом 503, для того чтобы Nginx дальше использовал кеш запроса (cache_use_stale) и так каждую секунду.

Даная схема позволяет, оперативно сбрасывать устаревший кеш и хранить кеш на длительный период если данные не изменялись.

Но для корректной работы, РНР скрипту необходимо знать что у Nginx есть файл кеша, чтобы знать можно серверу ответить статусом 503 или нет, потому что если файла кеша нет, сервер 503 ошибку от РНР отправит браузеру а этого нам не надо.

Проблема решается если в конфиге Nginx будет добавлена переменная типа - $cache_status которую я буду отправлять на бекенд через
fastcgi_param CACHE_STATUS $cache_status;

Тогда РНР скрипт сможет, точно определять возможность повторного использования кеша если данные не устарели.

Как в страницу ошибки 404 или 503 передать IP запрошауемого? (1 reply)

$
0
0
Сабж.
Запросов очень много.

error_page 503 /503.html;
location = /503.html {
root /path/to/the/page;
}

можно как-то встроенными средствами nginx отдать %%IP%% ?

Заранее благодарю.

--
Vladislav V. Prodan
System & Network Administrator
http://support.od.ua
+380 67 4584408, +380 99 4060508
VVP88-RIPE

_______________________________________________
nginx-ru mailing list
nginx-ru@nginx.org
http://mailman.nginx.org/mailman/listinfo/nginx-ru

Кэширование статики. (4 replies)

$
0
0
Добрый день. У меня есть проблема со статикой. Я, к сожалению, не в силах решить её своими силами, поэтому буду благодарен за любую помощь.
Суть проблемы: есть сайт, который работает на связке nginx + uwsgi + django. Когда мы заливаем изменения, нужно отключить доступ к сайту у обычных пользователей и оставить доступ у разработчиков. Решается это следующим образом:
1) В файле конфигурации: основное приложение перебрасывается на порт 8000, а на 80 отдается заглушка, говорящая о том, что у нас идут обновления. Nginx перезагружается.
2) Проходят какие-то технические работы.
3) Заглушка и основное приложение меняются портами в конфигурации. Nginx снова перезагружается.
После этого, если зайти в приложение, мы не обнаруживаем часть картинок, причем у всех это разные картинки, а у кого-то вовсе нет проблем с этим. Т.е. запрос к картинке возвращает 404. Если сбросить кэш в браузере - все устаканится и статика вернется на место.
Собственно вопрос: что с этим можно сделать, как исправить данную проблему и с чем она связана?
Конфигурацию прилагаю в виде ссылки: http://prntscr.com/249v0c
Заранее, большое спасибо за помощь!
Viewing all 3102 articles
Browse latest View live


<script src="https://jsc.adskeeper.com/r/s/rssing.com.1596347.js" async> </script>