http и https на одном севере

Igor Sysoev is at rambler-co.ru
Thu Jan 18 10:35:51 MSK 2007


On Thu, 18 Jan 2007, Vsevolod Balashov wrote:

> был у меня на 0.4.х такой замечательный конфиг:

На 0.4.х по идее это тоже не должно было работать.

>   server {
>       listen  80;
> 	listen	443;
>       ssl on;
>       ssl_certificate      /etc/nginx/cert.pem;
>       ssl_certificate_key  /etc/nginx/cert.key;
>       ssl_protocols  SSLv2 SSLv3 TLSv1;
>       ssl_ciphers 
> ALL:!ADH:!EXPORT56:RC4+RSA:+HIGH:+MEDIUM:+LOW:+SSLv2:+EXP;
>       ssl_prefer_server_ciphers   on;
>
>     	server_name  example.com;
>
>     	root   /var/www;
>     	index  index.html;
> 			       location /admin/ {
>           if ($server_port = 80) {
>               rewrite ^\/(.*)$ https://$server_name/$1 permanent;
>           }
>       }
>       location / {
>           if ($server_port = 443) {
>               rewrite ^\/(.*)$ http://$server_name/$1 permanent;
>           }
>       }
>   }
>
> таким образом я админку защищал самоподписаным сертификатом от разных
> любопытных товарищей. и все работало. а 0.5.7 на любые http запросы
> отвечает исключительно "400 Bad Request The plain HTTP request was
> sent to HTTPS port"
>
> 80 порт он похоже тоже как ssl открыл :( как побеждать? 2 раза server?
> ломает дублировать - очепяток наделаю даже с копипасте, ибо в отличие
> от этого учебного конфига в реальном еще много всего про fastcgi. или
> может можно выделить как то общую часть?

include.

> пробовал писать
> listen 80;
> ssl off;
> listen 443;
> ssl on;
> ругается...

Уже не в первый раз у меня возникает ощущение, что пришло поколение админов,
которые не настраивали SSL в mod_ssl, не говоря уже об Apache-SSL,
а занялись этим сразу в nginx'е. Иначе бы таких вопросов не возникало.

Может быть, действительно сделать

     server {
        listen   80;
        listen   443 default ssl;

        ...

        location /some/ {
            if ($ssl = "") {
                ...
            }
        }

?
Правда, я пока не вижу, есть ли здесь какие-нибудь подводные камни.


Игорь Сысоев
http://sysoev.ru





More information about the nginx-ru mailing list