Wordpress Nginx + Apache 역방향 프록시 영구 링크

Wordpress Nginx + Apache 역방향 프록시 영구 링크

내 문제를 설명하겠습니다. 18.04를 실행하는 Ubuntu VPS 서버가 있습니다. php-fpm을 사용하여 Nginx와 Apache를 설치했습니다. Nginx를 내 wordpress 블로그에 대한 역방향 프록시로 구성했습니다.https://mydomainname.com/blog모두 잘 작동합니다. 그러나 내 서버 블록에 대한 구성이 작동하도록 영구 링크를 얻을 수 없습니다.



server {
        listen 80;
        return 301 https://%host$request_uri;
}
server {
    listen 443 ssl;
    root /var/www/mydomain.com/;


    server_name mydomain.com www.mydomain.com;


ssl_certificate /etc/letsencrypt/live/mydomain.com/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/mydomain.com/privkey.pem;


 ssl on;
    ssl_session_cache  builtin:1000  shared:SSL:10m;
    ssl_protocols  TLSv1 TLSv1.1 TLSv1.2;
    ssl_ciphers HIGH:!aNULL:!eNULL:!EXPORT:!CAMELLIA:!DES:!MD5:!PSK:!RC4;
    ssl_prefer_server_ciphers on;

access_log            /var/log/nginx/site.access.log;



    location /blog/ {
        index index.php index.html index.htm;
        try_files $uri $uri/ /blog/index.php?q=$uri&$args =404;



        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;

  # Fix the “It appears that your reverse proxy set up is broken" error.
      proxy_pass          http://127.0.0.1:8080;
      proxy_read_timeout  90;


        proxy_redirect off;

    }

}




내 Apache Vhost 구성:

<VirtualHost 127.0.0.1:8080>
    ServerName mydoamin.com
    ServerAlias www.mydomain.com
    DocumentRoot /var/www/mydomain.com
<FilesMatch "\.php$">
   SetHandler "proxy:unix:///var/run/php7.2-fpm-mydomain.sock|fcgi://127.0.0.1/"
</FilesMatch>

    <Directory /var/www/mydomain.com>
        Options Indexes FollowSymLinks MultiViews

      Require all granted
        AllowOverride All
    </Directory>

ErrorLog ${APACHE_LOG_DIR}/error.log
      CustomLog ${APACHE_LOG_DIR}/access.log combined
</VirtualHost>


내 .htaccess 파일



<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /blog/
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /blog/index.php [L]
</IfModule>


어떤 도움을 주시면 감사하겠습니다.

답변1

이제 이 문제를 해결했습니다. 문제는 Apache용 Mod-ReWrite를 활성화하는 것을 잊어버렸다는 것입니다. 또한 Nginx Conf를 다음과 같이 업데이트했습니다.


server {
        listen 80;
        return 301 https://$host$request_uri;
}
server {
    listen 443 ssl;
    root /var/www/mydomain.com/;
    #index index.html index.htm index.php;

    server_name mydomain.com www.mydomain.com;


ssl_certificate /etc/letsencrypt/live/mydomain.com/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/mydomain.com/privkey.pem;


 ssl on;
    ssl_session_cache  builtin:1000  shared:SSL:10m;
    ssl_protocols  TLSv1 TLSv1.1 TLSv1.2;
    ssl_ciphers HIGH:!aNULL:!eNULL:!EXPORT:!CAMELLIA:!DES:!MD5:!PSK:!RC4;
    ssl_prefer_server_ciphers on;

access_log            /var/log/nginx/mydomain.access.log;


location / {
return 301 https://$host/blog/;
}

    location /blog/ {
        index index.php index.html index.htm;

        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;

  # Fix the “It appears that your reverse proxy set up is broken" error.
      proxy_pass          http://127.0.0.1:8080;
      proxy_read_timeout  90;


        proxy_redirect off;

    }

}



관련 정보