apache 如果索引文件存在NGINX,我如何防止代理?

sg24os4d  于 2022-12-04  发布在  Apache
关注(0)|答案(1)|浏览(138)

我有一个NGINX服务器,代理apache。Wp-Rocket做所有的缓存工作,并将缓存文件存储到wp-content/cache/wp-rocket/mysite.com/每个索引文件保存为index-https.html这个想法是为了防止代理,如果索引文件已经存在。每次我刷新页面,我看到Apache日志中的GET请求。你能告诉我我哪里做错了吗?

root /var/www/html;

location ~ \.php$ {
    error_page 420 = @apache;
    return 420;
}

location / {
    index index.html index-https.html;

    error_page 420 = @apache;
    error_page 405 = @apache;

    if ($request_method = POST ) {
        return 420;
    }
    if ( $query_string ){
        return 420;
    }
    if ( $http_cookie ~ "wordpress_logged_in" ){
        return 420;
    }
    expires 365d;

    add_header Cache-Control "public, no-transform";

    gzip_static on;

    try_files $uri wp-content/cache/wp-rocket/mysite.com/$uri/ @apache;
}

location @apache {
    proxy_pass http://127.0.0.1:8080;
    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_set_header X-Forwarded-Host $host;
    proxy_set_header X-Forwarded-Port  $server_port;
    proxy_hide_header Upgrade;
}

已尝试指定索引文件(index-https.html),但也没有成功:

try_files $uri wp-content/cache/wp-rocket/mysite.com/$uri/ @apache;
try_files $uri /wp-content/cache/wp-rocket/mysite.com/$uri/ @apache;
try_files $uri /wp-content/cache/wp-rocket/mysite.com/$uri @apache;
try_files $uri /wp-content/cache/wp-rocket/mysite.com/$uri/index-https.html @apache;
vyu0f0g1

vyu0f0g11#

URI /resumes/marina-7/应指向文件/var/www/html/wp-content/cache/wp-rocket/mysite.com/resumes/marina-7/index-https.html
$uri的值正好是/resumes/marina-7/,因此请注意不要在变量前后插入额外的/
用途:

try_files $uri /wp-content/cache/wp-rocket/mysite.com${uri}index-https.html @apache;

请注意,术语必须以/开始,并且使用大括号分隔变量名。

相关问题