Support for both HTTP and HTTPS requests on port 443

Hello,

I have HTTPS/SSL server configured like this:

server {
listen 1.2.3.4:443 ssl;
server_name ssl.dom.tld

   ssl                     on;
   keepalive_timeout       70;

   access_log              /var/log/nginx/ssl-access.log;
   error_log               /var/log/nginx/ssl-error.log;

   location / {

           proxy_pass      https://10.0.0.1;

           proxy_next_upstream error timeout invalid_header http_500 

http_502 http_503;
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_redirect off;
}
}

Is it possible to forward also http (not https) requests made to port
443
to the backend (10.0.0.1) port 443 ?

Yes I know, it doesn’t make any sense basicly, but I have a broken
application that wants to receive both http and https requests on port
443.

Is that possible with nginx?

– Pasi

On Wed, Oct 27, 2010 at 04:42:54PM +0300, Pasi K. wrote:

           proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;

Is that possible with nginx?
I did not tested this, but you may try:

    error_page  497 = @no_https;

    location @no_https {
            proxy_pass      https://10.0.0.1;

            proxy_next_upstream error timeout invalid_header 

http_500 http_502 http_503;
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_redirect off;
}


Igor S.
http://sysoev.ru/en/

On Wed, Oct 27, 2010 at 05:50:10PM +0400, Igor S. wrote:

   ssl                     on;
           proxy_set_header Host $host;

application that wants to receive both http and https requests on port 443.
proxy_next_upstream error timeout invalid_header http_500
http_502 http_503;
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_redirect off;
}

Ok, thanks! I’ll try it.

– Pasi