LINUX.ORG.RU

nginx http->https

 , , ,


0

1

добрый вечер уважаемые, возникла проблема с проксей.

че пытаюсь собственно сделать, проксить страницу с меняющимся uri что б c http получался https

пока что удалось заставить работать только http и то через костыль -

proxy_pass http://$http_backend;  #(бэк через upstream)
rewrite ^/$ http://тутIPлокахоста/тутURIнеменяющаясячасть/ redirect;
начал прикручивать ssl, все ок, конфиг не ругается, но как только дописываю в rewrite ^/$ http'S' все резко перестает работать,а без этой 'S' при заходе на локалхост просит сертификат, после выдает требуемую страницу, но в http

как заставить его работать ума не приложу, по походу дело именно в этом корявом рерайте,посему прошу помощи

ах да, бекэнд - IIS 7 может в нем косяк?

Ответ на: комментарий от snaf

я имею ввиду что при такой конфигурации. он даже не выдает страницу локалхоста и ошибка в лог не пишется

кое как работает эта конфига

if ($scheme = http) {
       return 301 https://$server_name$request_uri;
    }
выдает страницу стартовую iis7,но если начать дописывать uri сразу ошибка HTTP/1.1" 301 156 "-" «Mozilla/5.0

curl при https возвращает

curl: (7) Failed connect to сайт:443; Connection refused при http

<!DOCTYPE html PUBLIC »-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv=«Content-Type» content=«text/html; charset=iso-8859-1» /> <title>IIS7</title> <style type=«text/css»> <!-- body { color:#000000; background-color:#B3B3B3; margin:0; }

#container { margin-left:auto; margin-right:auto; text-align:center; }

a img { border:none; }

--> </style> </head> <body> <div id=«container»> <a href="http://go.microsoft.com/fwlink/?linkid=66138&clcid=0x409"><img src=«welcome.png» alt=«IIS7» width=«571» height=«411» /></a> </div> </body>

erosio ()
Ответ на: комментарий от snaf
user  root;
worker_processes  auto;
worker_rlimit_nofile 1240;
error_log /var/log/nginx/error.log warn;
events {
worker_connections 1240;
}
http {
include        mime.types;
default_type  application/octet-stream;            
    ssl_session_cache   shared:SSL:10m;
        ssl_session_timeout 10m;
            ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
                ssl_ciphers ALL:!kEDH:!ADH:!EXP:!LOW:!RC2:!3DES:!SEED:!RC4:!aNULL:!IDEA:+HIGH:+MEDIUM;
                    ssl_prefer_server_ciphers on;            
log_format  main  '$remote_addr - $remote_user [$time_local] "$request" '
'$status $body_bytes_sent "$http_referer" '
'"$http_user_agent" "$http_x_forwarded_for"';                                                                         
proxy_cache_path  /var/cache/nginx  levels=2:2   keys_zone=one:32m max_size=256m inactive=1d;

    access_log /var/log/nginx/access.log;                     
#tcp_nopush     on;                                                                            
sendfile        on;
  
 upstream http_backend {
         server xx.xx.xx.xx;
            keepalive 1024; 
    }                    	                       
server {

listen     *:443 ssl;
server_name localhost;
        server_name  localhost;
                ssl_certificate     ru.crt;
            	ssl_certificate_key ru.key;
            	        #charset koi8-r; 
            	        
    	             if ($scheme = http) {
    	                    return 301 https://$server_name$request_uri;
    	                        }
error_page 500 502 503 504 /50x.html;
error_page 404 = /404.php;

                             
location / {                             	
proxy_pass http://http_backend;  

proxy_read_timeout 300;
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_http_version 1.1;
proxy_set_header Connection "keep-alive";
}}}
erosio ()