docker - 设置 https 访问 nginx docker 容器

标签 docker nginx https

我希望能够通过 https 访问 nginx docker 容器 https://192.168.99.100 .到目前为止,我已经完成了以下工作:
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。

有什么建议吗?

最佳答案

您的错误原因是因为您将 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。

关于docker - 设置 https 访问 nginx docker 容器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49879548/

相关文章:

docker - 在 docker alpine 上安装软件包时无法满足的约束

java https ://localhost (SSL) - possible without installing certs on client?

MongoDB Docker 副本集 - 应用程序连接超时

django postgresql 用户密码验证失败

node.js - 在 nginx 中为 Ghost 博客创建 uri

nginx - 在 nginx 图表中的 http-snippet 下定义 map 时出现语法错误

java - _programmatically_ 为 https urlconnections 找到所有支持的密码

python-3.x - 如何为通过 Gunicorn 运行的 Flask 应用程序获取 SSL?

python - 创建自定义 Docker 镜像可以工作,但在容器中使用已安装的 mysql-connector-python 则不行

nginx - 使用 NGINX 从 FTP 服务器获取静态文件