Задать вопрос
kotcich
@kotcich
Я скучный.

Как слушать порты 80/443 только на главное доменное имя без поддоменов?

Нынешний конфиг. У меня есть example.com и api.example.com. api хочу использовать на backend сервере.
Сервер на golang. Мне для него не нужен nginx и прочее. Поэтому я не хочу при обращении по api.example.com. попадать в nginx. На данный момент frontend открывает и по example.com и по api.example.com
server {
    listen [::]:80;
    listen 80;

    server_name example.com;
    return 301 https://$host$request_uri;
}

server {
    listen [::]:443 ssl;
    listen 443 ssl default_server;
    http2  on;

    root   /usr/share/nginx/html;
    index index.html;

    server_name example.com;
    ssl_certificate /certs/fullchain.pem;
    ssl_certificate_key /certs/privkey.pem;
}

Если я чего-то не понимаю, обьясните пожалуйста, а то я уверен что вопрос глупый.
  • Вопрос задан
  • 132 просмотра
Подписаться 1 Простой Комментировать
Решения вопроса 1
SagePtr
@SagePtr
Еда - это святое
На том же самом 443 порту прослушать не получится, потому придётся прослушивать на отдельном, и проксировать через nginx.
Нужно добавить отдельный блок server для поддомена (или несколько блоков), но со своими настройками и без default_server. Не старые блоки заменить, а дописать новые. Что-то вроде этого:
server {
    listen [::]:80;
    listen 80;

    server_name api.example.com;
    return 301 https://$host$request_uri;
}

server {
    listen [::]:443 ssl;
    listen 443 ssl;
    http2  on;
    server_name api.example.com;
    ssl_certificate путь_к_серту_для_api.example.com;
    ssl_certificate_key путь_к_ключу_для_api.example.com;
    location / {
        proxy_pass 127.0.0.1:порт_вашего_приложения;
        ........
        ........
    }
}
Ответ написан
Пригласить эксперта
Ответы на вопрос 2
SignFinder
@SignFinder
Wintel\Unix Engineer\DevOps
"На данный момент frontend открывает и по example.com и по api.example.com"
А почему не должен открывать, если DNS имя api.example.com смотрит на ваш сервер и в настройках nginx есть блок default_server, который обрабатывает все неописанные имена доменов.
Ответ написан
Комментировать
ky0
@ky0 Куратор тега Nginx
Миллиардер, филантроп, патологический лгун
А куда вы хотите попадать, если не в nginx?

Заведите дефолтный серверный блок, в котором настройке проксирование куда вам нужно.
Ответ написан
Комментировать
Ваш ответ на вопрос

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

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