Spring 引导配置 Domain/Host 以 www.website.com 方式访问

Spring Boot configure a Domain/Host to access in a www.website.com fashion

我有一个 spring 启动应用程序。通常我 运行 我的 Spring 应用程序在 PaaS 实例上,从那里配置域名很容易,但是我 运行 在虚拟专用服务器上使用它,我不能,因为我的生活,弄清楚如何 运行 我的 spring 启动以便可以通过域名访问它。

我已经更改了我的 DNS 设置,因此它指向我的虚拟专用服务器,这个 VPS 也 运行 一些其他基于 apache 的静态网站,我非常有信心我的 DNS 设置是正确。

我的 spring 引导应用程序 运行ning 使用 spring-boot-starter-tomcat,应用程序部署正常,我可以获取我的 .war 文件并使用 [=13 部署它=] 在服务器上。

也可以通过在浏览器上写入 my.server.ip:8080 来远程访问该应用程序。

但是,我一直在谷歌搜索,但无法弄清楚如何配置 Spring 启动,以便它使用我的域名,以便我可以以标准方式访问该网站:www.mywebsite.com,或者更好的是还添加一个别名,这样 mywebsite.comwww.mywebsite.com 都有效。

任何人都可以指出我正确的方向吗?我知道这个 can be done in Tomcat 但我不知道如何配置它。

因为这是一个 Spring 引导应用程序,我没有 .xml 文件,我的 Spring 引导配置在 application-prod.yml 文件中,唯一的 .xml 我使用的文件是 pom.xml 本身。

如有任何帮助,我们将不胜感激。

从技术上讲,您可以在 Tomcat 中做到这一点。但是,要使用端口 80 或 443 启动应用程序,您必须 运行 它具有 root 权限。因此,我建议将 Apache HTTP 或 Nginx 服务器配置为反向代理(您可以找到有关该主题的许多教程)。

由于缺乏回应,我决定采用 dunni 提出的方法。

下面是我使用 Nginx 的方法:

我去干净了windows安装nginx/conf/nginx.conf

然后我改变了一些东西,这是我完整的 nginx.conf 文件:

nginx.conf

worker_processes  1;
events {
    worker_connections  1024;
}

http {
    include       mime.types;
    default_type  application/octet-stream;
    include C:/path-to-nginx/nginx/conf/sites-enabled/*.conf;
}

然后我在 nginx/conf/sites-enabled

中创建了文件夹 sites-enabled

我继续在文件夹 sites-enabled:

中创建 mywebsite.conf

mywebsite.conf

server {
    server_name  mywebsite.com;

    location / {
        proxy_set_header X-Forwarded-Host $host;
        proxy_set_header X-Forwarded-Server $host;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_pass http://localhost:8080;
    }
}

此时如果一切正常,您应该可以访问您的 Tomcat 应用程序!我使用了很多参考资料,所以我将它们全部放在下面:


http://www.mkyong.com/nginx/nginx-apache-tomcat-configuration-example/

http://javadeveloper.asia/configuring-nginx-in-front-of-tomcat-or-other-java-application-server

http://nginx.org/en/docs/windows.html

nginx Windows: setting up sites-available configs

干杯。