Nginx-ru mailing list archive (nginx-ru@sysoev.ru)
[Date Prev ][Date Next ][Thread Prev ][Thread Next ][Date Index ][Thread Index ]
Re: Configuration problem
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 (ну хотя бы в десятки мегабайт).