使用nginx容器的反向代理TOO_MANY_REDIRECTS

iszxjhcz  于 2022-11-02  发布在  Nginx
关注(0)|答案(1)|浏览(447)

我正在使用xibo-cms与docker,我想设置一个nginx代理服务器为ssl的目的,我创建了一个docker-compose文件与所有容器,但我总是得到错误TOO_MANY_REDIRECTS当我设置proxy_set_header Host $host;参数没有参数的url被重定向到容器服务名称,这是未知的浏览器.我不明白什么是错的,我的配置.
我 Docker composer

version: "2.1"

services:
    proxy:
        image: nginx:1.23.2-alpine
        volumes:
          - ./conf/:/etc/nginx/conf.d/
          - /etc/ssl/certs/STAR_mydomain.com.pem:/etc/ssl/certs/STAR_mydomain.com.pem
        ports:
          - "443:443"
          - "80:80"
        restart: always
    cms-db:
        image: mysql:5.7
        volumes:
            - "./shared/db:/var/lib/mysql:Z"
        environment:
            - MYSQL_DATABASE=cms
            - MYSQL_USER=cms
            - MYSQL_RANDOM_ROOT_PASSWORD=yes
        mem_limit: 1g
        env_file: config.env
        restart: always
    cms-xmr:
        image: xibosignage/xibo-xmr:0.9
        ports:
            - "9505:9505"
        restart: always
        mem_limit: 256m
        env_file: config.env
    cms-web:
        image: xibosignage/xibo-cms:release-3.2.1
        volumes:
            - "./shared/cms/custom:/var/www/cms/custom:Z"
            - "./shared/backup:/var/www/backup:Z"
            - "./shared/cms/web/theme/custom:/var/www/cms/web/theme/custom:Z"
            - "./shared/cms/library:/var/www/cms/library:Z"
            - "./shared/cms/web/userscripts:/var/www/cms/web/userscripts:Z"
            - "./shared/cms/ca-certs:/var/www/cms/ca-certs:Z"
        restart: always
        links:
            - cms-db:mysql
            - cms-xmr:50001
            - proxy
        environment:
            - XMR_HOST=cms-xmr
            - CMS_USE_MEMCACHED=true
            - MEMCACHED_HOST=cms-memcached
        env_file: config.env

# ports:

# - "8080:80"

        mem_limit: 1g
    cms-memcached:
        image: memcached:alpine
        command: memcached -m 15
        restart: always
        mem_limit: 100M
    cms-quickchart:
      image: ianw/quickchart
      restart: always

这是我的nginx配置

upstream docker-xibo {
        server xiboo-cms-web-1:80;
    }

   server {
     if ($host = display.mydomain.com) {
       return 301 https://$host$request_uri;
    }

     listen 80;
      server_name display.mydomain.com;
  }

    server {
        listen 443 ssl;
        server_name display.mydomain.com;

        ssl_certificate /etc/ssl/certs/STAR_mydomain.com.pem;
        ssl_certificate_key /etc/ssl/certs/STAR_mydomain.com.pem;

        location / {
            proxy_pass         http://docker-xibo;
            proxy_redirect     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_set_header   X-Forwarded-Host $server_name;
        }
    }

谢谢你

nnsrf1az

nnsrf1az1#

问题出在已经配置了https连接的nginx代理的后端配置是正确的。

相关问题