Наверно, вторую неделю пытаюсь настроить сервер...
Застрял с кэшированием, делаю так:
fastcgi_cache_path /var/cache/nginx/my_name
levels=1:2
keys_zone=my_name:16m
max_size=256m
inactive=1d;
server {
# Порт который слушаем
listen 80;
# Имя хоста
server_name my_name.ru;
# Путь до htdocs (document_root)
root /path/to/www;
# включаем использование ssi
ssi on;
location / {
# Если такой файл не существует физически, то переходить на крайний аргумент, то есть @wordpress
try_files $uri @wordpress;
}
# обработчик для wordpress
location @wordpress {
# Проксируем на php-fpm
fastcgi_pass php-fpm;
include fastcgi_params;
fastcgi_param SCRIPT_FILENAME $document_root/index.php;
fastcgi_param SCRIPT_NAME /index.php;
# Настройки кеширования
fastcgi_temp_path /tmp/nginx 1 2; # Каталог для хранение временных файлов
fastcgi_cache my_name; # Имя зоны кеша
fastcgi_cache_key "$request_method|$host|$request_uri"; # Из этих данных строится хеш
fastcgi_hide_header "Set-Cookie"; # Не передавать клиенту заголовки кук
fastcgi_cache_min_uses 1; # Кол-во запросов, после которых ответ будет закеширован
fastcgi_cache_valid 10m; # Время жизни кеша
fastcgi_cache_use_stale error timeout invalid_header http_500; # Случаи при которых будет использоватся старый кеш
}
# обработчик для динамических данных
location ~ ^/ssi/ {
fastcgi_pass php-fpm;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params;
}
# Обработчик *.php файлов, например "wp-comments-post.php"
location ~ \.php$ {
# если файл физически не существует, то переходим в @wordpress
try_files $uri @wordpress;
# иначе обрабатываем запрос
fastcgi_pass php-fpm;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params;
}
}
Ошибка
nginx: [emerg] no port in upstream "php-fpm"
указывает на
fastcgi_pass php-fpm;
Конечно, же, это я не сам написал, и не могу понять, нужно ли мне
fastcgi_script_name
менять на свой файл? Если да, то на какой и что там должно быть?
Также
# Путь до htdocs (document_root)
root /path/to/www;
не особо понятен, я почему-то не смог его найти. Что за htdocs? Может заменить на public_html, где и лежит сайт?
Спасибо.