Tôi đang gặp một chút vấn đề khi thiết lập WordPress với Nginx làm proxy ngược cho phụ trợ Apache.
Tất cả các trang đang tải, nhưng tôi gặp lỗi khi cố đăng nhập vào bảng điều khiển wp-admin.
lỗi là Xin lỗi, bạn không được phép truy cập trang này.
Tôi đã kiểm tra quyền đối với tệp, tiền tố cơ sở dữ liệu, .htaccess và thậm chí cả quyền quản trị usermeta trong db, tất cả dường như đều hoàn hảo.
Trang web đã hoạt động hoàn toàn tốt trước khi tôi thiết lập proxy ngược nginx.
Đây là cấu hình apache2:
<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>
Đây là cổng apache.conf:
#Nghe 80
Nghe 8081
Đây là cấu hình nginx:
người phục vụ {
nghe 80;
nghe [::]:80;
server_name my_site_url;
viết lại ^ https://$server_name$request_uri? dài hạn;
}
người phục vụ {
nghe 443 ssl;
nghe [::]:443 ssl;
server_name www.my_site_url my_site_url;
địa điểm / {
proxy_set_header Máy chủ lưu trữ $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
proxy_pass http://127.0.0.1:8081;
}
ssl_certificate /var/www/mycert/certificate.pem;
ssl_certificate_key /var/www/mycert/private.key;
}
Cuối cùng nhưng không kém phần quan trọng của tôi wp-config.php là mặc định và tôi chưa thêm bất cứ thứ gì khác ngoài
nếu ( isset( $_SERVER['HTTP_X_FORWARDED_PROTO'] ) ) {
nếu ( 'https' == $_SERVER['HTTP_X_FORWARDED_PROTO'] ) {
$_SERVER['HTTPS'] = 'bật';
}
}
nếu ( isset( $_SERVER['HTTP_X_REAL_IP'] ) ) {
$_SERVER['REMOTE_ADDR'] = $_SERVER['HTTP_X_REAL_IP'];
}