我创建了一个 docker-compose 文件来启动 nginx 和 tomcat 镜像。我使用大量文件,例如/etc/nginx/nginx.conf 和/etc/nginx/conf.d/app.conf 与 Tomcat 相同,但使用 xml 配置文件和 webapps。
两者都启动并运行良好……它们自己。我可以浏览到 Nginx 并在各自的端口 81/8080 上获取欢迎页面以及 Tomcat 的欢迎页面。
但是我无法将请求代理到后端 tomcat。我承认,我是 Apache 多年,但我需要试验。
我的 nginx.conf 没有改变,它仍然是默认的。我有一个用于 tomcat 应用程序的 app.conf(如下)。我确实尝试在 teh tomcat Dockerfile 中使用 CMD mv default.conf,但它仍然保留在我的 app.conf 旁边,所以可能会导致问题? 我的 app.conf 配置在这里:(抱歉,无法正确输出代码)
"server {
listen *:81;
set $allowOriginSite *;
proxy_pass_request_headers on;
proxy_pass_header Set-Cookie;
access_log /var/log/nginx/access.log combined;
error_log /var/log/nginx/error.log error;
# Upload size unlimited
client_max_body_size 0;
location /evf {
proxy_pass http://tomcat:8080;
proxy_next_upstream error timeout invalid_header http_500 http_502 http_503 http_504;
proxy_redirect off;
proxy_buffering off;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_pass_header Set-Cookie;
}
}
tomcat:8080 是我的 docker-compose 文件中的服务名称。 任何帮助将不胜感激!
谢谢, 克雷格
docker-compose.yml 供引用; 版本:'3'
services:
nginx:
build: ./nginx
image: nginx:evf
command: nginx -g "daemon off;"
networks:
- evf
container_name: evf-nginx
volumes:
- ./volumes/config/nginx-evf.conf:/etc/nginx/conf.d/nginx-evf.conf
- ./volumes/config/default.conf.disabled:/etc/nginx/conf.d/default.conf.disabled
ports:
- "81:80"
tomcat:
image: tomcat
working_dir: /usr/local/tomcat
volumes:
- ./volumes/config/tomcat-users.xml:/usr/local/tomcat/conf/tomcat-users.xml
- ./volumes/webapps/EVF.war:/usr/local/tomcat/webapps/EVF.war
networks:
- evf
container_name: evf-tomcat
ports:
- "8080:8080" #expose 8080 externally to test connectivity.
networks:
evf:
谢谢,
最佳答案
在您的 nginx conf 中,您有 listen *:81
但您正在使用 "81:80"
公开端口 80
。
因此,要么使用"81:81"
公开端口81
,要么将您的nginx 配置更改为listen *:80
。
如果第二个选项不起作用,请尝试通过更改 docker-compose.yml
中的卷文件来替换原始的 nginx 配置:
volumes:
- ./nginx/nginx-evf.conf:/etc/nginx/conf.d/default.conf
关于docker - Tomcat 的 Nginx Rverse 代理(简单的是……?否),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55281577/