Я пытаюсь построить архитектуру / инфраструктуру на Amazon Web Services. Сегодня у меня EC2 работает как шлюз с NGINX на заднем плане. Кстати, я новичок в NGINX.
На прошлой неделе у меня был этот конфигурационный файл NGINX:
server {
listen 80;
# I put * for hide the real domain name
server_name ******.com.ar www.******.com.ar;
location / {
proxy_set_header X-Forwarded-For $remote_addr;
proxy_set_header Host $http_host;
proxy_pass "http://private.ip.1:80/";
}
}
И это прекрасно сработало! Когда я захожу на www.domain.com.ar, я получаю перенаправление на частный ip 1 на порт 80.
Но сейчас мне нужно немного настроить файл конфигурации.
1) Во-первых, мне нужно перенаправить некоторые известные пути к частному ip 1 (например, / company, / portfolio, / services, / contact и подпоследовательности: / company / ourvision, / services / software, / contact / workwithus) , Я использую NodeJS, а не PHP.
2) И если ни один из предыдущих путей не соответствует, мне нужно получить первый URI-сегмент в качестве подстановочного знака (например, http://domain.com.ar/*), сопоставляющий только следующие символы: A-z0-9 и отправить на частный ip 2 через порт 3000, также мне нужно отправить слово подстановки тоже (например, http://private.ip.2:3000/wildcard-word)
Я только пытался добиться успеха в своем втором пункте, но я не мог справиться с этим.
server {
listen 80;
server_name ******.com.ar www.******.com.ar;
location / {
proxy_set_header X-Forwarded-For $remote_addr;
proxy_set_header Host $http_host;
proxy_pass "http://private.ip.1:80/";
}
location ~ ^/(.*)/?$ {
proxy_set_header X-Forwarded-For $remote_addr;
proxy_set_header Host $http_host;
proxy_pass "http://private.ip.2:3000/$1";
}
}
Но это не работает.
Когда я перехожу на http://example.com.ar, я сразу перехожу к частному ip 2 на порту 3000. Кстати, в другом сценарии я получаю следующую ошибку при использовании команды nginx -t : «proxy_pass» не может иметь часть URI в местоположении, заданном регулярным выражением, или внутри именованного местоположения
Итак, кто-нибудь может помочь этому нубу решить его проблему? Заранее спасибо. Я позволю ссылкам, которые я читал ниже: