Назад | Перейти на главную страницу

Обратный прокси Nginx с Wildfly

У нас есть URL-адрес www.abc.com, который должен указывать на http: // IP: 8080 / app1 / index.html работает на wildfly-8.2.0.Final. У нас есть еще один URL-адрес www.def.com, на который мы хотим указать http: // IP: 8080 / app2 / index.html на той же установке wildfly.

Если мы используем:

server {
  listen       IP:80;
  server_name  www.abc.com;
    location / {
        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;
        proxy_pass http://IP:8080/;
    }
}

Это работает и позволяет нам изменить прокси-сервер www.abc.com на http: // IP: 8080 / это означает, что мы получаем страницу Wildfly по умолчанию. Это нам не поможет, так как у нас есть несколько URL-адресов, которые нужно перенаправить в разные приложения wildfly.

Это не сработало.

server {
  listen       IP:80;
  server_name  www.abc.com;
    location / {
        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;
        proxy_pass http://IP:8080/app1/;
    }
}

Это не сработало.

server {
  listen       IP:80;
  server_name  www.abc.com;
    location / {
        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;
        proxy_pass http://IP:8080/;
        root /var/www/www.abc.com/public_html;
        index  index.html;
    }
}

Index.html выглядит так:

<html>
<head>
<meta http-equiv="Refresh" content="0;url=/app1/index.html">
<title>Index Redirect</title>
</head>
</body>
</html>

Любые предложения приветствуются.

У меня что-то очень похожее работает, хотя мой бэкэнд - JBoss, а не Wildfly. В соответствующей части, пропуская мою конфигурацию SSL:

www1.example.com:

server {
    listen IP:80;
    server_name www1.example.com;
    location / {
        location /app1 {
            proxy_pass http://IP:8080/app1$request_uri;
            proxy_redirect http://IP:8080 http://www1.example.com;
            # proxy_set_header directives as needed
        }
    }
    location = / {
        return 301 http://www1.example.com/app1
    }
}

www2.example.com

# Like www1, but server_name www2.example.com and proxy paths set for app2.

Я понятия не имею, можно ли заставить это работать, скрывая путь к приложению от внешнего мира, но я подозреваю, что это можно сделать, просто переместив все директивы прокси в location / и опуская location = / {}