Re: Помогите: m.domain.ru - m.domain.ru/m, но...

2013-06-25 Пенетрантность PbIXTOP
Мне кажется, что надо писать всетаки так как в первом варианте, только надо
учесть что все запросы будут отдаваться в jetty и деректива root теряет
смысл

я бы попробовал изменить

 if ($host = m.domain.ru) {
 set $subdomain m;
 }

на 

 if ($host = m.domain.ru) {
 set $subdomain /m;
 }

и

 location / {
  proxy_pass  http://127.0.0.1:8080/$subdomain;
  proxy_set_headerX-Real-IP $remote_addr;
  proxy_set_headerX-Forwarded-For
$proxy_add_x_forwarded_for;
  proxy_set_headerHost $http_host;
  proxy_cache off;
  proxy_redirect off;
 }

на

 location / {
  proxy_pass http://127.0.0.1:8080$subdomain;
  proxy_set_headerX-Real-IP $remote_addr;
  proxy_set_headerX-Forwarded-For
$proxy_add_x_forwarded_for;
  proxy_set_headerHost $http_host;
  proxy_cache off;
  proxy_redirect off;
 }

также надо не забывать, что указание в proxy_pass $uri, на jetty не будет
передаваться оригинальный $uri





point212 Wrote:
---
 Добрый день. 
 Не могу добиться от nginx казалось бы простой вещи.
 Есть nginx, и есть jetty за ним.
 Нужно чтобы пользователь заходил на URL m.domain.ru, а jetty думал что
 пришли по URL m.domain.ru/m. При этом в адресной строке пользователя
 /m не отображалось.
 
 Вот текущий конфиг:
 
 nginx.conf
 =
 
 ...
 
 server {
 server_name domain.ru *.domain.ru;
 set $subdomain ;
 if ($host = m.domain.ru) {
 set $subdomain m;
 }
 root   /opt/jetty/webapps/root/WEB-INF/application/;
 location / {
  proxy_pass 
 http://127.0.0.1:8080/$subdomain;
  proxy_set_headerX-Real-IP $remote_addr;
  proxy_set_headerX-Forwarded-For
 $proxy_add_x_forwarded_for;
  proxy_set_headerHost $http_host;
  proxy_cache off;
  proxy_redirect off;
 }
 }
 
 ...
 
 
 
 Были и другие варианты конфигурации. 
 Например вот такой:
 ...   
server {
   server_name ~^(.*)\.domain\.ru$;
   set $subdomain $1;
   root   /opt/jetty/webapps/root/WEB-INF/application/;
   location / {
proxy_pass  http://127.0.0.1:8080/$subdomain;
 proxy_set_headerX-Real-IP $remote_addr;
 proxy_set_headerX-Forwarded-For
 $proxy_add_x_forwarded_for;
 proxy_set_headerHost $host;
 proxy_cache off;
 proxy_redirect off;
}
}
 ...
 
 При попытке входа на m.domain.ru выдается ошибка 404, а на domain.ru
 грузится сайт, но без всей статики (подозреваю что это ошибка
 бэкэнда). Не понятно как именно переписывается URL, но явно не так,
 как я ожидаю. 
 Как заставить nginx писать в логи всё, что происходит?
 Логгирование настроено вот так:
 
 ...
 error_log  /var/log/nginx/error.log  info;
 
 http {
 ...
 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;
 rewrite_log on;
  
}
 ...
 
 
 
 
 nginx такой:
 nginx version: nginx/1.5.1
 built by gcc 4.4.7 20120313 (Red Hat 4.4.7-3) (GCC)
 TLS SNI support enabled
 configure arguments: --prefix=/opt/nginx --user=nginx --group=nginx
 --with-poll_module --with-file-aio --with-http_ssl_module
 --with-http_spdy_module --with-http_realip_module
 --with-http_addition_module --with-http_image_filter_module
 --with-http_geoip_module --with-http_sub_module --with-http_dav_module
 --with-http_flv_module --with-http_mp4_module
 --with-http_gzip_static_module --with-http_stub_status_module
 --with-pcre

Posted at Nginx Forum: 
http://forum.nginx.org/read.php?21,240295,240321#msg-240321

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

Re: В логах nginx пишет вместо 127.0.0.1 ::ffff:127.0.0.1

2013-06-25 Пенетрантность maxim88
Все заработало. Спасибо!
Вот конфиг:

###
server {
# Default server block blacklisting all unconfigured access
listen [::]:8080 default_server ipv6only=on;
listen *:8080 default_server;
server_name _;
return 444;
}

