我不得不承认我对WebServers是全新的,现在试图弄清楚如何configuration我的nginx(用于家庭用途)。 我已经使用默认的结构在我的nginx上运行了web服务rutorrent。 现在我想改变目录结构为:
/usr/share/nginx/html/ (should contain the default-config) /usr/share/nginx/rtorr_dir/ (should contain the rutorrent-content)
我的目标是:在我的浏览器中,我想input192.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; }
应该pipe用。 您可能仍然需要index
和指令。
我是否需要更改其他位置以及某些东西,还是自动为基础文件(即PHP)?
因为,你使用多个位置,我build议使用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块将仅从为server
块设置的root
指令获取path。 最安全的方法是在每个需要处理PHP的位置包含PHP位置块。
我希望有帮助。