![nginx 역방향 프록시를 사용하여 Wordpress 대시보드에 액세스할 수 없습니다.](https://rvso.com/image/776285/nginx%20%EC%97%AD%EB%B0%A9%ED%96%A5%20%ED%94%84%EB%A1%9D%EC%8B%9C%EB%A5%BC%20%EC%82%AC%EC%9A%A9%ED%95%98%EC%97%AC%20Wordpress%20%EB%8C%80%EC%8B%9C%EB%B3%B4%EB%93%9C%EC%97%90%20%EC%95%A1%EC%84%B8%EC%8A%A4%ED%95%A0%20%EC%88%98%20%EC%97%86%EC%8A%B5%EB%8B%88%EB%8B%A4..png)
Nginx를 Apache 백엔드에 대한 역방향 프록시로 사용하여 WordPress를 설정할 때 약간의 문제에 직면하고 있습니다. 모든 페이지가 로드되고 있지만 wp-admin 대시보드에 로그인하려고 하면 오류가 발생합니다. 오류는 다음과 같습니다Sorry, you are not allowed to access this page.
내 파일 권한, 데이터베이스 접두사, .htaccess 및 심지어 db의 usermeta 관리자 권한까지 확인한 결과 모두 완벽한 것 같습니다. nginx 리버스 프록시를 설정하기 전에는 사이트가 완벽하게 작동하고 있었습니다.
여기 나의아파치2 구성:
<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>
여기 나의아파치 포트.conf:
#Listen 80
Listen 8081
여기 나의nginx 구성:
server {
listen 80;
listen [::]:80;
server_name my_site_url;
rewrite ^ https://$server_name$request_uri? permanent;
}
server {
listen 443 ssl;
listen [::]:443 ssl;
server_name www.my_site_url my_site_url;
location / {
proxy_set_header Host $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;
}
마지막으로 내wp-config.php기본값이고 그 외에는 아무것도 추가하지 않았습니다.
if ( isset( $_SERVER['HTTP_X_FORWARDED_PROTO'] ) ) {
if ( 'https' == $_SERVER['HTTP_X_FORWARDED_PROTO'] ) {
$_SERVER['HTTPS'] = 'on';
}
}
if ( isset( $_SERVER['HTTP_X_REAL_IP'] ) ) {
$_SERVER['REMOTE_ADDR'] = $_SERVER['HTTP_X_REAL_IP'];
}
답변1
nginx를 역방향 프록시로 사용하여 Apache에서 Wordpress와 해당 대시보드를 실행할 수 있었습니다.
nginx 구성은
location ^~ /blog/ {
proxy_pass http://x.y.x.z/;
proxy_set_header Host $http_host;
proxy_set_header X-Forwarded-Host $http_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;
}
wp-config.php(아파치 서버)에 다음 내용이 추가됩니다.
$_SERVER['REQUEST_URI'] = str_replace("/wp-admin/", "/blog/wp-admin/", $_SERVER['REQUEST_URI']);
if ( isset( $_SERVER['HTTP_X_FORWARDED_PROTO'] ) ) {
if ( 'https' == $_SERVER['HTTP_X_FORWARDED_PROTO'] ) {
$_SERVER['HTTPS'] = 'on';
}
}
if ( isset( $_SERVER['HTTP_X_REAL_IP'] ) ) {
$_SERVER['REMOTE_ADDR'] = $_SERVER['HTTP_X_REAL_IP'];
}