nginx: vhost для Astro-контейнера (proxy на :4146, 301-карта WP-cyrillic slugs + старый /feed/ → /feed.xml)
Some checks failed
deploy / deploy (push) Failing after 8s
Some checks failed
deploy / deploy (push) Failing after 8s
This commit is contained in:
@@ -1,15 +1,19 @@
|
|||||||
# pushkinohistory.ru — Vite+React (v2)
|
# pushkinohistory.ru — Astro v2
|
||||||
# Container: pushkinohistory-ru-v2 on 127.0.0.1:4146
|
# Container: pushkinohistory-ru-v2 (nginx:alpine + Astro SSG) on 127.0.0.1:4146
|
||||||
# v2 cutover: 2026-05-21 (старый WP на :4143 оставлен в /opt/docker/sites/pushkinohistory-ru как backup)
|
# v2 cutover: 2026-05-21 (старый WP на :4143 оставлен в /opt/docker/sites/pushkinohistory-ru как backup для отката)
|
||||||
|
|
||||||
# 301-редиректы со старых URL-encoded WP slugs (cyrillic) на новые транслитерированные.
|
# 301-редиректы со старых URL-encoded WP-cyrillic slugs на новые транслитерированные.
|
||||||
# nginx уже декодирует URI до cyrillic'а, поэтому в ключах map'а — кириллица в UTF-8.
|
# nginx URL-декодирует $request_uri до cyrillic, поэтому в ключах map'а — кириллица в UTF-8.
|
||||||
map $request_uri $legacy_redirect {
|
map $request_uri $legacy_redirect {
|
||||||
default "";
|
default "";
|
||||||
~^/добро-пожаловать/?$ /dobro-pozhalovat/;
|
~^/добро-пожаловать/?$ /dobro-pozhalovat/;
|
||||||
~^/фото/?$ /foto/;
|
~^/фото/?$ /foto/;
|
||||||
~^/сегодня-ночью-россияне-увидят-первое-суперлуние-года-волчью-луну/?$ /segodnya-nochyu-rossiyane-uvidyat-pervoe/;
|
~^/сегодня-ночью-россияне-увидят-первое-суперлуние-года-волчью-луну/?$ /segodnya-nochyu-rossiyane-uvidyat-pervoe/;
|
||||||
~^/первые-20-градусные-морозы/?$ /pervye-20-gradusnye-morozy/;
|
~^/первые-20-градусные-морозы/?$ /pervye-20-gradusnye-morozy/;
|
||||||
|
# WP feed → новый Astro feed
|
||||||
|
~^/feed/?$ /feed.xml;
|
||||||
|
~^/feed/rss2/?$ /feed.xml;
|
||||||
|
~^/\?feed=rss2$ /feed.xml;
|
||||||
}
|
}
|
||||||
|
|
||||||
server {
|
server {
|
||||||
@@ -59,39 +63,18 @@ server {
|
|||||||
|
|
||||||
client_max_body_size 4M;
|
client_max_body_size 4M;
|
||||||
|
|
||||||
# 301-редиректы с легаси WP-slugs на новые транслитерированные пути
|
# 301-редиректы с легаси WP-URL
|
||||||
if ($legacy_redirect != "") {
|
if ($legacy_redirect != "") {
|
||||||
return 301 $legacy_redirect;
|
return 301 $legacy_redirect;
|
||||||
}
|
}
|
||||||
|
|
||||||
# WP-эндпоинты — больше не существуют, отдаём 410 Gone (помогает поисковикам пометить как удалённые)
|
# WP-эндпоинты больше не существуют — 410 Gone (поисковики помечают как удалённые)
|
||||||
location ~* ^/(wp-admin|wp-login\.php|wp-content|wp-includes|xmlrpc\.php|wp-cron\.php|wp-config\.php|readme\.html)$ {
|
location ~* ^/(wp-admin|wp-login\.php|wp-content|wp-includes|xmlrpc\.php|wp-cron\.php|wp-config\.php|readme\.html) {
|
||||||
return 410;
|
return 410;
|
||||||
}
|
}
|
||||||
|
|
||||||
# RSS-фид (статичный файл, отдаётся из dist)
|
# Всё остальное — на контейнер v2. Astro nginx внутри сам разруливает кэши,
|
||||||
location = /feed/ {
|
# MIME для RSS, /api/news.json из bind-mount и т.д.
|
||||||
proxy_pass http://127.0.0.1:4146;
|
|
||||||
include /etc/nginx/templates/proxy.conf;
|
|
||||||
add_header Content-Type "application/rss+xml; charset=utf-8" always;
|
|
||||||
add_header Cache-Control "public, max-age=600" always;
|
|
||||||
}
|
|
||||||
|
|
||||||
# Агрегатор новостей: апдейтится по cron, кешируем коротко
|
|
||||||
location = /api/news.json {
|
|
||||||
proxy_pass http://127.0.0.1:4146;
|
|
||||||
include /etc/nginx/templates/proxy.conf;
|
|
||||||
add_header Cache-Control "public, max-age=120" always;
|
|
||||||
}
|
|
||||||
|
|
||||||
# Картинки/статические ассеты — кешируем подольше
|
|
||||||
location ~* ^/(uploads|assets)/ {
|
|
||||||
proxy_pass http://127.0.0.1:4146;
|
|
||||||
include /etc/nginx/templates/proxy.conf;
|
|
||||||
add_header Cache-Control "public, max-age=604800, immutable" always;
|
|
||||||
proxy_cache_valid 200 7d;
|
|
||||||
}
|
|
||||||
|
|
||||||
location / {
|
location / {
|
||||||
proxy_pass http://127.0.0.1:4146;
|
proxy_pass http://127.0.0.1:4146;
|
||||||
include /etc/nginx/templates/proxy.conf;
|
include /etc/nginx/templates/proxy.conf;
|
||||||
|
|||||||
Reference in New Issue
Block a user