我们有一个用于 API 的 tomcat 服务器和一个用于前端开发的 webpack 服务器。
tomcat 服务器处理身份验证并从身份验证提供程序接收身份验证 token 。这个 token 也必须用于来 self 的 webpack 服务器的所有请求。出于安全原因,我们不允许使用 localhost。所以我需要 tomcat 来提供来自 webpack 的静态文件。我已经弄清楚了最终构建的接线,它将 js 包放入 war 文件中。但我无法为开发服务器弄明白。
我们没有用于反向代理的 httpd 或 nginx。
如何将 Tomcat 中的静态资源代理到 webpack 开发服务器?我应该在 server.xml 中添加连接器还是类似的东西?
org.website.com/index.html -> localhost:3000/index.html
最佳答案
所以我们添加了 nginx,我通过添加一个服务器 block 来解决这个问题,该服务器 block 处理 tomcat 和开发服务器的代理逻辑。我能够从 publicPath '/dev/' 为 webpack 开发服务器提供服务。所以 mydomain.com/将服务于 tomcat 的 index.html 而 mydomain.com/dev 将服务于 webpack 的内容。这样我就可以在 mydomain.com/dev 中进行热重载时查询后端 tomcat api。
server {
listen 443 ssl;
server_name mydomain.com;
proxy_read_timeout 3500s;
ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
ssl_certificate ../cert/mydomain.cer;
ssl_certificate_key ../cert/mydomain.key;
root /usr/share/nginx/html;
location /dev/ {
proxy_pass https://localhost:3000;
expires off;
}
location /sockjs-node/ {
proxy_pass https://localhost:3000;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";
expires off;
}
location / {
proxy_set_header Host $host:$server_port;
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_redirect http:// https://;
proxy_pass https://localhost:8443;
proxy_http_version 1.1;
proxy_request_buffering off;
expires off;
}
}
我希望这对某人有帮助。
关于tomcat - 如何让 tomcat 从 webpack 开发服务器提供静态文件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54979067/