У меня только один порт открыт в брандмауэре и работает несколько служб. Я хочу перенаправить запрос на основе URI в другое приложение. Например, если я обращаюсь к http: example.com: 8443 / test1 для перенаправления в одно приложение, работающее на порту 8440, и если я получаю доступ к http: example.com: 8443 / test1 для перенаправления на главный процесс nginx, работающий на порту 80
Мой файл конфигурации выглядит так:
server {
listen 127.0.0.1:8443;
location /test1{
proxy_pass http://127.0.0.1:8230;
}
}
server {
listen 127.0.0.1:8443;
client_max_body_size 100m;
location /test2{
proxy_pass http://127.0.0.1:80; #Nginx master webserver port
}
}
Но когда я получаю доступ к localhost: 8443 / test2, я получаю 403 Forbidden
но если я перенаправляю порт для test1 на 80, как это
server {
listen 127.0.0.1:8443;
location /test1{
proxy_pass http://127.0.0.1:80;
}
}
это работает.
У вас должен быть только 1 сервер, поскольку они оба слушают 127.0.0.1:8443
. Тогда у вас будет два блока местоположения внутри этого сервера, например:
server {
listen 127.0.0.1:8443;
client_max_body_size 100m;
location /test1 {
proxy_pass http://127.0.0.1:8230;
}
location /test2 {
proxy_pass http://127.0.0.1:80; #Nginx master webserver port
}
}
Кроме того, помните, что вы проксирование трафик, а не перенаправлять его. Вам, вероятно, понадобится гораздо больше настроек в зависимости от того, как настроены ваши приложения, поскольку /test2
скорее всего, также будут переданы прямо на ваш сервер через порт 80.
Обновить: для поддержки PHP вам необходимо убедиться, что php-fpm установлен, и вам понадобится блок местоположения на вашем главном сервере nginx, например:
location ~ \.php$ {
proxy_pass http://your_ip_address:8080;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
}