From 2bd26f9d4d4b9bfe0a7a7596c9b5c271d4509f55 Mon Sep 17 00:00:00 2001 From: Arity-T Date: Sun, 17 Aug 2025 10:47:41 +0300 Subject: [PATCH] =?UTF-8?q?=D0=94=D0=BE=D0=B1=D0=B0=D0=B2=D0=B8=D0=BB=20?= =?UTF-8?q?=D0=BF=D1=80=D0=B8=D0=BC=D0=B5=D1=80=20=D0=BA=D0=BE=D0=BD=D1=84?= =?UTF-8?q?=D0=B8=D0=B3=20=D0=B8=20proxy=5Fparams=20=D0=B2=20=D0=B7=D0=B0?= =?UTF-8?q?=D0=BC=D0=B5=D1=82=D0=BA=D1=83=20=D0=BF=D1=80=D0=BE=20Nginx?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- docs/servers/nginx.md | 64 ++++++++++++++++++++++++++++++++++++++++++- 1 file changed, 63 insertions(+), 1 deletion(-) diff --git a/docs/servers/nginx.md b/docs/servers/nginx.md index 737326a..901276c 100644 --- a/docs/servers/nginx.md +++ b/docs/servers/nginx.md @@ -8,7 +8,7 @@ sudo nano /etc/nginx/sites-available/new-site.conf ``` -=== "Пример конфига" +=== "Статический сайт" ```nginx server { @@ -24,6 +24,49 @@ } ``` +=== "Веб-приложение" + + ```nginx + server { + server_name giga-chill.ru www.giga-chill.ru; + listen 80; + + # Все запросы к /api/* перенаправляются на бэкенд + location /api/ { + proxy_pass http://127.0.0.1:8081/; + include proxy_params; + } + + # Спецификация API в формате OpenAPI + location = /api/openapi.yml { + alias /var/www/giga-chill/openapi.yml; + types { text/yaml yml yaml; } + charset utf-8; + charset_types text/yaml application/yaml text/x-yaml application/x-yaml; + } + + # Документация API в Swagger UI + location = /api/swagger { return 301 /api/swagger/; } + location /api/swagger/ { + proxy_pass http://127.0.0.1:1240/; + include proxy_params; + } + + # Документация API в Redocly + location = /api/redoc { return 301 /api/redoc/; } + location /api/redoc/ { + alias /var/www/giga-chill/redoc/; + index index.html; + } + + # Все остальные запросы направляются на фронтенд + location / { + proxy_pass http://127.0.0.1:3000; + include proxy_params; + } + } + ``` + Активируем конфиг. ```sh @@ -37,6 +80,25 @@ sudo systemctl reload nginx.service sudo nginx -t ``` +??? question "`open() "/etc/nginx/proxy_params" failed (2: No such file or directory)`" + + Обычно файл `/etc/nginx/proxy_params` создаётся автоматически при установке Nginx, однако его несложно добавить самостоятельно, если по каким-то причинам он не был создан или был удалён. + + === "Терминал" + + ```sh + sudo nano /etc/nginx/proxy_params + ``` + + === "proxy_params" + + ```nginx + proxy_set_header Host $http_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; + ``` + ## Просмотр логов По умолчанию логи находятся в `access.log` и `error.log` файлах.