如何使tomcat从Webpack开发服务器提供静态文件?

时间:2019-03-04 08:12:59

标签: tomcat webpack webpack-dev-server

我们有一个用于API的tomcat服务器和一个用于前端开发的webpack服务器。

tomcat服务器处理身份验证并从身份验证提供程序接收身份验证令牌。这个令牌也必须在我的webpack服务器的所有请求中使用。出于安全原因,我们不允许使用localhost。所以我需要tomcat从webpack提供静态文件。我已经弄清楚了将js捆绑包放入war文件中的最终版本的布线。但是我无法为开发服务器弄清楚。

我们没有httpd或nginx用于反向代理。

如何将Tomcat中的静态资源代理到Webpack开发服务器?我应该在server.xml中添加连接器还是类似的东西?

org.website.com/index.html-> locahost:3000 / index.html

1 个答案:

答案 0 :(得分:0)

因此,我们添加了nginx,我通过添加一个服务器块解决了这一问题,该服务器块可处理tomcat和dev服务器的代理逻辑。我可以从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;
    }

  }

我希望这对某人有帮助。