Я пытаюсь построить архитектуру/инфраструктуру на 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 и subsequences: /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 в расположении, заданном регулярным выражением, или внутри именованного местоположения
Итак, может ли кто-нибудь помочь этому нубу решить его проблему? Заранее спасибо. Я позволю ссылки, которые я читал ниже:
- правило nginx для подстановочного URL
- местоположение nginx на основе пути uri
- Как сделать переадресацию URL с Nginx
- Как переписать обратный прокси URI nginx с помощью proxy_pass? а>
- Понимание Nginx Server и блоков Location (DigitalOcean )а>