Nginx Forum - Russian Forum Discussions in Russian http://www.ldmicj.icu/list.php?20 Sun, 22 Nov 2020 11:57:36 -0500 Phorum 5.2.16 http://www.ldmicj.icu/read.php?20,229682,229682#msg-229682 Раздел форума закрыт и находится в архиве (no replies) http://www.ldmicj.icu/read.php?20,229682,229682#msg-229682
Вы можете задать свой вопрос в разделе форума, связанном с русскоязычном списком рассылки: http://www.ldmicj.icu/list.php?21 , либо (рекомендуется) подписаться на рассыку и спросить непосредственно там: http://mailman.nginx.org/mailman/listinfo/nginx-ru]]>
VBart Russian Forum Tue, 14 Aug 2012 08:43:51 -0400
http://www.ldmicj.icu/read.php?20,229622,229622#msg-229622 Строка запроса (no replies) http://www.ldmicj.icu/read.php?20,229622,229622#msg-229622
сайт находиться в директории /usr/local/www/site
root который в server {}, смотрит туда же
в индексе написано header('Location: pages/main');
написан только один location для *.php
когда ввожу в строке браузера site, выдает - site/pages/main (это понятно)

вопрос: как сделать так чтобы при запросе на site в строке было, просто site/ а не site/pages/main

и вопрос ?: при этом же конфиге если php файлу передаются аргументы, как их скрыть в строке запроса.

заранее спасибо.]]>
dobermaster Russian Forum Mon, 13 Aug 2012 03:36:31 -0400
http://www.ldmicj.icu/read.php?20,229501,229501#msg-229501 Ограничение длины строки лога (no replies) http://www.ldmicj.icu/read.php?20,229501,229501#msg-229501
Хотелось бы для одного разрабатываемого проекта логировать тело каждого запроса POST, если тело меньше килобайта, а если больше килобайта, то обрезать до килобайта или в крайнем случае не логировать тело больше килобайта. Можно ли решить такую задачу в Nginx'e?]]>
hide Russian Forum Thu, 09 Aug 2012 06:16:43 -0400
http://www.ldmicj.icu/read.php?20,229404,229404#msg-229404 Nginx Multiple Memcache Servers (Consistent) (no replies) http://www.ldmicj.icu/read.php?20,229404,229404#msg-229404 Сейчас ми пытаемся реализовать задачу с помощью ngx_http_upstream_consistent_hash (http://wiki.nginx.org/HttpUpstreamConsistentHash#consistent_hash)
пытались пример со страницы модуля, а также наш пример.

Nginx conf:

upstream mempool3 {
consistent_hash $request_uri;
server 127.0.0.1:11212;
server 127.0.0.1:11213;
keepalive 10;
}

запись:

<?php
$mem = new Memcached();
$mem->addServer('127.0.0.1','11212',50);
$mem->addServer('127.0.0.1','11213',50);

for($i=0; $i< 100; $i++){
$mem->set('/getmem/'.$i, 'data from '.$i.'<br>');
}

тест на считывание nginx+ssi:

<?php for($i=0; $i<100;$i++){?>
<?php echo $i;?>. <!--#include virtual="/getmem/<?php echo $i;?>" --><br/>
<?php }

результат:
отдача приблизительно половина записей. Если в nginx по очереди указывать все сервера, то видно что php записала все данные правильно.

ENV INFO:
OS: Centos 6.3
NGINX: 1.2.2 (Compiled with ngx_http_upstream_consistent_hash)
PHP: 5.3.15 (memcache.hash_strategy=consistent)
Memcache: 1.4.13]]>
kavabata Russian Forum Tue, 07 Aug 2012 13:10:43 -0400
http://www.ldmicj.icu/read.php?20,229400,229400#msg-229400 Определить время создания файла (no replies) http://www.ldmicj.icu/read.php?20,229400,229400#msg-229400
Есть задача, при запросе http://site.com/pages/good-news-2012-10-03/ узнать время последней модификации индексного файла (index.html) и если оно к примеру больше 10 минут то сделать rewrite на /index.php

Сделать нужно именно средствами nginx.

Подскажите плз. Спасибо.]]>
ametist.php Russian Forum Tue, 07 Aug 2012 12:06:33 -0400
http://www.ldmicj.icu/read.php?20,229374,229374#msg-229374 Исключения для limit_req (no replies) http://www.ldmicj.icu/read.php?20,229374,229374#msg-229374 Подскажите, это вообще возможно?
Заранее спасибо.]]>
skeletor Russian Forum Tue, 07 Aug 2012 03:17:51 -0400
http://www.ldmicj.icu/read.php?20,229295,229295#msg-229295 Заполнение памяти 502 ошибка (no replies) http://www.ldmicj.icu/read.php?20,229295,229295#msg-229295 В логе при обращении к сайту:
2012/08/04 14:43:07 [crit] 1655#0: *89 connect() to unix:/var/run/php-fpm/default.socket failed (2: No such file or directory) while connecting to upstream, client: 178.68.156.238, server: ssss.ru, request: "GET / HTTP/1.1", upstream: "fastcgi://unix:/var/run/php-fpm/default.socket:", host: "ssss.ru"

2012/08/04 14:43:07 [alert] 1655#0: *89 write() to "/var/log/nginx/ssss.ru.log" failed (28: No space left on device) while logging request, client: 178.68.156.238, server: ssss.ru, request: "GET / HTTP/1.1", upstream: "fastcgi://unix:/var/run/php-fpm/default.socket:", host: "ssss.ru"

2012/08/04 14:43:07 [crit] 1655#0: *90 connect() to unix:/var/run/php-fpm/default.socket failed (2: No such file or directory) while connecting to upstream, client: 178.68.156.238, server: ssss.ru, request: "GET /favicon.ico HTTP/1.1", upstream: "fastcgi://unix:/var/run/php-fpm/default.socket:", host: "ssss.ru"

