alaskafx
@alaskafx
Не .do Frontend

Почему при редиректе не дописывается .ru?

Имею такую конфигурацию:
user www-data;
worker_processes auto;
pid /run/nginx.pid;
events {
worker_connections 1024;
multi_accept on;
}
http {
sendfile on;
tcp_nopush on;
tcp_nodelay on;
keepalive_timeout 15;
types_hash_max_size 2048;
server_tokens off;
include /etc/nginx/mime.types;
default_type text/javascript;
access_log off;
error_log /var/log/nginx/error.log;
gzip on;
gzip_min_length 100;
gzip_http_version 1.1;
gzip_types text/plain text/css application/json application/javascript text/xml application/xml application/xml+rss text/javascript;
client_max_body_size 8M;
server {
    listen                  443 ssl http2;
    listen                  [::]:443 ssl http2;
    server_name             somesite.ru;

    # SSL
   ssl_certificate /etc/ssl/somesite.crt;
   ssl_certificate_key /etc/ssl/somesite.key;

    # reverse proxy
    location / {
        proxy_pass http://127.0.0.1:3000;
    }

}

# subdomains redirect
server {
    listen                  443 ssl http2;
    listen                  [::]:443 ssl http2;
    server_name             *.somesite.ru;

    # SSL
    ssl_certificate /etc/ssl/somesite.crt;
    ssl_certificate_key /etc/ssl/somesite.key;
    return                  301 https://somesite.ru$request_uri;
}

# HTTP redirect
server {
    listen      80;
    listen      [::]:80;
    server_name .somesite.ru;
    ssl_certificate /etc/ssl/somesite.crt;
    ssl_certificate_key /etc/ssl/somesite.key;

    location / {
        return 301 https://somesite.ru$request_uri;
    }
}
}

Пытаюсь сделать редирект с http на https, но при попытке захода на http выбивает ошибку о том, что нужно проверить имя хоста, а в адресной строке банально не дописывается .ru, то есть просто выглядит как: https://somesite
  • Вопрос задан
  • 77 просмотров
Пригласить эксперта
Ответы на вопрос 1
Rst0
@Rst0
# HTTP redirect
server {
	charset utf-8;
	client_max_body_size 128M;
	listen 80;
        server_name *.somesite.ru;
         return 301 https://somesite.ru$request_uri;
}
# HTTPS 443
server {
    listen 443 ssl http2;
         server_name somesite.ru *.somesite.ru;
         ssl_certificate /etc/ssl/somesite.crt;
         ssl_certificate_key /etc/ssl/somesite.key;
    # reverse proxy
    location / {
        proxy_pass http://127.0.0.1:3000;
        proxy_set_header Host $host;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header X-Real-IP $remote_addr;
	proxy_set_header remote_addr $remote_addr;
	proxy_set_header   X-Forwarded-Proto $scheme;
	proxy_set_header   X-Forwarded-Port $server_port;
    }
}
Ответ написан
Комментировать
Ваш ответ на вопрос

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

Похожие вопросы