J'ai configuré un conteneur Docker pour exécuter Nginx et configurer le fichier/etc/nginx/sites-available/default comme indiqué ci-dessous
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;
}
}
Je mappe les dossiers/etc/ssl/certs &/etc/ssl/private sur l'hôte lorsque j'exécute le conteneur Docker
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>
et le fichier journal des erreurs nginx dans le dossier mappé/t-base/log reste vide.
docker exec -it <container-name> /bin/bash
suivi par
service nginx status
revient et dit que nginx est en cours d'exécution.
Tout ce qui précède indiquerait que tout fonctionne correctement. Cependant, je trouve que même si je suis en mesure de naviguer vers
http://example.com:8080
tourne la page par défaut
https://example.com:8081
a la Chrome me montrant sa page d'erreur par défaut "smiley triste". Je ne vois pas ce que je fais mal ici. J'apprécierais beaucoup toute aide.
Vous avez échangé les ports. Selon cette ligne de commande -p 8080:443 -p 8081:80
, tu devrais faire:
https://example.com:8080
notez qu'il s'agit de http s
et
http://example.com:8081
Cela devrait fonctionner