набрал df / :

Filesystem 1K-blocks Used Available Use% Mounted on /dev/xvda2 901308 886108 0 100% /

В чём причина и как это можно правильно вылечить??]]>
Mike13 Russian Forum Sat, 04 Aug 2012 07:12:36 -0400
http://www.ldmicj.icu/read.php?20,229254,229254#msg-229254 Настройка geoip для блокировки определенных стран (1 reply) http://www.ldmicj.icu/read.php?20,229254,229254#msg-229254
http {
...
geoip_country /etc/nginx/geo/GeoIP.dat;
map $geoip_country_code $bad_country {
default 0;
include /etc/nginx/geo/bad_countries;
}
...
}

mysite.conf

server {
listen 80;
server_name .mysite.ru;

if ($bad_country){
return 444;
}
...
}


/etc/nginx/geo/bad_countries
BY 0; # моя страна для проверки

Делаю nginx -t - все ОК
Потом nginx reload но сайт открывается как и прежде :(

Где ошибка?]]>
Fader Russian Forum Thu, 02 Aug 2012 12:43:39 -0400
http://www.ldmicj.icu/read.php?20,229122,229122#msg-229122 подскажите по конфигу nginx для joomla 2.5 (no replies) http://www.ldmicj.icu/read.php?20,229122,229122#msg-229122 Имеется сервер intel i7 920, 8gb ram, ос centos 6.3
Сделал сайт на джумле 2.5 + мост на phpbb

Выложу мой рабочий конфиг нжинкса, можете подсказать допущенные ошибки?

И что еще можно сделать, чтобы ускорить джумлу?

Заранее спасибо

user nginx;
worker_processes 6;
worker_rlimit_nofile 16384;

error_log /var/log/nginx/error.log;

pid /var/run/nginx.pid;
timer_resolution 100ms;

events {
worker_connections 20480;
use epoll;
}

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;
client_max_body_size 100m;
sendfile on;
tcp_nopush on;
tcp_nodelay on;
server_tokens off;
expires max;
gzip on;
gzip_static on;
gzip_vary on;
gzip_comp_level 5;
gzip_proxied any;
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;
gzip_buffers 16 8k;
gzip_disable "MSIE [1-6].(?!.*SV1)";
limit_conn_zone $binary_remote_addr zone=addr:10m;

