在我的项目中,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_ip 和 nginx_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
有什么我想念的吗?
这对我有用。你可以试试这个吗?
运行tomcat
docker run -d -p 8080:8080 --name=tomcat tomcat:8
运行nginx
docker run -d -p 80:80 --link tomcat:tomcat --name=nginx nginx
进入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; } }
重新启动nginx服务
nginx -s reload
从主机浏览器通过nginx访问tomcat。您可能需要将条目添加到/ etc / hosts
http://subdomain.domain.com
完整的nginx conf:nginx.conf