我希望能够通过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?
答案 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。