Если вы хотите использовать одно и то же полное доменное имя, например api.itisgood.ru, для обслуживания нескольких сайтов или API, это руководство поможет вам.
Если у вас есть два сайта, размещенные на разных серверах в вашей среде, например, для продаж и бухгалтерского учета, ваши клиенты должны будут сделать следующее в браузере, чтобы получить доступ к различным сайтам.
Для доступа к продажам https://api.itisgood.ru/sales Для доступа к бухгалтерии https://api.itisgood.ru/accounts
Как видите, мы используем одно и то же полное доменное имя для обслуживания разных сайтов, которые различаются по /sales и /accounting.
Это сэкономит вам больше общедоступных IP-адресов и правил брандмауэра, если он у вас один в вашей среде.
Мы надеемся, что Nginx уже установлен и работает.
--- Установка Nginx на Ubuntu / Debian ------
$ sudo apt -y install nginx
$ sudo systemctl enable --now nginx
--- Установка Nginx на CentOS / Fedora ------
$ sudo yum -y install nginx
$ sudo systemctl enable --now nginx
--- Установка на Arch Linux / Manjaro ------
$ sudo pacman -S nginx
$ sudo systemctl enable --now nginx
Шаг 1: Измените основной файл конфигурации Nginx
Откройте файл конфигурации Nginx и добавьте следующую строку в часть http.
Убедитесь, что она находится внутри фигурных скобок http.
http { .... ...... include /etc/nginx/sites.d/*.conf; }
Это добавляет файлы конфигурации в /etc/nginx/sites.d/ для nginx, чтобы система могла читать и работать с ними.
Шаг 2: Создайте основной файл конфигурации сайта
Давайте теперь добавим файл конфигурации FQDN нашего основного сайта в /etc/nginx/sites.d
$ sudo vim https://api.itisgood.ru
server {
listen 80;
server_name https://api.itisgood.ru;
return 301 https://api.itisgood.ru$request_uri;
}
server {
listen 443 ssl http2;
server_name https://api.itisgood.ru;
modsecurity_transaction_id "api.itisgood.ru-$request_id";
access_log /var/log/nginx/test-api-access.log;
error_log /var/log/nginx/test-api-error.log;
include /etc/nginx/default.d/api.itisgood.ru/*.conf;
}
Конкретные сайты будут расположены в /etc/nginx/default.d/itisgood.ru/ и, как вы можете заметить, это было включено в наш файл конфигурации.
Шаг 3. Создание конфигураций маршрутизации сайта
Теперь создайте сайты в каталоге /etc/nginx/default.d/api.api.itisgood.ru
/, как указано в конфигурации выше.
В этой настройке мы создадим один для sales:
cd /etc/nginx/default.d/api.itisgood.ru
Эта конфигурация будет перенаправлять трафик на сервер 1 (192.168.55.60), на котором размещен сайт sales, прослушивающий порт 8443.
$ sudo vim sales.conf location /sales/ { proxy_http_version 1.1; proxy_pass https://192.168.55.60:8443/sales/; proxy_cache_bypass $http_upgrade; proxy_set_header Connection 'upgrade'; proxy_set_header Upgrade $http_upgrade; }
$ sudo vim accounts.conf location /accounts/ { proxy_http_version 1.1; proxy_pass https://192.168.55.63:8080/accounts/; proxy_cache_bypass $http_upgrade; proxy_set_header Connection 'upgrade'; proxy_set_header Upgrade $http_upgrade; }
Это все, что вам нужно для настройки вашего nginx на прокси ваших сайтов или API с использованием того же FQDN.