У нас есть 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 = / {}