У меня есть VPS под управлением CentOS с NGINX / PHP-FPM. Все работает нормально, кроме тех случаев, когда я добавляю следующие строки для включения статического содержимого кеша. Если я это сделаю, страница не загрузит те файлы, которые указаны для хранения кеша.
location ~* \.(ico|css|js|gif|jpg|jpeg|png)$ {
expires 30d;
add_header Vary Accept-Encoding;
access_log off;
}
Это весь мой сервер {}:
server {
listen 80;
server_name mywebsite.com www.mywebsite.com;
#location ~* \.(ico|css|js|gif|jpg|jpeg|png)$ {
# expires 30d;
# add_header Vary Accept-Encoding;
# access_log off;
#}
location / {
if ($http_host ~* "^www.(.*)$"){
set $rule_0 1$rule_0;
set $bref_1 $1;
}
if ($rule_0 = "1"){
rewrite ^/(.*)$ http://$bref_1/$1 permanent;
}
rewrite ^/search/(.*)/(.*)/?$ /index.php?search=$1&page=$2&type=mp3 las$
rewrite ^/(.*)/(.*)/(.*)?$ /index.php?search=$1&page=$2&type=$3 last;
root /var/www/mywebsite.com/public_html;
index index.php index.html index.htm;
}
location ~ \.php$ {
fastcgi_read_timeout 300;
root /var/www/mywebsite.com/public_html;
fastcgi_pass unix:/tmp/php5-fpm.sock;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params;
}
}
Кто-нибудь знает почему?
ОБНОВЛЕНО (РЕШЕНИЕ):
Как ответил мне Майкл Хэмптон, для сервера {} не объявлен корень, поэтому я выполнил инструкции и добавил его в файл. Сработало нормально!
Ваш server
блок не имеет root
директива определена. Вместо этого он, кажется, находится в одном из ваших location
блоки. Это один из самые распространенные ошибки nginx. Переместите его под server
блок вместо этого.