@MadDeee

Как сделать перадресацию по доменным именам?

Имеется внешний IP и несколько внутренних IP. На внутренних IP весят сайты и есть 2 доменных имен site1.ru и site2.ru и каждый домен настроен на внешний IP ( 1.1.1.1) Как настроить nginx что бы он смог распозновать домены и переадресововать на соответствующий IP ?

Например:
Захожу на домен site1.ru попадаю на сайт, внутренний IP которого, 2.2.2.1
Захожу на домен site2.ru попадаю на сайт, внутренний IP которого, 2.2.2.2

В данный момент ситуация такая. Когда переходишь по домену site1.ru, то открывается сайт, если переходишь по внешнему IP 1.1.1.1 то открывается страница Welcom nginx и я точно знаю, что он от site1.ru (2.2.2.1).


1.1.1.1 - внешний
2.2.2.1 - внутренний (Site1.ru)
2.2.2.2 - внутренний (site2.ru)
Все сайты стоят на виртуалках
  • Вопрос задан
  • 240 просмотров
Пригласить эксперта
Ответы на вопрос 2
karabanov
@karabanov Куратор тега Ubuntu
Системный администратор
Опция default_server. Более подробно https://nginx.ru/ru/docs/http/request_processing.html
Ответ написан
Don_Andretti
@Don_Andretti
Product manager
Создайте 2 виртуальных хоста в Nginx:
Первый:
server {
   listen 80 default_server;
   listen [::]:80 default_server ipv6only=on;

   root /var/www/Site1.ru/html;
   index index.html index.htm;

   server_name Site1.ru www.Site1.ru;

   location / {
       try_files $uri $uri/ =404;
   }
}


Второй:

server {
   listen 80;
   listen [::]:80;

   root /var/www/site2.ru/html;
   index index.html index.htm;

   server_name site2.ru www.site2.ru;

   location / {
       try_files $uri $uri/ =404;
   }
}


Активируйте виртуальные хосты:
sudo ln -s /etc/nginx/sites-available/site1.ru/etc/nginx/sites-enabled/
sudo ln -s /etc/nginx/sites-available/site2.ru/etc/nginx/sites-enabled/


Отключите хост по умолчанию:
sudo rm /etc/nginx/sites-enabled/default

Осталось ещё одна настройка, которую требуется выполнить в конфигурационном файле Nginx. Откройте его:
sudo nano /etc/nginx/nginx.conf

Надо снять комментарий с одной из строк:
server_names_hash_bucket_size: 64;

Теперь можно перезапустить веб сервер, чтобы изменения вступили в силу:
sudo service nginx restart
Ответ написан
Комментировать
Ваш ответ на вопрос

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

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