Конфигурация Nginx как обратного прокси-сервера SSL = сбой соединения

#nginx #ssl #docker-compose

#nginx #ssl #docker-compose

Вопрос:

Я хотел бы использовать nginx в качестве интерфейса SSL для веб-сайта apache HTTP. Я сократил свою конфигурацию до самой простой:

Nginx default.conf

 server {
    listen 80;
    return 301 https://$host$request_uri;
}

#Work in progress
server {
    listen 443 ssl defau<
    
    ssl_certificate           /etc/ssl/certs/pem-1620200742-1020479.pem;
    ssl_certificate_key       /etc/ssl/certs/mycomp.com.key;
    

    location / {    
        proxy_set_header X-Real-IP  $remote_addr;
        proxy_set_header X-Forwarded-For $remote_addr;
        proxy_set_header Host $host;
        proxy_pass http://wip:80;
    }
}
 

docker-compose.yml:

     version: '2'
services:
    reverse:
        image: nginx
        container_name: reverse
        ports:
            - 80:80
            - 443:443    #This addition solves the problem!!! 
        networks: 
            - mynet
        volumes:
            - ./reverse/default.conf:/etc/nginx/conf.d/default.conf
            - ./reverse/ssl:/etc/ssl/certs      
    wip:
        image: httpd:2.4
        container_name: wip
        environment:
          TZ: "France/Paris"
        ports:
            - 8096:80
        networks: 
            - mynet                 
networks:
    mynet:
        driver: "bridge"
        ipam:
            driver: default
 

в журналах все выглядит нормально:

nginx:

 /docker-entrypoint.sh: /docker-entrypoint.d/ is not empty, will attempt to perform configuration
/docker-entrypoint.sh: Looking for shell scripts in /docker-entrypoint.d/
/docker-entrypoint.sh: Launching /docker-entrypoint.d/10-listen-on-ipv6-by-default.sh
10-listen-on-ipv6-by-default.sh: info: Getting the checksum of /etc/nginx/conf.d/default.conf
10-listen-on-ipv6-by-default.sh: info: /etc/nginx/conf.d/default.conf differs from the packaged version
/docker-entrypoint.sh: Launching /docker-entrypoint.d/20-envsubst-on-templates.sh
/docker-entrypoint.sh: Configuration complete; ready for start up
172.18.0.1 - - [10/Dec/2021:09:15:04  0000] "GET / HTTP/1.1" 301 169 "-" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/96.0.4664.55 Safari/537.36 Edg/96.0.1054.43" "-"
 

Nginx запускается нормально, получает 80 подключений, но ничего о 443 соединениях

При просмотре https://127.0.0.1 Я получаю сообщение «сбой соединения». То же самое, используя следующую команду:

 telnet 127.0.0.1 443
 

Это означает, что nginx не прослушивает 443

Я проверил проблемы с сетью с помощью tinyweb. Порт 443 не заблокирован брандмауэром или чем-либо еще.

Вы имеете какое-либо представление о том, что не так с моей конфигурацией nginx?

Комментарии:

1.Ваш nginx в порядке. В reverse контейнере вы предоставили только сообщение 80, а не порт 443, поэтому он недоступен извне контейнера.

2. Да! это решение, спасибо