我使用jhipster创建了一个骨架应用,并添加了import-jdl
的一些权限。现在我试图运行dev配置文件并将它托管在localhost:8080上,这很好。但我想通过nginx将其代理到公共互联网并将其置于SSL之后。
现在,如果我使用Tomcat作为应用服务器,我可以在proxyHost
上设置Connector
属性,告诉应用服务器它面向公众的URL是什么,以便为客户端生成URL正常。
但我不知道app server jhipster用于开发配置文件或如何配置它。
答案 0 :(得分:4)
有几种方法可以解决您的问题,
最简单的一种是使用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。
这要求您的应用程序在localhost上的端口8080上运行,在本地启动时会出现这种情况。这还需要您在服务器上安装java和更多内容。
更好的方法是使用docker选项创建docker镜像。有很多方法可以处理docker镜像,比如DockerHub这样的公共存储库以及像GitLab Container注册表这样的私有解决方案。至少你可以通过使用ssl在某个服务器上提供registry docker image来做一个技巧,将其用于私有注册表。 然后,您至少可以将应用程序部署到与上面所述相同的nginx配置,将流量定向到正在运行的docker容器。有了这个,你只需要一个带有docker和nginx的任意linux发行版。
要获得CI / CD系统的强大功能,您可以将这些图像部署到复杂的系统(如kubernetes),也可以部署到docker swarm(+ Docker Shipyard),或更小,更容易设置的解决方案,如{{3 }或Deis。您可以阅读Dokku,它将指导您完成GitLab + GitLab CI + Registry + Dokku的设置,您可以使用git push origin master
部署JHipster应用程序
note :我建议不要在制作中使用开发配置文件。要使用应用程序日志保持更新,请将特定的logback配置或解决方案视为JHipster控制台(ELK堆栈)