Должен признать, что я совершенно новичок в WebServers и теперь пытаюсь понять, как настроить мой nginx (для домашних целей). Я уже запустил rutorrent веб-сервиса на моем nginx со структурой по умолчанию. Теперь я хочу изменить структуру dir на:
/usr/share/nginx/html/ (should contain the default-config)
/usr/share/nginx/rtorr_dir/ (should contain the rutorrent-content)
Моя цель: в моем браузере я хочу войти 192.168.0.2/rutorrent
и это должно автоматически получить доступ к rtorr_dir
. Я пробовал следующее:
server {
listen *:80;
access_log /var/log/nginx/access.log info;
error_log /var/log/nginx/error.log debug;
auth_basic "ruser";
auth_basic_user_file /etc/users.htpasswd;
location /rutorrent {
rewrite /rutorrent/(.*) /$1 break;
root /usr/share/nginx/rtorr_dir;
index index.php index.html;
}
location /RPC1 {
include /etc/nginx/scgi_params;
scgi_pass backend2;
}
location ~ \.php$ {
fastcgi_split_path_info ^(.+\.php)(.*)$;
fastcgi_pass backend;
....
Я тоже пробовал location /
и другие варианты, но явно не подходящие :(. Так что мой вопрос будет
Ты можешь использовать alias
в вашем случае использования. Ссылка: http://nginx.org/en/docs/http/ngx_http_core_module.html#alias
Так,
location /rutorrent {
alias /usr/share/nginx/rtorr_dir;
}
Должно сработать. Вам все еще может понадобиться index
и директивы.
Нужно ли мне что-то менять и для других мест, или это делается автоматически для базовых файлов (например, php)?
Поскольку вы используете несколько местоположений, я бы рекомендовал использовать location ~* \.php$ {
в каждом из этих мест. Например...
location /rutorrent {
alias /usr/share/nginx/rtorr_dir;
try_files $uri $uri/ /index.php;
location ~* \.php$ {
# directives to process PHP
}
}
location /another_random_location {
alias /usr/share/nginx/another_random_directory;
try_files $uri $uri/ /index.php;
location ~* \.php$ {
# directives to process PHP
}
}
Если вы сохраняете блок местоположения PHP рядом другие блоки местоположения, тогда этот блок PHP будет получать свой путь только из root
набор директив для server
блок. Самый безопасный способ - включить блок местоположения PHP в каждое местоположение, которое необходимо для обработки PHP.
Надеюсь, это поможет.