местоположение nginx и корневые настройки не работают

Я пытаюсь переписать каждый файл после cdn.minora.me/forum/к другому каталогу:

server {
    listen   443 ssl;
    listen   [::]:443 ssl;
    ssl on;
    ssl_certificate /etc/nginx/ssl/minora.me.crt;
    ssl_certificate_key /etc/nginx/ssl/minora.me.key;    
    root /srv/minora.me/webservices/cdn.minora.me;
    index index.html index.htm index.php;
    server_name cdn.minora.me;
    location ~* \.(eot|ttf|woff|js|css|svg)$ {
    add_header Access-Control-Allow-Origin *;
    }
    location /forum/(images|language|sounds|templates|uploads|vendor|src\/modules|nodebb\.min\.js(\.map)?|stylesheet\.css|admin\.css) {
        alias /srv/minora.me/webservices/forum.minora.me/public/;
    }
    location / {
        try_files $uri $uri/ /index.php;
    }
    location ~ \.php$ {
        fastcgi_split_path_info ^(.+\.php)(/.+)$;
        fastcgi_pass unix:/var/run/php5-fpm-cdn.minora.me.sock;
        fastcgi_index index.php;
        include fastcgi_params;
    }
    location ~ /\.ht {
        deny all;
    }
}

Файлы я пытаюсь получить доступ, например:

cdn.minora.me/forum/stylesheet.css

определенно существуйте, например, таблица стилей выше может быть найдена под следующим путем на моем сервере

/srv/minora.me/webservices/forum.minora.me/public/stylesheet.css.

Но nginx верит 404, не найденные ошибкой, когда я пытаюсь получить доступ, например.

cdn.minora.me/forum/stylesheet.css

Кажется, что это не использует правило вообще, здесь часть nginx журнала ошибок:

2014/12/23 15:30:51 [error] 30277#0: *8 open() "/srv/minora.me/webservices/cdn.minora.me/forum/stylesheet.css" failed (2: No such file or directory), client: 141.101.105.127, server: cdn.minora.me, request: "GET /forum/stylesheet.css HTTP/1.1", host: "cdn.minora.me"
2014/12/23 15:30:53 [error] 30277#0: *9 open() "/srv/minora.me/webservices/cdn.minora.me/forum/stylesheet.css" failed (2: No such file or directory), client: 141.101.105.127, server: cdn.minora.me, request: "GET /forum/stylesheet.css HTTP/1.1", host: "cdn.minora.me"
2014/12/23 15:30:57 [error] 30277#0: *9 open() "/srv/minora.me/webservices/cdn.minora.me/forum/stylesheet.css" failed (2: No such file or directory), client: 141.101.105.127, server: cdn.minora.me, request: "GET /forum/stylesheet.css HTTP/1.1", host: "cdn.minora.me"
2014/12/23 15:31:14 [error] 30277#0: *23 FastCGI sent in stderr: "Primary script unknown" while reading response header from upstream, client: 141.101.93.222, server: img.minora.me, request: "HEAD /assets/loader/main@2x.gif HTTP/1.1", upstream: "fastcgi://unix:/var/run/php5-fpm-img.minora.me.sock:", host: "img.minora.me", referrer: "https://minora.me/"
2014/12/23 15:35:24 [error] 30281#0: *31 open() "/srv/minora.me/webservices/cdn.minora.me/forum/stylesheet.css" failed (2: No such file or directory), client: 141.101.105.127, server: cdn.minora.me, request: "GET /forum/stylesheet.css HTTP/1.1", host: "cdn.minora.me"
2014/12/23 15:35:26 [error] 30278#0: *43 FastCGI sent in stderr: "Primary script unknown" while reading response header from upstream, client: 141.101.105.168, server: cdn.minora.me, request: "GET /favicon.ico HTTP/1.1", upstream: "fastcgi://unix:/var/run/php5-fpm-cdn.minora.me.sock:", host: "cdn.minora.me"

Также замена root с aliasне работает. Кто-либо может помочь?

2
задан 13 March 2015 в 05:25
1 ответ

Проблема, показанная в журнале ошибок, указывает на то, что ваше местоположение /forum/... не соответствует.

    location /forum/(images|language|sounds|templates|uploads|vendor|src\/modules|nodebb\.min\.js(\.map)?|stylesheet\.css|admin\.css) {
        alias /srv/minora.me/webservices/forum.minora.me/public/;
    }

Проблема, которую я вижу здесь, заключается в том, что это не рассматривается как соответствие регулярному выражению, а рассматривается буквально, потому что оно не начинается с location ~ .

Кроме того, с псевдонимом и совпадением регулярного выражения псевдоним должен включать переменную для захваченной части местоположения .

Это должно решить проблему.

    location ~ /forum/(images|language|sounds|templates|uploads|vendor|src\/modules|nodebb\.min\.js(\.map)?|stylesheet\.css|admin\.css) {
        alias /srv/minora.me/webservices/forum.minora.me/public/$1;
    }
2
ответ дан 3 December 2019 в 11:39

Теги

Похожие вопросы