jHipster 开发配置文件反向代理?

all*_*tic 0 jhipster

我使用 jhipster 创建了一个骨架应用程序,并使用import-jdl. 现在我尝试运行开发配置文件并将其托管在 localhost:8080 上,这很好。但我想通过nginx将其代理到公共互联网并将其放在SSL后面。

现在,如果我使用 Tomcat 作为应用程序服务器,我可以设置 的proxyHost属性来Connector告诉应用程序服务器其面向公众的 URL 是什么,以便它正确地为客户端生成 URL。

但我不知道 jhipster 使用什么应用程序服务器作为开发配置文件或如何配置它。

Dav*_*man 5

有几种方法可以解决您的问题,

最简单的一种是使用 nginx 进行反向代理,如下所示:

server {
  listen      [::]:80;
  listen      80;
  server_name your-domain.com;

  access_log  /var/log/nginx/your-app-access.log;
  error_log   /var/log/nginx/your-app-error.log;

  return 301 https://$host:443$request_uri;
}
server {
  listen      [::]:443 ssl;
  listen      443 ssl;
  server_name your-domain.com; 

  access_log  /var/log/nginx/your-app-access.log;
  error_log   /var/log/nginx/your-app-error.log;

  ssl_certificate     /path/to/ssl/server.crt;
  ssl_certificate_key /path/to/ssl/server.key;

  keepalive_timeout   70;
  add_header          Alternate-Protocol  443:npn-spdy/2;
  location    / {
    proxy_pass  http://jhipster;
    proxy_http_version 1.1;
    proxy_set_header Upgrade $http_upgrade;
    proxy_set_header Connection "upgrade";
    proxy_set_header Host $http_host;
    proxy_set_header X-Forwarded-Proto $scheme;
    proxy_set_header X-Forwarded-For $remote_addr;
    proxy_set_header X-Forwarded-Port $server_port;
    proxy_set_header X-Request-Start $msec;
  }
}

upstream jhipster {

  server 127.0.0.1:8080;

}
Run Code Online (Sandbox Code Playgroud)

它应该适用于每个 nginx。

这期望您的应用程序在本地主机的端口 8080 上运行,当您在本地启动它时会出现什么情况。这还需要您在服务器上安装 java 和更多东西。

更好的方法是使用 docker 选项来创建 docker 镜像。有很多方法可以处理 Docker 镜像,例如 DockerHub 等公共存储库以及 GitLab 容器注册表等私有解决方案。至少您可以通过使用 ssl 在某个服务器上提供注册表 docker 映像来实现一个技巧,以将其用于私有注册表。然后,您至少可以将应用程序部署到与上面所写的相同的 nginx 配置,将流量引导到正在运行的 docker 容器。有了这个,你只需要一个运行着 docker 和 nginx 的任意 Linux 发行版。

为了获得 CI/CD 系统的强大功能,您可以将这些映像部署到 kubernetes 等复杂系统,也可以部署到 docker swarm(+ Docker Shipyard ),或者部署到DeisDokku等更小且更易于设置的解决方案。您可以阅读这篇文章,它指导您完成 GitLab + GitLab CI + Registry + Dokku 的设置,您可以在其中使用以下命令部署 JHipster 应用程序git push origin master

注意:我建议不要在生产中使用开发配置文件。要保持应用程序日志的更新,请考虑特定的 logback 配置或解决方案,例如 JHipster Console(ELK Stack)