server {
# Configure the domain that will run WordPress
server_name www.server.com server.com;
# listen [::]:8080 deferred;
listen *:8080 deferred;
port_in_redirect off;
server_tokens off;
autoindex off;
###

А, что именно там не так с ядром и glibc?

Posted at Nginx Forum: 
http://forum.nginx.org/read.php?21,240309,240326#msg-240326

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

Re: Nginx редиректит (301) с добавлением слэша

2013-06-25 Пенетрантность wilful
http://nginx.org/ru/docs/http/ngx_http_core_module.html#try_files
Я не нашел в описании директивы указание на 301-й редирект.
Не могли бы вы более подробно написать откуда он? 
Я только вижу что исходя из $uri/ сервер находит папку, т.е. как я понимаю
слэш тут используется для обозначения того, что ищется папка, а не файл.

Спасибо.

barut Wrote:
---
 Доброго времени суток.
 
 Обратие внимание на вашу директиву:
 
   try_files $uri $uri/ @fetch;
 
 
 On 25.06.2013 14:22, wilful wrote:
  Доброго дня.
 
  Не могу понять откуда берётся внутренний редирект такого вида:
  $ wget -O/dev/null http://site.local/folder
  
 
 
  --2013-06-25 16:01:59--  http://site.local/folder
  
 
 
  ---
  HTTP-запрос отправлен. Ожидание ответа... 301 Moved Permanently
  
 
 
  Адрес: http://site.local/folder/ [переход]
  
 
 
  --2013-06-25 16:01:59--  http://site.local/folder/
  
 
 
  Повторное использование соединения с site.local:80.
  
 
 
  ---
 
  Если использовать простой location:
  location / {
   include /etc/nginx/conf-available/backend-httpd;
  }
  То редиректа не происходит.
 
  Если конфигурацию немного усложнить, то он появляется:
  location @fetch {
   include /etc/nginx/conf-available/backend-httpd;
  }
location / {
try_files $uri $uri/ @fetch;
location ~ \.(php|php5)$ {
include /etc/nginx/conf-available/backend-httpd;
try_files $uri $uri/ @fetch;
}
}
 
  Возникает только, если папка folder существует.
 
  Posted at Nginx Forum:
 http://forum.nginx.org/read.php?21,240329,240329#msg-240329
 
  ___
  nginx-ru mailing list
  nginx-ru@nginx.org
  http://mailman.nginx.org/mailman/listinfo/nginx-ru
 
 ___
 nginx-ru mailing list
 nginx-ru@nginx.org
 http://mailman.nginx.org/mailman/listinfo/nginx-ru

Posted at Nginx Forum: 
http://forum.nginx.org/read.php?21,240329,240336#msg-240336

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

Re: Nginx редиректит (301) с добавлением слэша

2013-06-25 Пенетрантность Maxim Dounin
Hello!

On Tue, Jun 25, 2013 at 11:30:46AM -0400, wilful wrote:

 http://nginx.org/ru/docs/http/ngx_http_core_module.html#try_files
 Я не нашел в описании директивы указание на 301-й редирект.
 Не могли бы вы более подробно написать откуда он? 
 Я только вижу что исходя из $uri/ сервер находит папку, т.е. как я понимаю
 слэш тут используется для обозначения того, что ищется папка, а не файл.

Если для обработки запрошеного ресурса используется модуль отдачи 
статики, и запрошенный ресурс оказывается каталогом - то nginx 
возвращает 301 с добавлением /.

-- 
Maxim Dounin
http://nginx.org/en/donation.html

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

Re: В логах nginx пишет вместо 127.0.0.1 ::ffff:127.0.0.1

2013-06-25 Пенетрантность Vadim A. Misbakh-Soloviov
 А, что именно там не так с ядром и glibc?

Ну, это надо спрашивать что они там мутят в Canonical, ибо у меня
Hardened ядро (vanilla + grsecurity + PaX) уже очень давно (много
релизов назад) само переделывает IPv6-mapped IPv4-адреса (в смысле, те,
которые пришли на IPv6-сокет) в обычные, например. А у Вас, вот, в
убунте, почему-то не хочет.



signature.asc
Description: OpenPGP digital signature
___
nginx-ru mailing list
nginx-ru@nginx.org
http://mailman.nginx.org/mailman/listinfo/nginx-ru

Re: Регулярки для map

2013-06-25 Пенетрантность ad...@sysadmins.el.kg
Благодарю за помощь с первой регуляркой - это как раз то, что доктор 
прописал. А вот во втором случае встроенными переменными не обойтись, 
поскольку указанный мной url


http(s)://test.local/(site([1-9]))

не является переданным от клиента (иначе проблемы №2 не было бы вообще). 
Данная строка изымается nginx'ом из бд посредством модуля ngx_postgres 
исходя из того, что вернет как раз-таки та самая первая регулярка. Далее 
ее нужно раздробить на 3 части и если $протокол = http://, то 
спроксировать на $домен, если конечный сайт в подпапке - добавить $путь 
к $request_uri, если же $протокол = https:// - тогда просто сделать 
редирект. Вот как-то так у меня задача поставлена.



25.06.2013 17:53, Kron пишет:

1.

map $request_uri $num {
~*/pages/Test/(?n\d+) $n;
}

2.

http://nginx.org/ru/docs/http/ngx_http_core_module.html
читать про встроенные переменные

25.06.2013, 11:31, ad...@sysadmins.el.kg ad...@sysadmins.el.kg:


  Доброго всем!

  Помогите плз с регулярками для map'ов.

  Имеется строка типа:
https://www.facebook.com/pages/Test/123456789123456?sk=app_987654321987654
  которая приходит как реферал. Нужно получить из нее первый блок цифр -
  123456789123456.

  Также имеется строка http(s)://test.local/(site([1-9])) которую мне
  нужно разбить на 3 части - протокол, домен, uri. То есть получить
  отдельно http(s)://, test.local и /(site([1-9])).

  Только что-то я не совсем понимаю как их составлять... :-[

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

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


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