gpt4 book ai didi

tomcat - Nginx 将每个请求转发给 apache tomcat

转载 作者:行者123 更新时间:2023-11-28 23:38:21 24 4
gpt4 key购买 nike

所以我有一个基本设置。我有 1 个名为 domain.com 的主域。在它下面是 3 个子域。 sub1.domain.com、sub2.domain.com 和 sub3.domain.com。现在我想将每个请求转发给 tomcat,但我有一个虚拟主机设置,其中子域是动态的。因此,当我将请求转发到 tomcat 时,sub1.domain.com 可以从 sub2.domain.com 访问应用程序,因为它们都在同一个 tomcat 实例上运行。是否可以动态传递这个。即,当我添加一个新的子域时,它会自动与其他 tomcat 实例分开吗?它是否能够获得自己的 tomcat 实例?

这是我的 nginx.conf:

server {
listen 80;
server_name *.domain.com;
root /var/www/$host;
index index.php index.html index.htm;

include error_pages;
include php_config;

location /backend {
proxy_set_header X-Forwarded-Host $http_host;
proxy_set_header X-Forwarded-Server $http_host;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_pass http://localhost:8080;
}

if (-e /var/www/$host/ssl/$host) {
rewrite ^ https://$host$request_uri? permanent;
}

}

我也有一个 https 服务器 block ,但目前这并不重要。第二点,当我尝试访问后端时收到 404,我该怎么做才能解决这个问题?这样当我转到 sub1.domain.com/backend 时,我就能看到 tomcat 界面?

我对我的 nginx.conf 文件做了一些更改,我摆脱了 Tomcat 404 页面,我可以看到 Tomcat 正在工作......很好。我可以阅读文本,仅此而已。没有图形界面没有图片只有文本和链接。这就是我的配置文件的样子。

#DOMAIN.COM

upstream backend {
server localhost:8080;
}

server {
listen 80 default;
listen 443 ssl;
server_name www.domain.com domain.com;
root /var/www;
index index.php index.html index.htm;

ssl_certificate certificates/klant.nl.crt;
ssl_certificate_key certificates/klant.nl.key;

include error_pages;
include php_config;

location /backend {
proxy_set_header X-Forwarded-Host $http_host;
proxy_set_header X-Forwarded-Server $http_host;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_pass http://backend/;
}
}

我知道出了什么问题......感觉很愚蠢。我应该导航到 domain.com/backend/而不是 domain.com/backend。

最佳答案

如果 Tomcat 不关心目标主机名,则将所有域的所有请求映射到 Tomcat,并且只使用一个 <Host>在 Tomcat 中设置为 defaultHost<Engine> .

这是 Tomcat 默认配置的方式:a localhost引擎的默认主机。部署到该主机的任何 Web 应用程序(默认情况下位于 webapps/ 中的应用程序)将响应任何传入的请求,而不管 HTTP Host 的内容如何通常选择将处理请求的虚拟主机的 header 。

关于tomcat - Nginx 将每个请求转发给 apache tomcat,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22501670/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com