Гайд: Поддомен, сайт и проксирование локального адреса
1. Настройка DNS для поддомена
Чтобы поддомен subdomain.example.com указывал на ваш сервер, создаем A-запись:
| Type | Name | Value | TTL |
|---|---|---|---|
| A | subdomain | <IP сервера> |
3600 |
- Type: Тип записи —
A. - Name: Имя поддомена, например
subdomain. - Value: IP вашего сервера.
- TTL: Время жизни DNS-записи (3600 секунд = 1 час).
После добавления записи может пройти некоторое время до обновления (обычно до 5–15 минут).
2. Создание сайта в директории поддомена
2.1 Без PHP (статический сайт)
- На сервере создайте папку для поддомена:
mkdir -p /var/www/subdomain.example.com
- Создайте файл
index.html:
<!DOCTYPE html>
<html lang="ru">
<head>
<meta charset="UTF-8">
<title>Subdomain Example</title>
</head>
<body>
<h1>Сайт на поддомене работает!</h1>
</body>
</html>
- Настройка веб-сервера (например, Nginx):
server {
listen 80;
server_name subdomain.example.com;
root /var/www/subdomain.example.com;
index index.html;
location / {
try_files $uri $uri/ =404;
}
}
- Перезагрузите Nginx:
sudo systemctl reload nginx
2.2 С PHP
- Установите PHP и необходимые модули (для Ubuntu/Debian):
sudo apt update
sudo apt install php-fpm php-mysql
- Создайте директорию и файл
index.php:
mkdir -p /var/www/subdomain.example.com
nano /var/www/subdomain.example.com/index.php
Пример содержимого index.php:
<?php
echo "<h1>Сайт на PHP поддомене работает!</h1>";
phpinfo();
?>
- Настройка Nginx для PHP:
server {
listen 80;
server_name subdomain.example.com;
root /var/www/subdomain.example.com;
index index.php index.html;
location / {
try_files $uri $uri/ =404;
}
location ~ \.php$ {
include snippets/fastcgi-php.conf;
fastcgi_pass unix:/var/run/php/php8.2-fpm.sock;
}
}
- Перезагрузите Nginx:
sudo systemctl reload nginx
3. Проксирование локального порта на поддомен
Если у вас есть локальный сервис на сервере (например, localhost:3000), можно проксировать его на поддомен с помощью Nginx:
server {
listen 80;
server_name subdomain.example.com;
location / {
proxy_pass http://127.0.0.1:3000;
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;
}
}
- proxy_pass — адрес локального сервиса.
- Заголовки нужны для корректной работы веб-приложений.
После добавления конфигурации перезагрузите Nginx:
sudo systemctl reload nginx
Теперь ваш сервис доступен по адресу http://subdomain.example.com.