Am configurat cu succes un site wordpress care rulează pe un nginx dockerizat. Când site-ul wordpress este în funcțiune, pot merge la pagina de pornire: https://domeniul_meu.com
sau orice link-uri sau la wp-admin/...
(după autentificare la /wp-login.php
care este accesibil) fără nicio problemă.
Dar când merg la https://domeniul_meu.com/sample-page
sau https://domeniul_meu.com/post-id
sau /wp-admin
(dacă nu este autentificat) redirecționează imediat către proxy_pass http://wordpress_host:80
(setat în fișierul de configurare nginx) care nu poate fi corect, ar trebui https://domeniul_meu.com/post-id
în browserul clientului.
URL greșit al browserului clientului
cu traseu /wp-admin/
înainte de a vă autentifica, dacă atașez index.php
la /wp-admin/index.php
funcționează în timp ce fără ea nu
Iată configurația mea nginx:
Server {
asculta 80;
asculta [::]:80;
nume_server domeniul_meu.com www.domeniul_meu.com;
Locație / {
returnează 301 https://my_domain.com$request_uri;
}
}
Server {
asculta 443 ssl http2;
nume_server domeniul_meu.com www.domeniul_meu.com;
ssl activat;
server_tokens dezactivat;
ssl_certificate /etc/nginx/ssl/live/my_domain.com/fullchain.pem;
ssl_certificate_key /etc/nginx/ssl/live/my_domain.com/privkey.pem;
ssl_dhparam /etc/nginx/dhparam/dhparam-2048.pem;
ssl_buffer_size 8k;
ssl_protocols TLSv1.2 TLSv1.1 TLSv1;
ssl_prefer_server_ciphers activat;
ssl_ciphers ECDH+AESGCM:ECDH+AES256:ECDH+AES128:DH+3DES:!ADH:!AECDH:!MD5;
add_header X-Frame-Options „SAMEORIGIN” întotdeauna;
add_header X-XSS-Protection „1; mod=bloc” întotdeauna;
add_header X-Content-Type-Options „nosniff” întotdeauna;
add_header Politica de referință „no-referrer-when-downgrade” întotdeauna;
add_header Content-Security-Policy "default-src * data: 'unsafe-eval' 'unsafe-inline'" întotdeauna;
# add_header Strict-Transport-Security "max-age=31536000; includeSubDomains; preload" întotdeauna;
# activați securitatea strictă a transportului numai dacă înțelegeți implicațiile
Locație / {
try_files $uri $uri/ /index.php$is_args$args;
proxy_pass http://wordpress_host:80;
proxy_set_header X-Real-IP $adresă_la distanță;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
redirecționare_proxy http://wordpress_host:80 https://domeniul_meu.com/;
domeniu_cookie_proxy http://wordpress_host:80 domeniul_meu.com;
proxy_set_header X-Forwarded-Proto https;
}
locație ~ \.php$ {
try_files $uri =404;
fastcgi_split_path_info ^(.+\.php)(/.+)$;
proxy_pass http://wordpress_host:80;
fastcgi_index index.php;
include fastcgi_params;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
fastcgi_param PATH_INFO $fastcgi_path_info;
proxy_set_header X-Real-IP $adresă_la distanță;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
redirecționare_proxy http://wordpress_host:80 https://domeniul_meu.com/;
domeniu_cookie_proxy http://wordpress_host:80 domeniul_meu.com;
proxy_set_header X-Forwarded-Proto https;
}
locație ~ /\.ht {
nega totul;
}
locație = /favicon.ico {
log_not_found off; access_log off;
}
locație = /robots.txt {
log_not_found off; access_log off; permite totul;
}
locație ~* \.(css|gif|ico|jpeg|jpg|js|png)$ {
expira max;
log_not_found off;
}
}
Configurez și la wp-config.php:
define('FORCE_SSL_ADMIN', adevărat);
if ( isset( $_SERVER['HTTP_X_FORWARDED_PROTO'] ) && $_SERVER['HTTP_X_FORWARDED_PROTO'] == 'https')
$_SERVER['HTTPS']='activat';
define('WP_SITEURL', 'https://www.my_domain.com/');
define('WP_HOME', 'https://www.my_domain.com/');