LINUX.ORG.RU
ФорумAdmin

[nginx] http + https


0

1

При текущей настройке nginx:

    server {
       listen       80;
       listen       443;
       server_name  localhost;

        ssl on;
        ssl_protocols       SSLv3 TLSv1;
        ssl_certificate /etc/ssl/server.crt;
        ssl_certificate_key /etc/ssl/server.open.key;

сайт замечательно открывается по https, но при открытии по http я получаю ошибку:

400 Bad Request
The plain HTTP request was sent to HTTPS port
nginx/0.8.53

1. Как сделать, чтобы сайт работал как по https, так и по http? 2. Как сделать, чтобы сайт при открытии по http автоматически переадресовывался на https?

Я понимаю, что это взаимоисключающие варианты, и одновременно может работать только один из них.

★★

> одновременно может работать только один из них

это только у апача так.
nginx все умеет.

pekmop1024 ★★★★★ ()
Ответ на: комментарий от backbone

Да, спасибо. Это позволяет работать сайту, как по http, так и по https.

А как сделать автоматическую переадресацию на https при заходе по http не подскажите?

lemas ★★ ()
Ответ на: комментарий от lemas
server {
    listen       80;
    server_name  localhost;
    ...

    location / {
        rewrite ^/(.*)$ https://$host/$1 permanent;
    }
}
server {
    listen       443;
    server_name  localhost;
    ...

    ssl on;
    ssl_protocols       SSLv3 TLSv1;
    ssl_certificate /etc/ssl/server.crt;
    ssl_certificate_key /etc/ssl/server.open.key;

    location / {
        ...
    }
}
cac2s ()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.