Re: Помогите: m.domain.ru - m.domain.ru/m, но...
Мне кажется, что надо писать всетаки так как в первом варианте, только надо учесть что все запросы будут отдаваться в 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
Все заработало. Спасибо! Вот конфиг: ### 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) с добавлением слэша
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) с добавлением слэша
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
А, что именно там не так с ядром и 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
Благодарю за помощь с первой регуляркой - это как раз то, что доктор прописал. А вот во втором случае встроенными переменными не обойтись, поскольку указанный мной 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