docker容器内的Nginx SSL

docker容器内的Nginx SSL,nginx,docker,Nginx,Docker,我已经配置了一个Docker容器来运行Nginx并设置/etc/Nginx/sites available/default文件,如下所示 server { listen 80 default_server; listen [::]:80 default_server ipv6only=on; root /usr/share/nginx/html; index index.php index.html index.htm; server_name example.com; lo

我已经配置了一个Docker容器来运行Nginx并设置/etc/Nginx/sites available/default文件,如下所示

server 
{
 listen 80 default_server;
 listen [::]:80 default_server ipv6only=on;

 root /usr/share/nginx/html;
 index index.php index.html index.htm;

 server_name example.com;

 location / {
            try_files $uri $uri/ /index.html;
    }

    error_page 404 /404.html;

    error_page 500 502 503 504 /50x.html;
    location = /50x.html {
          root /usr/share/nginx/html;
    }


    location ~ \.php$ {
        try_files $uri =404;
        fastcgi_split_path_info ^(.+\.php)(/.+)$;
    fastcgi_pass unix:/var/run/php5-fpm.sock;
    fastcgi_index index.php;
            fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;   
        include fastcgi_params;
 }

}

server 
{
 listen 443;

 root /usr/share/nginx/html;
 index index.php index.html index.htm;

 server_name example.com;

 ssl    on;
 ssl_certificate    /etc/ssl/certs/ssl-cert-snakeoil.pem;
 ssl_certificate_key    /etc/ssl/private/ssl-cert-snakeoil.key;


 location / {
            try_files $uri $uri/ /index.html;
    }

    error_page 404 /404.html;

    error_page 500 502 503 504 /50x.html;
    location = /50x.html {
          root /usr/share/nginx/html;
    }


location ~ \.php$ {
        try_files $uri =404;
        fastcgi_split_path_info ^(.+\.php)(/.+)$;
    fastcgi_pass unix:/var/run/php5-fpm.sock;
    fastcgi_index index.php;
            fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;   
        include fastcgi_params;
 }


}
运行docker容器时,我映射主机上的/etc/ssl/certs&/etc/ssl/private文件夹

docker run -dt -p 8080:443 -p 8081:80 -v /t-base/log:/var/log/nginx -v
/etc/ssl/certs:/etc/ssl/certs -v /etc/ssl/private:/etc/ssl/private nginx

Docker ps shows

Up n minutes 0.0.0.0:8081->80/tcp 0.0.0.0:8080->443/tcp <container-name>
只是回来说nginx正在运行

所有这些都表明一切正常。然而,我发现,虽然我能够浏览到

http://example.com:8080
打开默认页面

https://example.com:8081

Chrome显示了默认的“悲伤笑脸”错误页面。我看不出我在这里做错了什么。非常感谢您的帮助。

您已经交换了端口。根据此命令行
-p8080:443-p8081:80
,您应该执行以下操作:

https://example.com:8080
注意这是https

http://example.com:8081


这应该可以工作

您的run命令是否将其从测试中向后移动?8080=ssl,8081=nonssl。
http://example.com:8080
https://example.com:8081