# Load config files from the /etc/nginx/conf.d directory
include /etc/nginx/conf.d/*.conf;

server {
limit_conn addr 10;
listen 80;
server_name mysite.ru www.mysite.ru;
server_name_in_redirect off;
access_log /var/log/nginx/host.access.log main;
charset utf-8;
root /var/www/mysite.ru;
index index.php index.html index.htm;
allow all;
if ($request_filename ~ /forum(\/?)$){
rewrite ^(.*)$ /forum/main redirect;
}
if ($request_filename ~ /fmbb(\/?)$){
rewrite ^(.*)$ /forum/main redirect;
}
if ($request_filename ~ /fmbb/index.php){
rewrite ^(.*)$ /forum/main?$query_string redirect;
}
if ($request_filename ~ /fmbb/ucp.php){
rewrite ^(.*)$ /forum/user?$query_string redirect;
}
if ($request_filename ~ /fmbb/viewforum.php){
rewrite ^(.*)$ /forum/forum?$query_string redirect;
}
if ($request_filename ~ /fmbb/viewtopic.php){
rewrite ^(.*)$ /forum/topic?$query_string redirect;
}
if ($request_filename ~ /fmbb/memberlist.php){
rewrite ^(.*)$ /forum/members?$query_string redirect;
}
if ($request_filename ~ /fmbb/report.php){
rewrite ^(.*)$ /forum/report?$query_string redirect;
}
if ($request_filename ~ /fmbb/posting.php){
rewrite ^(.*)$ /forum/post?$query_string redirect;
}
if ($request_filename ~ /fmbb/mcp.php){
rewrite ^(.*)$ /forum/moderator?$query_string redirect;
}


# deny running scripts inside writable directories
location ~* /(images|cache|media|logs|tmp)/.*\.(php|pl|py|jsp|asp|sh|cgi)$ {
return 403;
error_page 403 /403_error.html;
}

location / {
root /var/www/mysite.ru;
index index.php index.html index.htm;
try_files $uri $uri/ @joomla;
}


location ~* (/|\.html?|\.feed|\.pdf|\.raw|/[^.]*)$ {
try_files $uri $uri/ @joomla;
}

location ~ \.php$ {
try_files $uri @joomla;
fastcgi_pass unix:/tmp/php-fpm.sock;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include /etc/nginx/fastcgi_params;
}

location ~ \.(php|htm|html)$ {
try_files $uri @joomla;
fastcgi_pass unix:/tmp/php-fpm.sock;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include /etc/nginx/fastcgi_params;
}



location @joomla {
fastcgi_pass unix:/tmp/php-fpm.sock;
fastcgi_param SCRIPT_FILENAME $document_root/index.php;
fastcgi_param QUERY_STRING $query_string;
fastcgi_param REQUEST_METHOD $request_method;
fastcgi_param CONTENT_TYPE $content_type;
fastcgi_param CONTENT_LENGTH $content_length;
fastcgi_param REDIRECT_STATUS 200;
fastcgi_param SCRIPT_NAME /index.php;
fastcgi_param REQUEST_URI $request_uri;
fastcgi_param DOCUMENT_URI $document_uri;
fastcgi_param DOCUMENT_ROOT $document_root;
fastcgi_param SERVER_PROTOCOL $server_protocol;
fastcgi_param GATEWAY_INTERFACE CGI/1.1;
fastcgi_param SERVER_SOFTWARE nginx/$nginx_version;
fastcgi_param REMOTE_ADDR $remote_addr;
fastcgi_param REMOTE_PORT $remote_port;
fastcgi_param SERVER_ADDR $server_addr;
fastcgi_param SERVER_PORT $server_port;
fastcgi_param SERVER_NAME $server_name;

}

location ~ (^/dle/(app/|includes/|lib/|/pkginfo/|var/|report/config.php)|/\.svn/|/.hta.+) {
deny all;
}

location ^~ /drv/ {
root /var/mysite.ru/drv/;
internal;
}

location ^~ /cli/ {
root /var/mysite.ru/cli/;
internal;
}

location ^~ /includes/ {
root /var/mysite.ru/includes/;
internal;
}

location ^~ /language/ {
root /var/mysite.ru/language/;
internal;
}

location ^~ /libraries/ {
root /var/mysite.ru/libraries/;
internal;
}

location ^~ /logs/ {
root /var/mysite.ru/logs/;
internal;
}

location ^~ /tmp/ {
root /var/mysite.ru/tmp/;
internal;
}

location /administrator/ {
fastcgi_pass unix:/tmp/php-fpm.sock;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include /etc/nginx/fastcgi_params;
allow xxx.xxx.xxx.xxx;
deny all;
}


location ~ /\.ht {
deny all;
}

location ~* ^.+\.(jpg|jpeg|gif|png|ico|css|zip|tgz|gz|rar|bz2|doc|xls|exe|pdf|ppt|txt|tar|wav|bmp|rtf|js)$ {
root /var/www/mysite.ru;
access_log off;
expires 7d;
}

location = /favicon.ico {
log_not_found off;
access_log off;
expires 1y;
}
location = /robots.txt {
allow all;
log_not_found off;
access_log off;

}

}
}]]>
Egor Russian Forum Tue, 31 Jul 2012 00:35:45 -0400
http://www.ldmicj.icu/read.php?20,229004,229004#msg-229004 пускать клиентов с "failed" ssl_verify_client optional (no replies) http://www.ldmicj.icu/read.php?20,229004,229004#msg-229004 Хочется спрашивать клиентские сертификаты, но не отбрасывать сразу клиентов с плохими сертификатами.
У большинства клиентов сертификат валидный, с ними все хорошо.
И некоторых клиентов сертификат просроченный, их нужно пускать ограниченно,
проверяя $ssl_client_verify, $ssl_client_s_dn в нужных location.

Сейчас, когда я включаю ssl_verify_client optional, клиенты предоставившие невалидный сертификат сразу получают 400.
Можно ли как-то их допустить, не выключая полностью ssl_verify_client.

Спасибо.]]>
a1exus Russian Forum Thu, 26 Jul 2012 10:34:12 -0400
http://www.ldmicj.icu/read.php?20,228859,228859#msg-228859 Кеширование статического контента - не создается файловый кеш (no replies) http://www.ldmicj.icu/read.php?20,228859,228859#msg-228859 1. nginx.conf
http {
proxy_cache_path /var/cache/nginx levels=2:2 keys_zone=main:32m inactive=1d max_size=128m;
...
## Size Limits
client_body_buffer_size 1k;
client_header_buffer_size 1k;
client_max_body_size 10m;
large_client_header_buffers 4 4k;
connection_pool_size 256;
request_pool_size 4k;
proxy_buffer_size 8k;
proxy_buffers 32 8k;

## Timeouts
client_header_timeout 3m;
client_body_timeout 3m;
keepalive_timeout 75 20;
send_timeout 3m;
....
# Load config files from the /etc/nginx/conf.d directory
include /etc/nginx/conf.d/*.conf;
}

2. Где-то в настройках сервера:
...
client_body_buffer_size 1m;
proxy_buffering on;
proxy_buffer_size 4k;
proxy_buffers 8 32k;
...

# serve static files directly
location ~* ^.+\.(jpg|jpeg|gif|ico|png|svg|zip|gz|bz2?|rar|css|png|js|ico|html|swf|flv)$ {
access_log off;
expires 30d;
log_not_found off;
# Заголовок для проверки попадания
add_header X-test kukareku;
# Защита от раздачи одинаковой куки в кешированном ответе
proxy_hide_header "Set-Cookie";
# Игнорировать параметры кеша заданные бекэндом
proxy_cache main;
proxy_ignore_headers "X-Accel-Expires" "Expires" "Cache-Control";
proxy_cache_min_uses 1;
proxy_cache_valid 1d;
proxy_cache_use_stale updating;
}

Ответ nginx:
Cache-Control:max-age=2592000
Connection:Keep-Alive
Date:Mon, 23 Jul 2012 09:23:12 GMT
Expires:Wed, 22 Aug 2012 09:23:12 GMT
Last-Modified:Fri, 20 Jul 2012 07:45:43 GMT
Proxy-Connection:Keep-Alive
Server:nginx/0.7.67
Via:***
X-test:kukareku

Ответ бекенда:
Cache-Control:max-age=1209600
Connection:Keep-Alive
Date:Mon, 23 Jul 2012 09:28:48 GMT
ETag:"5c60018-7f2a-4c53e1552032e"
Expires:Mon, 06 Aug 2012 09:28:48 GMT
Proxy-Connection:Keep-Alive
Server:Apache/2.2.15 (Fedora)
Via:***

Проблема в том, что при точном попадании запроса в локейшн (наличие X-test:kukareku в ответе nginx) не создаются файлы в директории для кеширования /var/cache/nginx да и по таймингу разницы во времени ответов от бекенда нет.

Посоветуйте, пожалуйста, в чем может быть проблемма]]>
nickko Russian Forum Mon, 23 Jul 2012 05:36:26 -0400
http://www.ldmicj.icu/read.php?20,228824,228824#msg-228824 error: ngx_devel_kit is required to build ngx_iconv; please put it before ngx_iconv. (no replies) http://www.ldmicj.icu/read.php?20,228824,228824#msg-228824 error: ngx_devel_kit is required to build ngx_iconv; please put it before ngx_iconv.
При этом такой опции нет вообще.
FreeBSD 9.0 x86-64, порты свежие.
Откуда эту опцию взять? И почему ее нет в config для порта?]]>
playnet Russian Forum Sat, 21 Jul 2012 15:37:35 -0400
http://www.ldmicj.icu/read.php?20,228726,228726#msg-228726 дублирование url php фреймворке yii (1 reply) http://www.ldmicj.icu/read.php?20,228726,228726#msg-228726 Настроиль чистый nginx без apache ,но почему-то при включенном rewrite
делая ajax запросы url дублируется постоянно и вырастает после каждого запроса.
к примеру был
site.ru/model/article/
после первого ajax запроса станет
site.ru/model/article/model/article
а потом еще
site.ru/model/article/model/article/model/article
вот сама настройка default.conf установлен на fedora 16
server {
listen 80;
server_name SiteName;
server_name_in_redirect off;

charset utf-8;

#access_log logs/host.access.log main;
root /srv/www/SiteName;
location = / { rewrite . /index.php last; }

location / {
#root /usr/share/nginx/html;
#root /srv/www/SiteName;
index index.php index.html index.htm;
#rewrite ^(.*) /index.php?q=$1 last;
#rewrite ^(.*)$ /index.php last;
if (!-e $request-filename)
{
rewrite ^/(.*)$ /index.php?/$1 last;
}
}
location = /robots.txt { if (-f $document_root/robots.txt) { rewrite . /robots.txt; } break; }
location /css/ {
break;
}
location /assets/ { break; }


error_page 404 /404.html;
location = /404.html {
root /usr/share/nginx/html;
}

# redirect server error pages to the static page /50x.html
#
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root /usr/share/nginx/html;
}

# proxy the PHP scripts to Apache listening on 127.0.0.1:80
#
#location ~ \.php$ {
# proxy_pass http://127.0.0.1;
#}

# pass the PHP scripts to FastCGI server listening on 127.0.0.1:9000
#
location ~ \.php$ {
#Vladimir
#include /etc/nginx/fastcgi_params;

try_files $fastcgi_script_name =404;
fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME /srv/www/SiteName$fastcgi_script_name;
include fastcgi_params;

}


# deny access to .htaccess files, if Apache's document root
# concurs with nginx's one
#
#location ~ /\.ht {
# deny all;
#}
location @index {
fastcgi_pass 127.0.0.1:9000;
fastcgi_param SCRIPT_FILENAME /srv/www/SiteName/index.php;
fastcgi_param SCRIPT_NAME /index.php;
fastcgi_param QUERY_STRING q=$uri&$args;
}
}]]>
vladimircape Russian Forum Thu, 19 Jul 2012 09:45:11 -0400
http://www.ldmicj.icu/read.php?20,228677,228677#msg-228677 запрет открытия файлов (1 reply) http://www.ldmicj.icu/read.php?20,228677,228677#msg-228677 vitroot Russian Forum Wed, 18 Jul 2012 12:48:12 -0400 http://www.ldmicj.icu/read.php?20,228665,228665#msg-228665 2 виртуальных хоста с ssl и IE8 (no replies) http://www.ldmicj.icu/read.php?20,228665,228665#msg-228665 Есть 2 виртуал хоста, с разными именами и соотвестственно ключами. При открытии этих сайтов нормальными браузерами все хорошо - каждому сайту отдается его сертификат. Но если заходить с IE8, то вне зависимости от того какой сайт открывают, всегда выдается сертификат первого виртуального хоста, т.е. при открытии одного из виртуальных хостов видим ругань на сертификат. Дальнейшее расследование показало, что нормальные браузеры послылают при Client Hello параметр Extension: server_name, IE такого не делает.
Вопрос - можно ли это победить средсвами nginx или только разносить ssl хосты на разные IP адреса?]]>
sharp777 Russian Forum Wed, 18 Jul 2012 03:11:40 -0400
http://www.ldmicj.icu/read.php?20,228626,228626#msg-228626 nginx: [emerg] unknown directive "server" in /etc/nginx/nginx.conf:9 (8 replies) http://www.ldmicj.icu/read.php?20,228626,228626#msg-228626 worker_processes 1;

error_log /var/log/nginx/error.log warn;
pid /var/run/nginx.pid;


server {
server_name jira.dspdev.local;
access_log /var/log/nginx/jira.log;

location / {
root /var/www/jira.dspdev.local;
index index.htm index.html;
}

location ~* \.(js|css|rdf|xml|ico|txt|gif|jpg|png|jpeg)$ {
root /var/www/jira.dspdev.local;
access_log /var/log/nginx/jira.log;
}
}


server {
server_name wiki.dspdev.local;
access_log /var/log/nginx/wiki.log;

location / {
root /var/www/wiki.dspdev.local;
index index.htm index.html;
}

location ~* \.(js|css|rdf|xml|ico|txt|gif|jpg|png|jpeg)$ {
root /var/www/wiki.dspdev.local;
access_log /var/log/nginx/wiki.log;
}
}
[root@localhost nginx]# /etc/init.d/nginx configtest
nginx: [emerg] unknown directive "server" in /etc/nginx/nginx.conf:9
nginx: configuration file /etc/nginx/nginx.conf test failed


почему server неизвестная директива ? что не так ?]]>
alexxxxander Russian Forum Wed, 18 Jul 2012 06:23:23 -0400
http://www.ldmicj.icu/read.php?20,228622,228622#msg-228622 Nginx как proxy with Confluence & Jira (1 reply) http://www.ldmicj.icu/read.php?20,228622,228622#msg-228622 alexxxxander Russian Forum Wed, 18 Jul 2012 03:34:07 -0400 http://www.ldmicj.icu/read.php?20,228599,228599#msg-228599 Кеширование зарубежного хостинга (1 reply) http://www.ldmicj.icu/read.php?20,228599,228599#msg-228599 Основной вопрос могу я развернуть на российском хостинге nginx который будет передавать запросы на зарубежный хостинг с развернутым apache?
Или же nginx должен быть установлен на том же хостинге что и apache?
Если есть ссылки по подобной конфигурации, скиньте пожалуйста.
Заранее спасибо!]]>
jemone Russian Forum Mon, 16 Jul 2012 03:28:29 -0400
http://www.ldmicj.icu/read.php?20,228388,228388#msg-228388 Nginx localization rewrite (no replies) http://www.ldmicj.icu/read.php?20,228388,228388#msg-228388
Необходимо написать rewrite правила для Английской и Русской версии сайта.
Пускай домен сайта example.com по умолчанию у него Английская локаль.

Если у пользователя в браузере en локаль, то он должен попадать на example.com, если ru локаль, то на ru.example.com.
Для этого я написал следующие правила:

...
location / {
if ($host = 'example.com') {
set $zzz e;
}
if ($http_accept_language ~* "^ru") {
set $zzz "${zzz}ru";
}
if ($zzz = eru) {
rewrite ^/(.*)$ http://ru.example.com/$1 permanent;
}
...
}

Следующие случаи работают прекрасно:
1. юзер с локалью en заходит на example.com
2. юзер с локалью en заходит на ru.example.com
3. юзер с локалью ru заходит на example.com и его редиректит на ru.example.com

Как быть, если юзер с локалью ru хочет зайтина example.com только на английскую версию сайта?
Можно сделать en.example.com и дальше редиректить его на example.com, но в таком случае он снова окажется на ru.example.com.

Как сделать так, чтоб если пользователь с ru локалью выбирал бы en.example.com, его редиректило на example.com, но без выполнения последующего редиректан на ru.example.com?]]>
cackle Russian Forum Sun, 08 Jul 2012 05:43:43 -0400
http://www.ldmicj.icu/read.php?20,228288,228288#msg-228288 Nginx не отдает статику Drupal Imagecache (no replies) http://www.ldmicj.icu/read.php?20,228288,228288#msg-228288
установлен nginx/1.2.1 + php-fpm.

Сайт - Drupal 6.

Дело в том, что в логах постоянно пишутся записи, типа:
ip - - [28/Jun/2012:17:32:56 +0200] "GET /sites/default/files/imagecache/<preset_name>/<image_name>.jpg HTTP/1.0" 200 1009 "-" "Drupal (+http://drupal.org/)"


Т.е. запрос идет не от юзера, а от самого друпала и айпи стоит сервера. Такое ощущение, что уже существующие картинки отдаются не nginx'ом, а друпалом. А т.к. картинок на сайте очень много (на страницах поиска по 200 штук выводится), то лог распухает до огромных размеров. Но тут главная проблема, не в размере лога, а в раздаче картинок.

Часть конфигурации:

...

client_max_body_size 32m;

# for drupal 6: # source http://wiki.nginx.org/NginxHttpCoreModule#try_files
try_files $uri $uri/ @drupal;

# Fighting with ImageCache? This little gem is amazing.
location ~ ^/sites/.*/files/imagecache {
expires max;
try_files $uri @drupal;
}

