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

PbIXTOP nginx-forum at nginx.us
Tue Jun 25 06:51:44 UTC 2013


Мне кажется, что надо писать всетаки так как в первом варианте, только надо
учесть что все запросы будут отдаваться в 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_header        X-Real-IP $remote_addr;
>              proxy_set_header        X-Forwarded-For
$proxy_add_x_forwarded_for;
>              proxy_set_header        Host $http_host;
>              proxy_cache off;
>              proxy_redirect off;
>         }

на

         location / {
              proxy_pass             http://127.0.0.1:8080$subdomain;
              proxy_set_header        X-Real-IP $remote_addr;
              proxy_set_header        X-Forwarded-For
$proxy_add_x_forwarded_for;
              proxy_set_header        Host $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_header        X-Real-IP $remote_addr;
>              proxy_set_header        X-Forwarded-For
> $proxy_add_x_forwarded_for;
>              proxy_set_header        Host $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_header        X-Real-IP $remote_addr;
>             proxy_set_header        X-Forwarded-For
> $proxy_add_x_forwarded_for;
>             proxy_set_header        Host $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