Я запускаю небольшой экземпляр nginx на моей малине. Пока все работает нормально. Он использует SSL и PHP и работает как положено. Теперь я планирую пересылать запросы на / photo на мою локальную дисковую станцию, используя proxy_pass.
IP-адрес Raspberry — 192.168.178.3, дискета — 192.168.178.2. Прямой доступ к DiskStation в порядке.
Конфигурация nginx:
server {
...
location / {
root /var/www;
}
location /photo {
#rewrite ^ $scheme://$host/;
proxy_pass http://192.168.178.2$uri;
}
location ~ ^(?<script_name>.+?\.php)(?<path_info>/.*)?$ {
try_files $script_name =404;
include fastcgi_params;
fastcgi_param PATH_INFO $path_info;
fastcgi_param HTTPS on;
fastcgi_read_timeout 3600s;
fastcgi_pass unix:/var/run/php5-fpm.sock;
}
}
К сожалению, nginx обрабатывает все запросы * .php, но запросы к файлам php следует перенаправлять на дисковую станцию с использованием параметра proxy_pass.
Например, http://192.168.178.3/photo/scripts/uistrings.php?v=6.2-2858&п = гер возвращает 404, но работает, как и ожидалось, при отправке непосредственно на дисковую станцию. Для всех других файлов, таких как PNG или CSS, proxy_pass работает нормально.
Как исправить проблему с php файлом?
location ^~ /photo {
....
}
Это должно работать. Читать http://nginx.org/r/location для деталей.
Других решений пока нет …