Sergiy_Hanzhela
@Sergiy_Hanzhela
Начинающий разработчик!

Настройка https на nginx + subdomen?

Добрый день! Нужно перевести сайт на https. как перевести сам сайт (собран на CMS(Mezazini) python cms) понятно но на этом сайте статика находится на поддамене типа static.example.com и в будущем планируется что будет множество поддаменов когда генеришь ssl ключ там явно указывается server_name а как указать чтоб этот ключ действовал и на все поддаменыю Вот начальный конфиг.
server {
        listen          80;
        server_name     example.com;
        access_log /var/log/nginx/stp.access.log;
        error_log /var/log/nginx/stp.error.log;
	client_max_body_size 64m;
        location / {
            uwsgi_pass      unix:///tmp/stp.sock;
            include         uwsgi_params;
            uwsgi_param     UWSGI_SCHEME $scheme;
            uwsgi_param     SERVER_SOFTWARE    nginx/$nginx_version;
	    #
        }
        location /static/ {
	    alias /home/alx/stp/static/;
       }
}
server {
    server_name www.example.com ;
    return 301 $scheme://example.com$request_uri;
}
server {
        listen          80;
        server_name static.example.com;
        access_log /var/log/nginx/static.stp.access.log;
        error_log /var/log/nginx/static.stp.error.log;
	#location ~* \.(eot|ttf|woff|woff2)$ {
	#    add_header Access-Control-Allow-Origin *;
	#}
        location / {
    	    add_header Access-Control-Allow-Origin *;
            alias /home/alx/stp/static/;
        }
}

server {
        listen          80;
        server_name     *.example.com;
        access_log /var/log/nginx/stp.access.log;
        error_log /var/log/nginx/stp.error.log;

        location / {
            uwsgi_pass      unix:///tmp/landing.sock;
            include         uwsgi_params;
            uwsgi_param     UWSGI_SCHEME $scheme;
            uwsgi_param     SERVER_SOFTWARE    nginx/$nginx_version;
        }

        location /static/ {
	    alias /home/alx/stp/static/;
        }
}

собственно была сделана попытка перевести правда без учета поддаменов
server {
       listen          80;
       listen          [::]:80;
       server_name     example.com www.example.com;

       rewrite ^ https://example.com$request_uri? permanent;
}
server {
        listen          443 ssl http2;
        listen          [::]:443 ssl http2;
        server_name     example.com www.example.com;

        ssl_certificate /etc/letsencrypt/live/example.com/fullchain.pem;
        ssl_certificate_key /etc/letsencrypt/live/example.com/privkey.pem;
        include /etc/nginx/snippets/ssl;

        if ($host !~* ^(example.com)$ ){return 444;}
        if ($request_method !~ ^(GET|HEAD|POST)$ ){return 444;}

        access_log /var/log/nginx/stp.access.log;
        error_log /var/log/nginx/stp.error.log;
	client_max_body_size 64m;
        location / {
            uwsgi_pass      unix:///tmp/stp.sock;
            include         uwsgi_params;
            uwsgi_param     UWSGI_SCHEME $scheme;
            uwsgi_param     SERVER_SOFTWARE    nginx/$nginx_version;
	    #
        }
        location /static/ {
	    alias /home/alx/stp/static/;
       }
}
server {
    server_name www.example.com ;
    return 301 https://example.com$request_uri;
}
server {
       listen          80;
       listen          [::]:80;
       server_name     static.example.com;

       rewrite ^ https://static.example.com$request_uri? permanent;
}

server {
        listen          443 ssl http2;
        listen          [::]:443 ssl http2;
        server_name static.example.com;
        ssl_certificate /etc/letsencrypt/live/example.com/fullchain.pem;
        ssl_certificate_key /etc/letsencrypt/live/example.com/privkey.pem;
        include /etc/nginx/snippets/ssl;
        access_log /var/log/nginx/static.stp.access.log;
        error_log /var/log/nginx/static.stp.error.log;
	#location ~* \.(eot|ttf|woff|woff2)$ {
	#    add_header Access-Control-Allow-Origin *;
	#}
        location / {
    	    add_header Access-Control-Allow-Origin *;
            alias /home/alx/stp/static/;
        }
}


все как бы и запускается вот статика с поддамена не грузится стили и все тому подобное пару картинок загружается и все*(странно как то) да и что с будущими поддаменами что делать как сгенерировать ключ так что он действовал на все поддамены. static.example.com я генерировал вместе с основными доменам может из-за этого не грузится вообщем засада. Логи нечего не показывают что могло бы хоть как то натолкнуть на мысль
  • Вопрос задан
  • 251 просмотр
Решения вопроса 1
Извените за тупой вопрос, а зачем статика то на субдомене у вас ведь nginx и смысла в этом попросту нет.
Кроме ка постоянный геморой ?
Теперь по всем доменам, тут все просто вам нужен другой ключик.
Вы ведь их делаете ен самоподписаные надеюсь ?
а что-то типа такого (тут писал под битрикс)
https://klondike-studio.ru/blog/bitrix-virtualnaya...
Если самоподписаные то толку от таких сертификатов примерно ноль.
На вашем месте я бы сделал проще.
nginx отдает нормальные урлы,
stream {
      upstream stream_backend {
        zone tcp_servers 64k;
        server 192.168.55.201:3308;
        server 192.168.55.202:3308;
        server 192.168.55.203:3308;
    }

все что вам останется прописать логику в локейшенах если вам прям так хочется отщдавать с другого сервера.
В таком случае вам нужно будет только сертификат на фронт и все.
НО вообще nginx может автоматически балансировать нагрузку на бэкэнды.
что именго вам нужно от поддоменов, ведь вы по сути теряеете "вес" отдавая его субдоменам.
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы