Я пытаюсь создать веб-сайт, который ссылается на несколько приложений nodejs.
www.example.com/app1
www.example.com/app2
И app1, и app2 размещены на AWS Elastic Beanstalk.
http://app1.us-west-2.elasticbeanstalk.com
http://app2.us-west-2.elasticbeanstalk.com
Как я могу перенаправить подкаталоги на example.com в эти приложения, не меняя URL-адрес в браузере?
Следует ли мне создать третье приложение на EBS и связать с ним example.com. Затем использовать nginx для перенаправления на определенные приложения?
Извините за расплывчатость. Я новичок в этом.
@ Александр Спасибо. Хотя у меня были проблемы с получением статического файла 404. Это помогло: https://stackoverflow.com/questions/36849456/nginx-reverse-proxy-404-on-static-files
if ($uri ~ app1/) {
break;
}
if ($http_referer ~ app1/ ) {
rewrite (.*) /app1/$1 redirect;
}
location /app1/ {
proxy_set_header Host $http_host;
proxy_set_header X-NginX-Proxy true;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_pass http://app1.compute.amazonaws.com:3001/ ;
}
Хотя как отмечено в ссылке. Это не сработает для запросов POST: /
Вы могли бы сделать это nginx
. Ваша конфигурация должна выглядеть так:
server {
listen 80;
location /app1 {
proxy_pass http://app1.us-west-2.elasticbeanstalk.com:80;
}
location /app2 {
proxy_pass http://app2.us-west-2.elasticbeanstalk.com:80;
}
}