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

jHipster开发配置文件反向代理?,jhipster,Jhipster,我用jhipster创建了一个框架应用程序,并用import jdl添加了一些权限。现在我尝试运行dev概要文件,它在localhost:8080上托管它,这很好。但我想通过nginx将其代理到公共互联网,并将其置于SSL之后 现在,如果我使用Tomcat作为应用程序服务器,我可以在连接器上设置proxyHost属性,告诉应用程序服务器它面向公众的URL是什么,以便它正确地为客户端生成URL 但我不知道jhipster应用服务器在开发配置文件中使用了什么,也不知道如何配置它。有几种方法可以解决您

我用jhipster创建了一个框架应用程序,并用
import jdl
添加了一些权限。现在我尝试运行dev概要文件,它在localhost:8080上托管它,这很好。但我想通过nginx将其代理到公共互联网,并将其置于SSL之后

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


但我不知道jhipster应用服务器在开发配置文件中使用了什么,也不知道如何配置它。

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

最简单的方法是使用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;

}
这应该适用于每个nginx

这要求您的应用程序在本地主机的8080端口上运行,当您在本地启动它时会发生什么情况。这还要求您在服务器上安装java和更多内容

更好的方法是使用docker选项创建docker图像。有很多方法可以处理docker映像,如公共存储库DockerHub和私有解决方案GitLab容器注册表。至少,您可以通过在某个服务器上使用ssl来提供服务,从而将其用于私有注册表。 然后,您至少可以将应用程序部署到与上述相同的nginx配置,将流量定向到正在运行的docker容器。这样,您只需要运行docker和nginx的任意linux发行版

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


注意:我建议不要在生产中使用dev配置文件。若要保持应用程序日志的更新,请考虑特定的回溯配置或解决方案,如JSPSTER控制台(ELK堆栈)

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

最简单的方法是使用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;

}
这应该适用于每个nginx

这要求您的应用程序在本地主机的8080端口上运行,当您在本地启动它时会发生什么情况。这还要求您在服务器上安装java和更多内容

更好的方法是使用docker选项创建docker图像。有很多方法可以处理docker映像,如公共存储库DockerHub和私有解决方案GitLab容器注册表。至少,您可以通过在某个服务器上使用ssl来提供服务,从而将其用于私有注册表。 然后,您至少可以将应用程序部署到与上述相同的nginx配置,将流量定向到正在运行的docker容器。这样,您只需要运行docker和nginx的任意linux发行版

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


注意:我建议不要在生产中使用dev配置文件。为了保持应用程序日志的更新,请考虑特定的回溯配置或解决方案,如JPHISTER控制台(ELK堆栈)

(1),我已经用这种方式设置了NGNIX。(2) 我需要知道如何调整Undertow(jhipster的开发应用服务器)的配置,以便它知道在HTTP响应中提供给客户端的URL。目前,它告诉客户机从127.0.0.1获取数据,这显然不起作用。(3) 这是针对我的应用程序的一个测试/质量保证实例,所以开发人员配置文件很好。生产实例当然会使用prod配置文件。我不确定您到底在寻找什么。在angular客户端中设置的url,或者您正在处理电子邮件并在其中获得127.0.0.1,或者您正在处理HATEOAS并获得127.0.0.1作为基本url?请指定我的问题与代理设置无关。在我从JDL重新生成文件后,它现在工作正常。(1)我已经用这种方式设置了nginx。(2) 我需要知道如何调整Undertow(jhipster的开发应用服务器)的配置,以便它知道在HTTP响应中提供给客户端的URL。目前,它告诉客户机从127.0.0.1获取数据,这显然不起作用。(3) 这是针对我的应用程序的一个测试/质量保证实例,所以开发人员配置文件很好。生产实例当然会使用prod配置文件。我不确定您到底在寻找什么。在angular客户端中设置的url,或者您正在处理电子邮件并在其中获得127.0.0.1,或者您正在处理HATEOAS并获得127.0.0.1作为基本url?请指定我的问题与代理设置无关。在我从JDL重新生成文件后,它现在工作正常。