MyBlogs/doc/proxmox.md

192 lines
5.4 KiB
Markdown
Raw Normal View History

2025-08-16 21:04:31 +07:00
Отлично! Спасибо за предоставленные данные. Давайте проанализируем:
---
### ✅ Что у нас уже работает:
1. **Caddy запущен и активен**:
```bash
Active: active (running) since Sat 2025-08-16 13:26:12 UTC
```
→ ✅ Сервис Caddy работает.
2. **Порт 80 слушается**:
```bash
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` (предупреждений)**, но они обрезаны. Давайте посмотрим **полные логи**:
```bash
sudo journalctl -u caddy -n 30 --no-pager
```
Но уже сейчас я могу предположить **главную возможную причину**:
---
## 🚨 Проблема: Caddy не может прочитать файлы из-за прав доступа
Хотя папка принадлежит `nikson`, **Caddy работает от имени пользователя `caddy`** (по умолчанию).
А папка `/home/nikson/www/...` — внутри домашней директории, которая по умолчанию **не доступна другим пользователям**.
### 🔎 Проверьте права на родительские папки:
```bash
ls -la /home/nikson/
```
Скорее всего, увидите:
```
drwx------ 7 nikson nikson 4096 ...
```
→ Это значит: **только `nikson` может входить в эту папку**.
Пользователь `caddy` **не может** пройти `/home/nikson/www/...`, даже если права на `www` хорошие.
---
## ✅ Решение: Открыть доступ к пути
### Вариант 1: Добавить пользователя `caddy` в группу `nikson` и открыть доступ
```bash
# Добавляем пользователя 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: Перенести сайт в общую папку (рекомендуется)
Это **надёжнее и безопаснее**:
```bash
# Создаём папку для веб-файлов
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`:
```bash
sudo nano /etc/caddy/Caddyfile
```
```caddyfile
:80 {
root * /var/www/itblog.site
file_server
encode gzip
}
```
### Перезапустите Caddy:
```bash
sudo systemctl restart caddy
```
---
## ✅ Проверка
Теперь выполните:
```bash
curl -v http://localhost
```
Вы должны увидеть:
- HTTP/1.1 200 OK
- И HTML-код (включая `<title>`, `index.html` и т.д.)
---
## 🔁 После этого: настройка на хосте Proxmox
Когда сайт заработает на `139.60.161.10`, убедитесь, что на **хосте Proxmox** (`139.60.161.3`) в Caddyfile:
```caddyfile
itblog.site {
reverse_proxy 139.60.161.10:80
}
```
И перезагрузите Caddy на хосте:
```bash
sudo caddy reload
```
---
## 🧹 Дополнительно: Установка `netstat`
Вы пытались установить `netstat`, но пакет не найден. Правильно так:
```bash
sudo apt install net-tools
```
Но `ss` — это современная замена, так что можно продолжать с ним.
---
## ✅ Вывод
**Проблема**: Caddy не может читать файлы в `/home/nikson/...` из-за ограничений доступа к домашней папке.
**Решение**: либо открыть доступ группе, либо (лучше) перенести сайт в `/var/www/`.
---
👉 Сделайте **вариант 2 (перенос в `/var/www`)** — это стандартная и безопасная практика.
Напишите, если после этого `curl http://localhost` всё ещё не работает — поможем с логами.