попробуйте следующие конфигурации, он в основном перенаправляет HTTP-трафик c на HTTPS для определенных доменов и обрабатывает https только для www.example.com example.com;
server {
listen 80 default_server;
server_name _;
return 301 https://example.com$request_uri;
}
server {
listen 80;
server_name www.example.com
return 301 https://$host$request_uri;
}
server {
listen 80;
server_name example.com
return 301 https://$host$request_uri;
}
server {
listen 443 ssl http2 default_server;
server_name www.example.com example.com;
set $base /var/www/example.com;
root $base/public;
access_log /var/log/nginx/example.com/access.log;
error_log /var/log/nginx/example.com/error.log;
index index.php;
server_name www.example.com example.com;
location / {
try_files $uri $uri/ /index.php?$args;
}
location ~ \.php$ {
include snippets/fastcgi-php.conf;
fastcgi_pass unix:/run/php/php7.3-fpm.sock;
}
ssl_certificate /etc/letsencrypt/live/example.com/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/example.com/privkey.pem;
include /etc/letsencrypt/options-ssl-nginx.conf;
ssl_dhparam /etc/letsencrypt/ssl-dhparams.pem;
}
необходимо перезагрузить Nginx конфигурации после добавления вышеуказанных конфигов и тестирования в приватном окне в chrome и firefox (лучше протестировать с помощью этой команды curl curl --head http://zzz
)