@Evermillion

Как правильно привязать два домена к одному ip?

Не получается установить два домена на один ip

server {
    listen 80;
    server_name portainer.domain.ru;

    return 301 https://$host$request_uri;
}

server {
    listen 443 ssl;
    server_name portainer.domain.ru;

    ssl_certificate /etc/letsencrypt/live/portainer.domain.ru/fullchain.pem;
    ssl_certificate_key /etc/letsencrypt/live/portainer.domain.ru/privkey.pem;

    location / {
        proxy_pass https://111.111.111.1:9443;
        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_set_header X-Forwarded-Proto $scheme;
    }
}

server {
    listen 80;
    server_name phpmyadmin.domain.ru;

    return 301 https://$host$request_uri;
}

server {
    listen 443 ssl;
    server_name phpmyadmin.domain.ru;

    ssl_certificate /etc/letsencrypt/live/phpmyadmin.domain.ru/fullchain.pem;
    ssl_certificate_key /etc/letsencrypt/live/phpmyadmin.domain.ru/privkey.pem;

    location / {
        proxy_pass https://111.111.111.1:8888;
        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_set_header X-Forwarded-Proto $scheme;
    }
}


при вводе команды
sudo nginx -t

получаю

2024/08/17 23:33:00 [warn] 44281#44281: conflicting server name "phpmyadmin.domain.ru" on 0.0.0.0:80, ignored
2024/08/17 23:33:00 [warn] 44281#44281: conflicting server name "phpmyadmin.domain.ru" on 0.0.0.0:443, ignored
nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
nginx: configuration file /etc/nginx/nginx.conf test is successful


По адресу portainer.domain.ru открывается portainer, всё отлично, а по адресу phpmyadmin.domain.ru открывается страница welcome to nginx, а не phpmyadmin

Я не могу понять, какую ошибку допустил в файле настроек
  • Вопрос задан
  • 234 просмотра
Решения вопроса 1
ky0
@ky0 Куратор тега Nginx
Миллиардер, филантроп, патологический лгун
У вас в каком-то ещё конфиге описаны те же домены.
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 1
@rPman
Совмести конфиг http и https в одной секции server
http {
    server {
        listen 80;
        listen 443 ssl;
        server_name example1.com;
        root /var/www/example1;
        index index.html;

        ssl_certificate /etc/letsencrypt/live/example1.com/fullchain.pem;
        ssl_certificate_key /etc/letsencrypt/live/example1.com/privkey.pem;

        # Перенаправление HTTP на HTTPS
        if ($scheme != "https") {
            return 301 https://$server_name$request_uri;
        }
    }

    server {
        listen 80;
        listen 443 ssl;
        server_name example2.com;
        root /var/www/example2;
        index index.html;

        ssl_certificate /etc/letsencrypt/live/example2.com/fullchain.pem;
        ssl_certificate_key /etc/letsencrypt/live/example2.com/privkey.pem;

        # Перенаправление HTTP на HTTPS
        if ($scheme != "https") {
            return 301 https://$server_name$request_uri;
        }
    }
}
Ответ написан
Комментировать
Ваш ответ на вопрос

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

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