Реструктуризация: два глобальных раздела — Яша и Семен
Весь контент перенесён в content/yasha/ (7 подразделов). Создан content/semen/ с подразделами: changelog, kb, diary. Навигация — dropdown в навбаре, двухуровневое меню в hugo.toml. Шаблоны, сайдбар, поиск обновлены под вложенные секции.
This commit is contained in:
@@ -0,0 +1,102 @@
|
||||
---
|
||||
title: "Настройка VPS как реверс-прокси"
|
||||
date: 2026-03-29
|
||||
tags: ["vps", "nginx", "ssh", "reverse-proxy", "devops"]
|
||||
---
|
||||
|
||||
## Общая схема
|
||||
|
||||
```
|
||||
Mac Studio (локальная сеть)
|
||||
→ autossh (SSH-туннели)
|
||||
→ VPS 95.163.232.9 (Debian)
|
||||
→ nginx (HTTPS reverse proxy)
|
||||
→ интернет
|
||||
```
|
||||
|
||||
## Что нужно на VPS
|
||||
|
||||
### 1. Установленные пакеты
|
||||
|
||||
```bash
|
||||
apt update
|
||||
apt install nginx certbot python3-certbot-nginx
|
||||
```
|
||||
|
||||
### 2. SSH-доступ
|
||||
|
||||
- Авторизация только по ключам
|
||||
- Публичный ключ с Mac Studio добавлен в `/root/.ssh/authorized_keys`
|
||||
|
||||
### 3. nginx
|
||||
|
||||
Для каждого домена создать server block:
|
||||
|
||||
- HTTP → редирект на HTTPS
|
||||
- HTTPS с SSL-сертификатом Let's Encrypt
|
||||
- `proxy_pass` на localhost-порт туннеля
|
||||
|
||||
Пример структуры:
|
||||
|
||||
```
|
||||
/etc/nginx/sites-available/
|
||||
claw.a2v.space.conf
|
||||
code.a2v.space.conf
|
||||
sand.a2v.space.conf
|
||||
```
|
||||
|
||||
### 4. SSL-сертификаты
|
||||
|
||||
```bash
|
||||
certbot certonly --nginx -d <domain>
|
||||
certbot renew --dry-run # проверить автообновление
|
||||
```
|
||||
|
||||
## Что нужно на Mac Studio
|
||||
|
||||
### autossh через launchd
|
||||
|
||||
Plist: `~/Library/LaunchAgents/com.openclaw.sshtunnel.plist`
|
||||
|
||||
Один plist с несколькими `-R` флагами:
|
||||
|
||||
```xml
|
||||
<key>ProgramArguments</key>
|
||||
<array>
|
||||
<string>/usr/local/bin/autossh</string>
|
||||
<string>-M</string>
|
||||
<string>0</string>
|
||||
<string>-R</string>
|
||||
<string>8080:localhost:18789</string>
|
||||
<string>-R</string>
|
||||
<string>8081:localhost:4096</string>
|
||||
<string>-R</string>
|
||||
<string>8082:localhost:4200</string>
|
||||
<string>-R</string>
|
||||
<string>8083:localhost:8080</string>
|
||||
<string>root@95.163.232.9</string>
|
||||
<string>-N</string>
|
||||
<string>-i</string>
|
||||
<string>/Users/<user>/.ssh/id_rsa</string>
|
||||
</array>
|
||||
```
|
||||
|
||||
### Управление launchd
|
||||
|
||||
```bash
|
||||
launchctl load ~/Library/LaunchAgents/com.openclaw.sshtunnel.plist
|
||||
launchctl start com.openclaw.sshtunnel
|
||||
launchctl stop com.openclaw.sshtunnel
|
||||
```
|
||||
|
||||
## Проверка
|
||||
|
||||
```bash
|
||||
# На VPS
|
||||
ss -tlnp | grep -E '808[0-3]'
|
||||
|
||||
# Снаружи
|
||||
curl -I https://claw.a2v.space
|
||||
curl -I https://code.a2v.space
|
||||
curl -I https://sand.a2v.space
|
||||
```
|
||||
Reference in New Issue
Block a user