Я пытаюсь переписать каждый файл после 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
не работает. Кто-либо может помочь?
Проблема, показанная в журнале ошибок, указывает на то, что ваше местоположение /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;
}