# only needed for Drupal 6 (or if you absolutely need a named location)
location @drupal {
rewrite ^/(.*)$ /index.php?q=$1 last;
}

# Media: images, video, audio, HTC, WebFonts
location ~* \.(?:jpg|jpeg|gif|png|ico|gz|svg|svgz|ttf|otf|woff|eot|mp4|ogg|ogv|webm)$ {
expires 1M;
access_log off;
add_header Cache-Control "public";
}
...

Т.е. try_files для imagecache настроено, проблем с генерацией картинок нет. Владелец папки www-data, пользователь nginx тоже www-data.

Помогите, пожалуйста, разобраться в чем может быть причина такого количества запросов от друпала? И как можно решить данную проблему?

Буду рад любым подсказкам. Спасибо.]]>
Nikeev Russian Forum Wed, 04 Jul 2012 23:44:59 -0400
http://www.ldmicj.icu/read.php?20,228231,228231#msg-228231 Правило для location (no replies) http://www.ldmicj.icu/read.php?20,228231,228231#msg-228231 Есть правило для location

location ~* /pMA/ {
...
}

Не могу его переделать, что бы оно работало только для картинок.

Например, что бы адрес http://site.ru/pMA/ не обрабатывался, а http://site.ru/pMA/images/image.jpg обработалось правилом.

