🧱 Суть

Для коротких ссылок лучше выделять отдельный поддомен, который будет работать только как “редирект-сервис”.

📦 Проблема

Если использовать основной домен приложения:

toolbox.letunoff.ru/1JmpqP

то:

  • смешивается UI и короткие ссылки
  • сложнее масштабировать сервис
  • хуже читается архитектура

✅ Решение

Выделить отдельный поддомен под сокращённые ссылки:

💻 Код

Варианты поддоменов

t.letunoff.ru

или:

go.letunoff.rus.letunoff.ru
lnk.letunoff.ru

Рекомендуемый вариант

go.letunoff.ru

Пример ссылки:

https://go.letunoff.ru/1JmpqP

Настройка системы

1. DNS запись

Добавляется A-запись:

Type: A
Name: go
Value: IP VPS

Результат:

go.letunoff.ru IP сервера

2. Nginx конфигурация

Отдельный server block для поддомена:

server {
    server_name t.letunoff.ru;
 
    location / {
        proxy_pass http://127.0.0.1:8000;
        proxy_http_version 1.1;
        
		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;
	}
}

3. SSL сертификат

sudo certbot --nginx -d t.letunoff.ru

Логика генерации ссылок

В .env:

SHORT_LINK_DOMAIN=https://t.letunoff.ru

В коде:

$shortUrl = config('app.short_link_domain') . '/' . $code;

Архитектурная идея

toolbox.letunoff.ru основное приложение
t.letunoff.ru только редиректы

🎯 Вывод

  • отдельный поддомен = правильная архитектура сервиса
  • редиректы отделяются от основного приложения
  • легче масштабировать и поддерживать
  • выглядит как полноценный production-сервис

🔗 Связано