小编典典

Spring Boot和Nginx集成

spring-boot

在我的项目中,Web应用程序是使用Spring
Boot和默认的tomcat服务器开发的。我正在使用NGINX作为负载均衡器,并在NGINX配置中配置了spring-boot-web-app,如下所示:

location /spring-boot-web-app {
     proxy_pass http://spring-boot-web-app/
}

http {
    upstream /spring-boot-web-app {
        server <IP_of_spring_boot_app>:<Port_of_spring_boot_app>
    }
}

现在,假设NGINX IP和端口分别为 nginx_ipnginx_port 。我的Web应用程序的有效URL也为:
http:// web_app_ip:web_app_port / rest / echo /
hi

上面的URL可以正常工作。但是,当我尝试通过NGINX击中相同的URI时,它会抛出404。通过NGINX使用的URL为: http://
nginx_ip:nginx_port / spring-boot-web-app / rest / echo /
hi

有什么我想念的吗?


阅读 664

收藏
2020-05-30

共1个答案

小编典典

这对我有用。你可以试试这个吗?

  1. 运行tomcat

    docker run -d -p 8080:8080 --name=tomcat tomcat:8
    
  2. 运行nginx

    docker run -d -p 80:80 --link tomcat:tomcat --name=nginx nginx
    
  3. 进入nginx容器并更新conf

    docker exec -it nginx bash
    

/etc/nginx/nginx.conf:

    server {
   listen 80 default_server;
  server_name subdomain.domain.com;
  location / {
      proxy_pass http://tomcat:8080;
      proxy_set_header Host      $host;
      proxy_set_header X-Real-IP $remote_addr;
  }
}
  1. 重新启动nginx服务

    nginx -s reload
    
  2. 从主机浏览器通过nginx访问tomcat。您可能需要将条目添加到/ etc / hosts

    http://subdomain.domain.com
    

完整的nginx
conf:nginx.conf

2020-05-30