Спасибо.]]>
greenpeas Russian Forum Tue, 03 Jul 2012 07:15:43 -0400
http://www.ldmicj.icu/read.php?20,228087,228087#msg-228087 не сохраняются файлы кеша NGINX (no replies) http://www.ldmicj.icu/read.php?20,228087,228087#msg-228087
Был сервер на АГАВЕ
характеристики Core 2 duo 2 ядра, RAM 4ГБ

FREBSD 8.2 64, NGINX, ISPmanager

Все прекрасно работало, но пришла пора переезжать на более мощный сервер в Hetzner (Германия)

сейчас сервак такой
Intel Xeon E3-1245 Quad-Core
16 GB DDR3 RAM ECC

FREBSD 8.2 64, NGINX, ISPmanager

Возникла проблема следующего характера.
Настроил NGINX, добавил домены всего 8 штук.

Все файлы кеша NGINX сохраняются в папку
var/tmp/ngin/cache/ИМЯ_ДОМЕНА

для всех 7 доменов из 8 кеш записывается в папки (2 уровня)

а для 1-го папка var/tmp/ngin/cache/ИМЯ_ДОМЕНа_1 всегда пустая

настройки nginx.conf для всех доменов в принципе одинаковые.

У всех 7 доменов суммарная посещалка около 10 тысяч хостов в сутки

а у этого одного около 35-40 тысяч в сутки.

причем он добавлялся самым первым.

