2015-01-13 8 views
16

Ich habe einen Docker Container konfiguriert Nginx und richten Sie die Datei/etc/nginx/sites-available/default-Datei wie unten gezeigtNginx SSL in einem Docker Container

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; 
} 


} 

I Karte/etc/ssl/laufen & certs/etc/ssl/private Ordner auf dem Host, wenn ich die docker Container laufen

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> 

und die nginx Fehlerlogdatei innerhalb des abgebildeten/t-base/Protokollordner bleibt leer.

docker exec -it <container-name> /bin/bash 

von

service nginx status 

kommt wieder nur gefolgt und sagt, dass nginx läuft.

Alle oben genannten würden anzeigen, dass alles korrekt funktioniert. Allerdings finde ich, dass, während ich in der Lage bin die Standardseite

https://example.com:8081 

zu

http://example.com:8080 

dreht sich bis zu durchsuchen hat die Chrome mir seine Standard „sad smiley“ Fehlerseite zeigt. Ich kann nicht sehen, was ich hier falsch machen könnte. Ich würde jede Hilfe sehr schätzen.

+1

Ihre Sicht funktionieren rückwärts s http

und

http://example.com:8081

Dies sollte hat aus deine Tests? 8080 = ssl, 8081 = nichtssl. – user2105103

Antwort

10

Sie haben die Ports vertauscht. Gemäß dieser Befehlszeile -p 8080:443 -p 8081:80, sollten Sie tun:

https://example.com:8080 Hinweis: Das ist es Befehl

Verwandte Themen