2015-01-13 2 views
16

Ho configurato un contenitore Docker per eseguire Nginx e impostare il file/etc/nginx/sites-available/default come mostrato qui sottoNginx SSL all'interno di un contenitore finestra mobile

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


} 

traccio/etc/ssl/certs &/etc/ssl/cartelle private sul host quando corro il contenitore finestra mobile

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> 

e il file di log degli errori nginx all'interno della cartella/t-base/log mappato rimane vuota.

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

seguito da

service nginx status 

arriva appena indietro e dice che nginx è in esecuzione.

Tutto ciò indica che tutto funziona correttamente. Tuttavia, ritengo che, mentre io sono in grado di navigare a

http://example.com:8080 

salta fuori la pagina di default

https://example.com:8081 

ha il Chrome mi mostra la sua pagina di errore predefinita "faccina triste". Non riesco a vedere cosa potrei fare storto qui. Apprezzerei molto qualsiasi aiuto.

+1

vostro comando di marcia ha all'indietro da i tuoi test? 8080 = ssl, 8081 = nonssl. – user2105103

risposta

10

Hai intercambiato le porte. Secondo questa linea di comando -p 8080:443 -p 8081:80, si dovrebbe fare:

https://example.com:8080 notare che questo è http s

e

http://example.com:8081

Questo dovrebbe funzionare