ПРОЕКТЫ 


  АРХИВ 


Apache-Talk @lexa.ru 

Inet-Admins @info.east.ru 

Filmscanners @halftone.co.uk 

Security-alerts @yandex-team.ru 

nginx-ru @sysoev.ru 


  СТАТЬИ 


  ПЕРСОНАЛЬНОЕ 


  ПРОГРАММЫ 



ПИШИТЕ
ПИСЬМА












     АРХИВ :: nginx-ru
Nginx-ru mailing list archive (nginx-ru@sysoev.ru)

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: proxy_pass + https



On Sun, 18 Dec 2005, Andrew Sitnikov wrote:

версия nginx 0.3.16

location ^~ /aaa/bbb {
           proxy_pass https://host:443;
           ...
}

ответ от сервера такой:
400 Bad Request
The plain HTTP request was sent to HTTPS port
nginx/0.3.16

Это ответа бэкенда или фронтенда ?

если в proxy_pass не ставить порт то запрос идет на 80 порт

Прилагаемый патч решает две проблемы
1) по умолчанию используется 443 порт.
2) корректно меняется редирект.


Игорь Сысоев
http://sysoev.ru
--- src/http/modules/ngx_http_proxy_module.c    Wed Dec  7 22:11:17 2005
+++ src/http/modules/ngx_http_proxy_module.c    Sun Dec 18 16:44:46 2005
@@ -1926,6 +1926,7 @@
 
     size_t                       add;
     ngx_str_t                   *value, *url;
+    ngx_uint_t                   port;
     ngx_inet_upstream_t          inet_upstream;
     ngx_http_core_loc_conf_t    *clcf;
 #if (NGX_HTTP_SSL)
@@ -1945,12 +1946,14 @@
 
     if (ngx_strncasecmp(url->data, "http://";, 7) == 0) {
         add = 7;
+        port = 80;
 
     } else if (ngx_strncasecmp(url->data, "https://";, 8) == 0) {
 
 #if (NGX_HTTP_SSL)
 
         add = 8;
+        port = 443;
 
         plcf->upstream.ssl = ngx_pcalloc(cf->pool, sizeof(ngx_ssl_t));
         if (plcf->upstream.ssl == NULL) {
@@ -2019,7 +2022,7 @@
         inet_upstream.name = *url;
         inet_upstream.url.len = url->len - add;
         inet_upstream.url.data = url->data + add;
-        inet_upstream.default_port_value = 80;
+        inet_upstream.default_port_value = port;
         inet_upstream.uri_part = 1;
 
         plcf->peers = ngx_inet_upstream_parse(cf, &inet_upstream);
@@ -2032,8 +2035,8 @@
         plcf->upstream.uri = inet_upstream.uri;
     }
 
-    plcf->upstream.schema.len = sizeof("http://";) - 1;
-    plcf->upstream.schema.data = (u_char *) "http://";;
+    plcf->upstream.schema.len = add;
+    plcf->upstream.schema.data = url->data;
 
     clcf = ngx_http_conf_get_module_loc_conf(cf, ngx_http_core_module);
 


 




Copyright © Lexa Software, 1996-2009.