NGINX: Как отдавать по домену одно, а по ип другое?

Есть сайт на сервере, он показывается при заходе на домен. При заходе на сервер просто по IP, отдаётся стандартная страничка от nginx. Я хотел бы повесить 2 сайт и чтобы он отдавался по ип(вместо стандартной от nginx). Не понимаю как это реализовать.
upstream my_project {
    server unix:/tmp/myproject.sock fail_timeout=0;
}

server {
    listen 80;
    server_name  100.100.100.100;
}

server {
    listen 80;
    client_max_body_size 4G;
    server_name 100.100.100.100;
    access_log  /home/myuser/logs/myproject/myproject.nginx..log;
    keepalive_timeout 5;

    root /home/myuser/projects/myproject/;
    
    location / {
        proxy_pass http://100.100.100.100;
    }

}

Это конфиг для отдачи по ип, но он не работает.
Буду рад отсылке на мануал именно с решением проблемы, а не просто "кури мануалы".
  • Вопрос задан
  • 2312 просмотров
Решения вопроса 1
mva
@mva
CEO, CTO, Lua/Gentoo/IPv6 Pioneer
server_name вполне может быть и IP, только, вот, в Вашем конфиге server_name дублируется в двух разных server {} блоках. Потому, скорее всего, и не работает.

Альтренативно — Вы можете задать использовать server_name _; (либо любое другое не существующее значение).

А чтобы избежать отдачи
станартной странички от NginX
— в одном из блоков (желательно — первом в конфиге/среди инклудов, ибо иначе с SSL будут проблемы потом) у listen указать директиву default_server
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 1
Fesor
@Fesor
Full-stack developer (Symfony, Angular)
ну так не прописывайте server_name и будет вам счастье. Вообще почитайте что это такое.
Ответ написан
Ваш ответ на вопрос

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

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