O local que contém o proxy_pass é definido apenas para arquivos PHP proxy. Esta linha aqui
location ~ \.php$ {
A primeira coisa que eu tentaria é mover todo esse bloco para o bloco "location /" principal.
Sua reescrita https usa uma declaração if, o que não é ideal - leia " se for mal ". Se você quiser que os clientes usem https, a melhor maneira é criar uma série de servidores para encaminhar, como este
# Forward non-www requests to www
server {
listen 80;
server_name example.com www.example.com;
access_log /var/log/nginx/hr.access.log main buffer=128k flush=1m if=$log_ua;
return 301 https://www.example.com$request_uri;
}
server {
listen 443 ssl http2;
server_name example.com;
ssl_certificate /var/lib/acme/certs/***CERT_DIRECTORY/fullchain;
ssl_certificate_key /var/lib/acme/certs//***CERT_DIRECTORY/privkey;
# Set up preferred protocols and ciphers. TLS1.2 is required for HTTP/2
ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
ssl_prefer_server_ciphers on;
ssl_ciphers ECDH+AESGCM:ECDH+AES256:ECDH+AES128:DH+3DES:!ADH:!AECDH:!MD5;
access_log /var/log/nginx/hr.access.log main buffer=128k flush=1m if=$log_ua;
return 301 https://www.example.com$request_uri;
}