Configuration problem

Vladimir Shiray vlad at kbb1.com
Mon Jul 23 15:23:01 MSD 2007


Igor Sysoev wrote:
> On Mon, Jul 23, 2007 at 01:30:30PM +0300, Vladimir Shiray wrote:
>
>   
>> Внизу приведен конфигурационный файл.
>> Тестировалось на разных версиях: 0.5.20, 0.5.28,  0.5.29
>>
>> При обращении через HTTPS все работает нормально.
>> А обращения на нормальный HTTP для последнего "server"
>> посылаются на 443 порт.
>>
>> Если поменять местами в конфиге, две последние группы
>> настроек "server", то получаем, что HTTP начинает работать
>> как положенно, а  HTTPS посылается на порт 80.
>>
>>
>> -----------------------------
>>
>> #user  nobody;
>> worker_processes  3;
>> working_directory /var/nginx;
>>
>> #error_log  logs/error.log;
>> #error_log  logs/error.log  notice;
>> #error_log  logs/error.log  info;
>>
>> #pid        logs/nginx.pid;
>>
>> events {
>>    worker_connections  500;
>> }
>>
>> http {
>>    include       conf/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  logs/access.log  main;
>>
>>    keepalive_timeout  75;
>>    proxy_read_timeout 120;
>>    client_max_body_size 32m;
>>    optimize_server_names off;
>>    send_timeout 90;
>>
>>    server {
>>        listen       80;
>>
>>        location / {
>>                proxy_pass  http://62.219.8.114;
>>                proxy_set_header  Host  $http_host;
>>                proxy_set_header  X-Forwarded-For  $remote_addr;
>>        }
>>    }
>>
>>    server {
>>        listen       443;
>>        server_name  www.kabbalah.info kabbalah.info;
>>
>>        access_log  logs/kabbalah.info-ssl.log  main;
>>        error_log   logs/kabbalah.info-ssl-error.log;
>>
>>        ssl                  on;
>>        ssl_certificate      /usr/local/nginx/ssl/www.kabbalah.info.crt;
>>        ssl_certificate_key  /usr/local/nginx/ssl/www.kabbalah.info.key;
>>        ssl_session_cache    shared:SSL:10m;
>>        ssl_session_timeout  10m;
>>
>>        location / {
>>                proxy_pass  https://64.40.103.100;
>>                proxy_set_header  Host  $http_host;
>>                proxy_set_header  X-Forwarded-For  $remote_addr;
>>        }
>>    }
>>
>>    server {
>>        listen       80;
>>        server_name  www.kabbalah.info kabbalah.info;
>>
>>        access_log  logs/kabbalah.info-access.log  main;
>>        error_log   logs/kabbalah.info-error.log;
>>
>>        location / {
>>            proxy_pass  http://64.40.103.100;
>>            proxy_set_header  Host  $http_host;
>>            proxy_set_header  X-Forwarded-For  $remote_addr;
>>        }
>>    }
>>
>> }
>>     
>
> А если явно указать порты в proxy_pass:
>
> proxy_pass  https://64.40.103.100:443;
> и
> proxy_pass  http://64.40.103.100:80;
>
> ?
>
> А какой смысл проксировать https на https и тот же сайт http на http ?
>
>   
Если явно указать, то работает.
Но все работает и в случае, если не специфицировать порт в proxy_pass, а 
указать разные IP
(если конечно их больше одного на backend сервере)

Из обычного HTTP  я убрал небольшой кусок конфига, который проксирует на 
совсем другой
удаленный сервер. Это уменьшило пример конфига, ну и заодно скрыло смысл 
... :)
Но тестирование проводилось именно на том конфиге, что я привел в письме.

Сходу задам еще небольшой вопрос. Насколько хорошо работает такая схема,
если reverse proxy и backend расположенны в совершенно разных "местах".
Пока я  проблем особых не наблюдал.  Волнует вопрос, как будут 
обрабатываться
достаточные большие uploads (ну хотя бы в десятки мегабайт).











More information about the nginx-ru mailing list