Mă confrunt cu o mică problemă când configurez WordPress cu Nginx ca proxy invers pentru backend Apache.
Toate paginile se încarcă, dar primesc o eroare când încerc să mă autent la tabloul de bord wp-admin.
Eroarea este Ne pare rău, nu aveți voie să accesați această pagină.
Mi-am verificat permisiunile pentru fișiere, prefixul bazei de date, .htaccess și chiar privilegiile de administrator usermeta în db, toate par a fi perfecte.
Site-ul funcționa perfect înainte de a configura reverse proxy nginx.
Aici e al meu apache2 config:
<VirtualHost *:8081>
DocumentRoot "/mnt/NAS/wp_data/wordpress/"
ServerName my_site_url
ServerAlias www.my_site_url
<Directory "/mnt/NAS/wp_data/wordpress/">
Options MultiViews FollowSymlinks
AllowOverride All
Order allow,deny
Allow from all
</Directory>
</VirtualHost>
Aici e al meu apache ports.conf:
#Ascultă 80
Ascultă 8081
Aici e al meu config nginx:
Server {
asculta 80;
asculta [::]:80;
server_name my_site_url;
rescrie ^ https://$server_name$request_uri? permanent;
}
Server {
asculta 443 ssl;
asculta [::]:443 ssl;
server_name www.my_site_url my_site_url;
Locație / {
proxy_set_header Gazdă $gazdă;
proxy_set_header X-Real-IP $adresă_la distanță;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $schema;
proxy_pass http://127.0.0.1:8081;
}
ssl_certificate /var/www/mycert/certificate.pem;
ssl_certificate_key /var/www/mycert/private.key;
}
Nu în ultimul rând al meu wp-config.php este implicit și nu am adăugat nimic altceva în afară de
dacă ( isset( $_SERVER['HTTP_X_FORWARDED_PROTO'] ) ) {
dacă ( 'https' == $_SERVER['HTTP_X_FORWARDED_PROTO'] ) {
$_SERVER['HTTPS'] = 'activat';
}
}
dacă ( isset( $_SERVER['HTTP_X_REAL_IP'] ) ) {
$_SERVER['REMOTE_ADDR'] = $_SERVER['HTTP_X_REAL_IP'];
}