Spring 引导和 Nginx 集成
Spring Boot and Nginx integration
在我的项目中,Web 应用程序是使用 Spring 引导和默认 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。
也为我的网络应用程序 URL 作为:http://web_app_ip:web_app_port/rest/echo/hi
上面的 URL 工作正常。但是,当我尝试通过 NGINX 访问相同的 URI 时,它会抛出 404。URL 通过 NGINX 用作:
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 配置:nginx.conf
在我的项目中,Web 应用程序是使用 Spring 引导和默认 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。 也为我的网络应用程序 URL 作为:http://web_app_ip:web_app_port/rest/echo/hi
上面的 URL 工作正常。但是,当我尝试通过 NGINX 访问相同的 URI 时,它会抛出 404。URL 通过 NGINX 用作: 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 配置:nginx.conf