设置对nginx docker容器的https访问

时间:2018-04-17 13:33:31

标签: docker nginx https

我希望能够通过https://192.168.99.100上的https访问nginx docker容器。到目前为止,我已经完成了以下工作:

Dockerfile

FROM nginx

COPY certs/nginx-selfsigned.crt /etc/ssl/certs/
COPY certs/nginx-selfsigned.key /etc/ssl/private/

COPY default-ssl.conf /etc/nginx/sites-available/default

EXPOSE 443

我在文件夹certs中有相应的证书文件。

default-ssl.conf

server {
    listen       80;
    listen       443 ssl;
    server_name  localhost;
    ssl_certificate /etc/ssl/certs/nginx-selfsigned.crt;
    ssl_certificate_key /etc/ssl/private/nginx-selfsigned.key;
    location / {
        root   /usr/share/nginx/html;
        index  index.html index.htm;
    }
    error_page   500 502 503 504  /50x.html;
    location = /50x.html {
        root   /usr/share/nginx/html;
    }
}

docker-compose.yaml

version: '3'

services:
  nginx:
    image: mynamespace/nginx_pma
    container_name: nginx_pma
    build:
      context: .
    ports: 
      - 443:443
      - 80:80

所以,当我运行这个时,我可以访问:192.168.99.100,显示NGINX欢迎页面,但我无法在https://192.168.99.100上运行。

主机是带有docker工具箱的Windows 7。

任何sugestions?

1 个答案:

答案 0 :(得分:1)

出错的原因是因为默认情况下不会加载将nginx SSL配置复制到文件夹nginx。 在Dockerfile中更改此行后 -
COPY default-ssl.conf /etc/nginx/sites-available/default
对此 -
COPY default-ssl.conf /etc/nginx/conf.d/default-ssl.conf
我可以通过https到达Nginx。