Nginx反向代理到Tomcat(简单是…。?否)

时间:2019-03-21 13:31:02

标签: docker tomcat nginx

我创建了一个docker-compose文件来旋转nginx和tomcat图像。我使用大量的文件,例如/etc/nginx/nginx.conf和/etc/nginx/conf.d/app.conf 与Tomcat相同,但具有xml配置文件和webapps。

两者都旋转起来并运行良好……靠自己。我可以浏览到Nginx并在其各自的端口81/8080上获得welcom页面和Tomcat的页面。

但是我无法将请求代理到后端tomcat。我承认,我是Apache,已经工作了多年,但我需要尝试一下。

我的nginx.conf尚未更改,仍为默认值。我有一个tomcat应用程序的app.conf(如下)。我确实尝试过将CMD转换为tomcat Dockerfile中的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:

谢谢

1 个答案:

答案 0 :(得分:0)

在您的nginx conf中,您拥有listen *:81,但是您正在使用80公开端口"81:80"

因此,可以使用81公开端口"81:81"或将nginx配置更改为listen *:80

如果第二个选项不起作用,请尝试通过更改docker-compose.yml中的卷文件来替换原始的nginx配置:

volumes:
  - ./nginx/nginx-evf.conf:/etc/nginx/conf.d/default.conf