MyBlogs/doc/proxmox.md
2025-08-16 21:04:31 +07:00

5.4 KiB
Raw Permalink Blame History

Отлично! Спасибо за предоставленные данные. Давайте проанализируем:


Что у нас уже работает:

  1. Caddy запущен и активен:

    Active: active (running) since Sat 2025-08-16 13:26:12 UTC
    

    Сервис Caddy работает.

  2. Порт 80 слушается:

    ss -tulnp | grep :80
    tcp   LISTEN 0      4096               *:80              *:*
    

    Caddy слушает порт 80.

  3. Файлы сайта на месте:

    • Есть index.html, 404.html, папки assets, blog и т.д.
    • Права: drwxrwxr-xу пользователя nikson есть доступ. → Контент существует.

Почему curl http://localhost ничего не выводит?

Это подозрительно, потому что:

  • Caddy запущен.
  • Порт 80 слушается.
  • Файлы есть.

Но curl http://localhost молчит — значит, Caddy не отдаёт контент, хотя технически работает.


🔍 Причина: ошибка в Caddyfile

Посмотрите на лог Caddy:

Aug 16 13:26:12 dev caddy[1742]: {"level":"warn","ts":1755350772.99452,"logger"> 

Там много warn (предупреждений), но они обрезаны. Давайте посмотрим полные логи:

sudo journalctl -u caddy -n 30 --no-pager

Но уже сейчас я могу предположить главную возможную причину:


🚨 Проблема: Caddy не может прочитать файлы из-за прав доступа

Хотя папка принадлежит nikson, Caddy работает от имени пользователя caddy (по умолчанию).

А папка /home/nikson/www/... — внутри домашней директории, которая по умолчанию не доступна другим пользователям.

🔎 Проверьте права на родительские папки:

ls -la /home/nikson/

Скорее всего, увидите:

drwx------ 7 nikson nikson 4096 ...

→ Это значит: только nikson может входить в эту папку.
Пользователь caddy не может пройти /home/nikson/www/..., даже если права на www хорошие.


Решение: Открыть доступ к пути

Вариант 1: Добавить пользователя caddy в группу nikson и открыть доступ

# Добавляем пользователя caddy в группу nikson
sudo usermod -aG nikson caddy

# Даём доступ на чтение и выполнение для группы
chmod 750 /home/nikson
chmod -R 750 /home/nikson/www/MyBlogs/itblog.site/build

# Перезапускаем Caddy
sudo systemctl restart caddy

Вариант 2: Перенести сайт в общую папку (рекомендуется)

Это надёжнее и безопаснее:

# Создаём папку для веб-файлов
sudo mkdir -p /var/www/itblog.site

# Копируем туда build
sudo cp -r /home/nikson/www/MyBlogs/itblog.site/build/* /var/www/itblog.site/

# Меняем владельца
sudo chown -R caddy:caddy /var/www/itblog.site

# Меняем права
sudo chmod -R 755 /var/www/itblog.site

Обновите Caddyfile:

sudo nano /etc/caddy/Caddyfile
:80 {
    root * /var/www/itblog.site
    file_server
    encode gzip
}

Перезапустите Caddy:

sudo systemctl restart caddy

Проверка

Теперь выполните:

curl -v http://localhost

Вы должны увидеть:

  • HTTP/1.1 200 OK
  • И HTML-код (включая <title>, index.html и т.д.)

🔁 После этого: настройка на хосте Proxmox

Когда сайт заработает на 139.60.161.10, убедитесь, что на хосте Proxmox (139.60.161.3) в Caddyfile:

itblog.site {
    reverse_proxy 139.60.161.10:80
}

И перезагрузите Caddy на хосте:

sudo caddy reload

🧹 Дополнительно: Установка netstat

Вы пытались установить netstat, но пакет не найден. Правильно так:

sudo apt install net-tools

Но ss — это современная замена, так что можно продолжать с ним.


Вывод

Проблема: Caddy не может читать файлы в /home/nikson/... из-за ограничений доступа к домашней папке.

Решение: либо открыть доступ группе, либо (лучше) перенести сайт в /var/www/.


👉 Сделайте вариант 2 (перенос в /var/www) — это стандартная и безопасная практика.

Напишите, если после этого curl http://localhost всё ещё не работает — поможем с логами.