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