Где смотреть, все уже изрыл.
Пробовал его удалить вместе с пользователем, и заново настроить - не помогает]]>
antonio1982 Russian Forum Fri, 29 Jun 2012 03:27:50 -0400
http://www.ldmicj.icu/read.php?20,228042,228042#msg-228042 Несколько вопросов по limit_req (no replies) http://www.ldmicj.icu/read.php?20,228042,228042#msg-228042
limit_req_zone $binary_remote_addr zone=static:16m rate=100r/s;
limit_req_zone $binary_remote_addr zone=dynamic:16m rate=5r/s;
limit_req_zone $binary_remote_addr zone=download:8m rate=2r/s;
limit_req_zone $binary_remote_addr zone=cache:8m rate=200r/s;

server {
limit_req zone=static burst=10 nodelay;
...
location / {
limit_req zone=dynamic burst=5 nodelay;
proxy_pass ...
...
}

location = / {
limit_req zone=cache burst=50 nodelay;
proxy_pass ...
...
proxy_cache wholepage;
proxy_cache_valid 200 301 302 304 1h;
proxy_ignore_headers "Cache-Control" "Expires";
...
}

location = /about.html {
limit_req zone=cache burst=50 nodelay;
proxy_pass ...
...
proxy_cache wholepage;
proxy_cache_valid 200 301 302 304 1h;
proxy_ignore_headers "Cache-Control" "Expires";
...
}

location @apache {
limit_req zone=dynamic burst=5 nodelay;
proxy_pass ...
...
}

location ~* ^/file\- {
limit_req zone=download burst=1 nodelay;
try_files $uri @apache;
}
}

Собственно вопрос к location ~* ^/file\- какой лимит будет применен? Т.е. с какой скоростью будут передаваться через этот location запросы на @apache?]]>
ALex_hha Russian Forum Thu, 28 Jun 2012 04:52:21 -0400
http://www.ldmicj.icu/read.php?20,228003,228003#msg-228003 перенос виртуального хоста в поддиректорию (no replies) http://www.ldmicj.icu/read.php?20,228003,228003#msg-228003
Нужно вынести community.example.com в основной вхост - example.com/community. При этом нужно что б они оставались в разных директориях. Но получается проблема с локацией ~ \.php$ - $fastcgi_script_name туда передается с /community/... Скрипты там разные, захардкодить какой-то один не вариант.]]>
jekakm Russian Forum Wed, 27 Jun 2012 11:10:41 -0400
http://www.ldmicj.icu/read.php?20,227992,227992#msg-227992 Rewrite 400k url (no replies) http://www.ldmicj.icu/read.php?20,227992,227992#msg-227992 Необходимо организовать rewrite ~ 400k url, можно ли такое организовать с помошью директивы map?]]> vadv Russian Forum Wed, 27 Jun 2012 08:56:03 -0400 http://www.ldmicj.icu/read.php?20,227969,227969#msg-227969 "Железное" отображение кустомных ошибок (no replies) http://www.ldmicj.icu/read.php?20,227969,227969#msg-227969 error_page 400 402 403 404 405 406 408 409 410 411 412 413 414 415 416 494 495 496 497 500 501 502 503 504 507 /50x.html;
Во всех location прописал путь к файлу, запрашиваемого по /50x.html
Однако при переходе на адрес "http://localhost/%%%" отображаются стандартные HTML nginx. Понятно, что при возникновении ошибки nginx просто не доходит до location, возможно ли как-то прописать глобальный location, чтобы не встраивать свои HTML в исходный код nginx?

И еще хотелось бы отображать свой HTML при коде 401. Это возможно?]]>
kay Russian Forum Wed, 27 Jun 2012 00:18:38 -0400
http://www.ldmicj.icu/read.php?20,227903,227903#msg-227903 Nginx Location Fail (1 reply) http://www.ldmicj.icu/read.php?20,227903,227903#msg-227903 server {
....
location /admin {
allow 1.1.1.1;
deny all;
}
...
}

И такая тоже запрещает всем:
location /admin { }

