В настоящее время у меня есть веб-серверы для веб-приложения, размещенного на AWS, и я планирую запустить блог для веб-приложения, которое я планирую разместить на сервере DigitalOcean (Nginx) из-за простоты обслуживания и прямой интеграции с Ghost CMS, которую я буду использовать в качестве CMS своего блога. Я знаю, что с помощью записей DNS легко и просто указать субдомен на каплю DigitalOcean для обслуживания блога из чего-то вроде blog.example.com
, но я пытаюсь получить доступ к блогу из подкаталога в родительском домене (www.example.com/blog
).
Могу ли я получить доступ к этому подкаталогу, настроив реверсивный прокси на сервере Nginx? Есть ли другой способ организовать эту связь между двумя серверами?
Пример:
Пользователь переходит к www.example.com
(Сервер AWS загружает страницу)
Пользователь переходит к www.example.com/blog/new-post
(Страница загрузки сервера DigitalOcean)
Это довольно просто, вы просто создаете запись A для www.example.com
который возвращает IP-адрес вашего сервера DigitalOcean. Затем вы размещаете сайт / blog на NginX, работающем на этом сервере. Затем вы создаете еще одну запись A для второго веб-сервера AWS, например, «webhost1.example.com» (эта вторая запись DNS не требуется, но это проверенный способ сделать это и упрощает, если вы когда-нибудь захотите переместить ее. сервер и его IP-адрес), и вы настраиваете NginX примерно так:
server {
listen 80;
listen [::]:80;
server_name example.com;
location / {
proxy_pass http://webhost1.exmaple.com/;
}
location /blog/ {
[your normal location config here]
}
}
Обратите внимание, что это не тестировалось, поэтому могут быть некоторые синтаксические ошибки и т. Д. Следует отметить строку proxy_pass
. Это говорит NginX передать запрос через прокси на другой сервер. Вы также можете использовать этот проходящий трафик для служб, работающих на других портах на том же хосте и т. Д.
Подробнее о обратном прокси NginX https://www.linode.com/docs/web-servers/nginx/use-nginx-reverse-proxy/