Nginx-ru mailing list archive (nginx-ru@sysoev.ru)
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: comet бэкенды и location /
On Tue, Oct 25, 2011 at 05:23:13AM -0400, igor.goncharenko wrote:
> Hi!
>
> Есть у меня несколько comet бэкендов,
>
> upstream comet_be {
> server comet_be1 :7045;
> server comet_be2 :7045;
> }
>
> upstream main_be {
> server main_be1:80;
> }
>
>
> #root
>
> location /
> {
> proxy_pass http://main_be;
> }
>
>
> #описаны как:
>
> location ~* ^/cm-.* {
Вот это можно заменить так:
- location ~* ^/cm-.* {
+ location ^~ /cm- {
Или, если больше нет locaiton'ов с регулярными выражениями, то так:
location /cm- {
> proxy_pass http://comet_be;
>
> server_name_in_redirect off;
> proxy_redirect off;
> proxy_set_header Host $host;
> proxy_set_header X-Real-IP $remote_addr;
> proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
> proxy_set_header X-Forwarded-Protocol $scheme;
> proxy_next_upstream error timeout;
>
> proxy_max_temp_file_size 0;
>
> client_max_body_size 10m;
> client_body_buffer_size 128k;
>
> proxy_buffering off;
> }
>
> Так вот. Запрос обрабатывается в location ~*
> ^/cm-.*, однако, если оба комет сервера
> лежат, запрос после 2-х connection refused,
> уходит на location / чего бы не хотелось (nginx
> 1.0.8). То-есть, получается что location не
> валидный и nginx использует /. Однако, как
> мне просто отдать клиенту ошибку и не
> пытаться использовать / location?
>
>
> access.log ($upstream_addr):
> 10.0.0.10:7045 : 10.0.0.11:7045 : 10.0.0.254:80
Скорее всего, где-то стоит proxy_intercept_errors on:
http://nginx.org/ru/docs/http/ngx_http_proxy_module.html#proxy_intercept_errors
--
Игорь Сысоев
http://sysoev.ru
_______________________________________________
nginx-ru mailing list
nginx-ru@xxxxxxxxx
http://mailman.nginx.org/mailman/listinfo/nginx-ru
|