Хотелось, чтобы доступ в админку был только по одному ip адресу.]]>
BashOrgRu Russian Forum Tue, 26 Jun 2012 03:28:29 -0400
http://www.ldmicj.icu/read.php?20,227865,227865#msg-227865 Nginx, php5-fpm, upstream backend - No input file specified. (no replies) http://www.ldmicj.icu/read.php?20,227865,227865#msg-227865
Имеется сервер (Ubuntu 10.04 LTS Lucid Lynx (32) c рут доступом.
В качестве веб-сервера установлен Nginx, php работает на php5-fpm (fastcgi upstream backend), без участия апача.
Основные файлы конфигурации ниже:

nginx.conf

user www-data;
worker_processes 8;
error_log /webcfgs/error.log;
pid /var/run/nginx.pid;
events {
worker_connections 1024;
}
http {
include /etc/nginx/mime.types;
client_max_body_size 100m;
access_log /var/log/nginx/access.log;
sendfile on;
keepalive_timeout 65;
tcp_nodelay on;
gzip on;
gzip_min_length 1000;
gzip_proxied any;
gzip_types text/plain ext/html text/xml application/xml application/x-javascript text/javascript text/css text/json;
gzip_disable "msie6";
gzip_comp_level 8;
charset utf-8;
include /etc/nginx/conf.d/*.conf;
include /etc/nginx/sites-enabled/*;
}

Виртуальный хост

upstream backend-fntrsh {server unix:/var/run/php5-fntrsh.sock;}
server {
listen faintrush.eu;
server_name faintrush.eu www.faintrush.eu;
root /web/fntrsh/public;
access_log /web/fntrsh/log/access.log;
error_log /web/fntrsh/log/error.log;
rewrite_log on;

location = / {
index index.php index.html;
}

location ~ \.php$ {
include fastcgi_params;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
fastcgi_pass backend-fntrsh;
fastcgi_intercept_errors on;
}
location ~ /\.ht {
deny all;
}
}

server {
listen faintrush.eu;
server_name ~^(.*)\.faintrush.eu;
root /web/fntrsh/sub/$1;
access_log /web/fntrsh/log/access.log;
error_log /web/fntrsh/log/error.log;
location / {
index index.php index.html;
}

location ~ \.php$ {
include fastcgi_params;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
fastcgi_pass backend-fntrsh;
fastcgi_intercept_errors on;
}

}

fastcgi_params

fastcgi_param QUERY_STRING $query_string;
fastcgi_param REQUEST_METHOD $request_method;
fastcgi_param CONTENT_TYPE $content_type;
fastcgi_param CONTENT_LENGTH $content_length;

fastcgi_param SCRIPT_FILENAME $request_filename;
fastcgi_param SCRIPT_NAME $fastcgi_script_name;
fastcgi_param REQUEST_URI $request_uri;
fastcgi_param DOCUMENT_URI $document_uri;
fastcgi_param DOCUMENT_ROOT $document_root;
fastcgi_param SERVER_PROTOCOL $server_protocol;

fastcgi_param GATEWAY_INTERFACE CGI/1.1;
fastcgi_param SERVER_SOFTWARE nginx/$nginx_version;

fastcgi_param REMOTE_ADDR $remote_addr;
fastcgi_param REMOTE_PORT $remote_port;
fastcgi_param SERVER_ADDR $server_addr;
fastcgi_param SERVER_PORT $server_port;
fastcgi_param SERVER_NAME $server_name;

#fastcgi_param HTTPS $https;

# PHP only, required if PHP was built with --enable-force-cgi-redirect
fastcgi_param REDIRECT_STATUS 200;

[b]php5-fpm[/b] процесс:

[fntrsh]
listen = /var/run/php5-fntrsh.sock
listen.mode = 0666
user = fntrsh
group = fntrsh
chdir = /web/fntrsh
php_admin_value[upload_tmp_dir] = /web/fntrsh/temp
php_admin_value[date.timezone] = Europe/Moscow
pm = dynamic
pm.max_children = 10
pm.start_servers = 2
pm.min_spare_servers = 2
pm.max_spare_servers = 4

php.ini

[PHP]

engine = On
short_open_tag = On
asp_tags = Off
precision = 14
y2k_compliance = On
output_buffering = 4096
zlib.output_compression = Off
implicit_flush = Off
unserialize_callback_func =
serialize_precision = 100
allow_call_time_pass_reference = Off
safe_mode = Off
safe_mode_gid = Off
safe_mode_include_dir =
safe_mode_exec_dir =
safe_mode_allowed_env_vars = PHP_
safe_mode_protected_env_vars = LD_LIBRARY_PATH
open_basedir = /web
disable_functions = exec,passthru,shell_exec,system,proc_open,popen,curl_multi_exec,parse_ini_file,show_source
disable_classes =
expose_php = On
max_execution_time = 30
max_input_time = 60
memory_limit = 128M
error_reporting = E_ALL & ~E_DEPRECATED
display_errors = Off
display_startup_errors = Off
log_errors = On
log_errors_max_len = 1024
ignore_repeated_errors = Off
ignore_repeated_source = Off
report_memleaks = On
track_errors = Off
html_errors = Off
variables_order = "GPCS"
request_order = "GP"
register_globals = Off
register_long_arrays = Off
register_argc_argv = Off
auto_globals_jit = On
post_max_size = 100M
magic_quotes_gpc = Off
magic_quotes_runtime = Off
magic_quotes_sybase = Off
auto_prepend_file =
auto_append_file =
default_mimetype = "text/html"
doc_root =
user_dir =
enable_dl = Off
cgi.fix_pathinfo = 0
file_uploads = On
upload_max_filesize = 100M
max_file_uploads = 20/allow-url-fopen
allow_url_fopen = On
allow_url_include = Off
default_socket_timeout = 60

[Date]

[filter]

[iconv]

[intl]

[sqlite]

[sqlite3]

[Pcre]

[Pdo]

[Pdo_mysql]

pdo_mysql.cache_size = 2000
pdo_mysql.default_socket=

[Phar]

[Syslog]

define_syslog_variables = Off

[mail function]

SMTP = localhost
smtp_port = 25

[SQL]

sql.safe_mode = Off

[ODBC]

odbc.allow_persistent = On

odbc.check_persistent = On

odbc.max_persistent = -1

odbc.max_links = -1

odbc.defaultlrl = 4096

odbc.defaultbinmode = 1

[Interbase]

ibase.allow_persistent = 1

ibase.max_persistent = -1

ibase.max_links = -1

ibase.timestampformat = "%Y-%m-%d %H:%M:%S"

ibase.dateformat = "%Y-%m-%d"

ibase.timeformat = "%H:%M:%S"

[MySQL]

mysql.allow_local_infile = On

mysql.allow_persistent = On

mysql.cache_size = 2000

mysql.max_persistent = -1

mysql.max_links = -1

mysql.default_port =

mysql.default_socket =

mysql.default_host =

mysql.default_user =

mysql.default_password =

mysql.connect_timeout = 60

mysql.trace_mode = Off

[MySQLi]

mysqli.max_persistent = -1

mysqli.allow_persistent = On

mysqli.max_links = -1

mysqli.cache_size = 2000

mysqli.default_port = 3306

mysqli.default_socket =

mysqli.default_host =

mysqli.default_user =

mysqli.default_pw =

mysqli.reconnect = Off

[mysqlnd]

mysqlnd.collect_statistics = On

mysqlnd.collect_memory_statistics = Off

[OCI8]

[PostgresSQL]

pgsql.allow_persistent = On

pgsql.auto_reset_persistent = Off

pgsql.max_persistent = -1

pgsql.max_links = -1

pgsql.ignore_notice = 0

pgsql.log_notice = 0

[Sybase-CT]

sybct.allow_persistent = On

sybct.max_persistent = -1

sybct.max_links = -1

sybct.min_server_severity = 10

sybct.min_client_severity = 10


[bcmath]

bcmath.scale = 0

[browscap]

[Session]

session.save_handler = files

session.use_cookies = 1

session.use_only_cookies = 1

session.name = PHPSESSID

session.auto_start = 0

session.cookie_lifetime = 0

session.cookie_path = /

session.cookie_domain =

session.cookie_httponly =

session.serialize_handler = php

session.gc_probability = 1

session.gc_divisor = 1000

session.gc_maxlifetime = 1440

session.bug_compat_42 = Off

session.bug_compat_warn = Off

session.referer_check =

session.entropy_length = 0

session.cache_limiter = nocache

session.cache_expire = 180

session.use_trans_sid = 0

session.hash_function = 0

session.hash_bits_per_character = 5

url_rewriter.tags = "a=href,area=href,frame=src,input=src,form=fakeentry"

[MSSQL]
mssql.allow_persistent = On

mssql.max_persistent = -1

mssql.max_links = -1

mssql.min_error_severity = 10

mssql.min_message_severity = 10

mssql.compatability_mode = Off


[Assertion]

[COM]

[mbstring]

[gd]

[exif]

[Tidy]

tidy.clean_output = Off

[soap]

soap.wsdl_cache_enabled=1

soap.wsdl_cache_dir="/tmp"

soap.wsdl_cache_ttl=86400

soap.wsdl_cache_limit = 5

[sysvshm]

[ldap]

ldap.max_links = -1

[mcrypt]

[dba]

Пути в конфигах рабочие, статик html обрабатывается нормально, простейшая php страничка с кодом

<?php

phpinfo();

?>

выдает [b]No input file specified.[/b]
Лог ошибок (error_log в nginx) на этот счет пустует.
Нашел где-то что если туда-же вставить fastcgi_intercept_errors on; то php сам будет выдавать причину ошибки, но что-то я не понял куда-оно выводится.

В чем может быть проблема?
За помощь спасибо заранее.]]>
FaintRush Russian Forum Mon, 25 Jun 2012 11:18:59 -0400
http://www.ldmicj.icu/read.php?20,227714,227714#msg-227714 worker_processes vs worker_connections (and keepalive) (no replies) http://www.ldmicj.icu/read.php?20,227714,227714#msg-227714 Математика проста и очевидна, однозначных ответов на форуме и в интернете не нашел. Хочу попросить совета, имеем связку nginx+php-fpm+memcached:

- Linux hostname 2.6.32-220.13.1.el6.x86_64 #1 SMP Tue Apr 17 15:16:22 CDT 2012 x86_64 x86_64 x86_64 GNU/Linux

- $ cat /proc/cpuinfo |grep process| wc -l
16

- $ cat /proc/meminfo
MemTotal: 16400716 kB
MemFree: 7201000 kB

- $ nginx -V
nginx version: nginx/1.2.1
built by gcc 4.4.4 20100726 (Red Hat 4.4.4-13) (GCC)
TLS SNI support enabled
configure arguments: --prefix=/etc/nginx/ --sbin-path=/usr/sbin/nginx --conf-path=/etc/nginx/nginx.conf --error-log-path=/var/log/nginx/error.log --http-log-path=/var/log/nginx/access.log --pid-path=/var/run/nginx.pid --lock-path=/var/run/nginx.lock --http-client-body-temp-path=/var/cache/nginx/client_temp --http-proxy-temp-path=/var/cache/nginx/proxy_temp --http-fastcgi-temp-path=/var/cache/nginx/fastcgi_temp --http-uwsgi-temp-path=/var/cache/nginx/uwsgi_temp --http-scgi-temp-path=/var/cache/nginx/scgi_temp --user=nginx --group=nginx --with-http_ssl_module --with-http_realip_module --with-http_addition_module --with-http_sub_module --with-http_dav_module --with-http_flv_module --with-http_mp4_module --with-http_gzip_static_module --with-http_random_index_module --with-http_secure_link_module --with-http_stub_status_module --with-mail --with-mail_ssl_module --with-file-aio --with-ipv6 --with-cc-opt='-O2 -g'

- $ ulimit -a
core file size (blocks, -c) 0
data seg size (kbytes, -d) unlimited
scheduling priority (-e) 0
file size (blocks, -f) unlimited
pending signals (-i) 126954
max locked memory (kbytes, -l) 64
max memory size (kbytes, -m) unlimited
open files (-n) 1024
pipe size (512 bytes, -p) 8
POSIX message queues (bytes, -q) 819200
real-time priority (-r) 0
stack size (kbytes, -s) 10240
cpu time (seconds, -t) unlimited
max user processes (-u) 1024
virtual memory (kbytes, -v) unlimited
file locks (-x) unlimited


1) Однако, что лучше увеличивать worker_processes или worker_connections?
В среднем сейчас до 5K соединений, но со временем идет рост.

2) Как подобрать оптимальное значение keepalive для memcached (memcached -d -p 11211 -u memcached -m 2048 -c 1024)
upstream memcached_backend {
server 127.0.0.1:11211;
keepalive 32;
}


Спасибо.]]>
Rad Russian Forum Wed, 20 Jun 2012 02:28:57 -0400
http://www.ldmicj.icu/read.php?20,227691,227691#msg-227691 разбираюсь с root (1 reply) http://www.ldmicj.icu/read.php?20,227691,227691#msg-227691
Если прописан location, там root и proxy_pass, то получаем что-то типа try_files $1 @proxy_pass?
Если root прописан в секции server, то сначала пытаемся отдать файл, и при неуспехе перебираем location?]]>
playnet Russian Forum Mon, 02 Jul 2012 13:11:25 -0400
Žɳ1005app