NGINX-Spring Boot应用程序(未找到“ /etc/nginx/html/index.html”)

时间:2019-06-05 18:41:50

标签: spring spring-boot docker nginx

所以我有要放在nginx后面的spring boot应用程序,问题是访问本地主机时连接被拒绝。

我的nginx配置是什么样的:

    server {

    listen 80;
    server_name workaround;
    charset utf-8;
    access_log off;


    location / {
       proxy_pass http://172.19.0.3:8080/workaround;
       proxy_set_header X-Real-IP         $remote_addr;
       proxy_set_header X-Forwarded-For   $proxy_add_x_forwarded_for;
       proxy_set_header X-Forwarded-Host  $host;

     }
}

我正在运行什么:

enter image description here

访问本地主机时得到的响应

enter image description here

找不到

404。当它在我的docker compose文件中时,如何寻找一些etc / nginx / html / index: enter image description here

  nginx:
    container_name: workaround-nginx
    image: nginx:1.15.12-alpine
    restart: always
    ports:
      - 80:80
      - 443:443
    volumes:
      - ./nginx/conf.d:/etc/nginx/conf.d
      - ./data/certbot/conf:/etc/letsencrypt
      - ./data/certbot/www:/var/www/certbot
    depends_on:
      - workaround

我的配置有什么问题?如何正确访问SB应用程序?

  • 我尝试使用localhost代替无效的IP bud。 由于它在应用未运行的地方使用了nginx ip。
  • 我正在考虑以某种方式重写nginx bud的默认配置,我该如何甚至从dockerfile中执行此操作,然后为什么在已经设置了卷映射的情况下不得不强制这样做?

1 个答案:

答案 0 :(得分:0)

好吧,我弄清楚了,我什至设法解决了它,因此它可以与具有哈希前缀的资源一起使用:

events {
  worker_connections 1024;
}

http {

  server {
        listen 80;
        charset utf-8;
        access_log off;
        try_files $uri $uri/ =404;

        location / { #this still has to be here, otherwise i get ISE
            proxy_pass http://workaround:8085/;
        }

        location ^~ { #this thing fixes hashes and resources
            proxy_pass              $scheme://workaround:8085/$request_uri;
            proxy_redirect  off;
            proxy_set_header        X-Real-IP $remote_addr;
            proxy_set_header        X-Forwarded-For $proxy_add_x_forwarded_for;
            proxy_set_header        Host $http_host;
            expires 30d;
         }
    }


}