139 lines
4.2 KiB
Markdown
139 lines
4.2 KiB
Markdown
# Руководство по удаленной диагностике MY Network сервера
|
||
|
||
## Проблема
|
||
- SSH недоступен на порту 22 (Connection refused)
|
||
- Nginx работает на порту 80, но возвращает 404 для всех запросов
|
||
- Приложения на портах 3000, 5000, 8080 недоступны
|
||
|
||
## Диагностика на сервере (выполнить локально)
|
||
|
||
### 1. Проверить статус служб
|
||
```bash
|
||
# Проверить статус Docker
|
||
sudo systemctl status docker
|
||
|
||
# Проверить статус MyUploader service
|
||
sudo systemctl status myuploader
|
||
|
||
# Проверить запущенные контейнеры
|
||
sudo docker ps -a
|
||
|
||
# Проверить логи контейнеров
|
||
sudo docker logs uploader-bot-app-1
|
||
sudo docker logs uploader-bot-postgres-1
|
||
sudo docker logs uploader-bot-nginx-1
|
||
```
|
||
|
||
### 2. Проверить сетевые соединения
|
||
```bash
|
||
# Проверить какие порты слушает система
|
||
sudo netstat -tulpn | grep LISTEN
|
||
|
||
# Проверить статус nginx
|
||
sudo nginx -t
|
||
sudo systemctl status nginx
|
||
|
||
# Проверить конфигурацию nginx
|
||
sudo cat /etc/nginx/sites-enabled/default
|
||
```
|
||
|
||
### 3. Проверить Docker Compose
|
||
```bash
|
||
# Перейти в директорию проекта
|
||
cd /home/myuploader/my-uploader-bot
|
||
|
||
# Проверить статус compose
|
||
sudo docker-compose -f docker-compose.production.yml ps
|
||
|
||
# Посмотреть логи всех сервисов
|
||
sudo docker-compose -f docker-compose.production.yml logs --tail=50
|
||
|
||
# Перезапустить сервисы
|
||
sudo docker-compose -f docker-compose.production.yml down
|
||
sudo docker-compose -f docker-compose.production.yml up -d
|
||
```
|
||
|
||
### 4. Проверить SSH
|
||
```bash
|
||
# Проверить статус SSH
|
||
sudo systemctl status ssh
|
||
|
||
# Проверить конфигурацию SSH
|
||
sudo cat /etc/ssh/sshd_config | grep -E "Port|PasswordAuthentication|PubkeyAuthentication"
|
||
|
||
# Перезапустить SSH если нужно
|
||
sudo systemctl restart ssh
|
||
```
|
||
|
||
### 5. Проверить брандмауэр
|
||
```bash
|
||
# Проверить статус UFW
|
||
sudo ufw status
|
||
|
||
# Если UFW активен, проверить правила
|
||
sudo ufw status numbered
|
||
|
||
# Разрешить SSH (если заблокирован)
|
||
sudo ufw allow 22/tcp
|
||
```
|
||
|
||
### 6. Быстрое восстановление
|
||
```bash
|
||
# Если сервисы не работают, запустить быстрое восстановление
|
||
cd /home/myuploader/my-uploader-bot
|
||
sudo ./diagnose.sh
|
||
|
||
# Проверить health API приложения
|
||
curl -I http://localhost:3000/api/health
|
||
curl -I http://localhost:5000/api/health
|
||
```
|
||
|
||
## Возможные решения
|
||
|
||
### Проблема с nginx proxy
|
||
Если nginx возвращает 404, проверить файл `/etc/nginx/sites-enabled/default`:
|
||
```bash
|
||
sudo cat /etc/nginx/sites-enabled/default
|
||
```
|
||
|
||
Должен содержать:
|
||
```nginx
|
||
location /api/ {
|
||
proxy_pass http://localhost:3000/api/;
|
||
proxy_set_header Host $host;
|
||
proxy_set_header X-Real-IP $remote_addr;
|
||
}
|
||
```
|
||
|
||
### Проблема с Docker
|
||
Если контейнеры не запущены:
|
||
```bash
|
||
cd /home/myuploader/my-uploader-bot
|
||
sudo docker-compose -f docker-compose.production.yml up -d --build
|
||
```
|
||
|
||
### Проблема с SSH
|
||
Если SSH заблокирован файрволлом:
|
||
```bash
|
||
sudo ufw allow 22/tcp
|
||
sudo systemctl restart ssh
|
||
```
|
||
|
||
## Команды для отправки результатов
|
||
После выполнения диагностики, отправьте результаты:
|
||
|
||
```bash
|
||
# Сохранить всю диагностику в файл
|
||
echo "=== DOCKER STATUS ===" > diagnosis.txt
|
||
sudo docker ps -a >> diagnosis.txt
|
||
echo "=== DOCKER LOGS ===" >> diagnosis.txt
|
||
sudo docker-compose -f docker-compose.production.yml logs --tail=20 >> diagnosis.txt
|
||
echo "=== NGINX STATUS ===" >> diagnosis.txt
|
||
sudo systemctl status nginx >> diagnosis.txt
|
||
echo "=== SSH STATUS ===" >> diagnosis.txt
|
||
sudo systemctl status ssh >> diagnosis.txt
|
||
echo "=== NETWORK PORTS ===" >> diagnosis.txt
|
||
sudo netstat -tulpn | grep LISTEN >> diagnosis.txt
|
||
|
||
# Просмотреть файл
|
||
cat diagnosis.txt |