在nginx上设置rutorrent和owncloud

时间:2014-09-25 09:58:47

标签: php nginx owncloud torrent

我搜索了整个网络,但显然没有人发布我正在寻找的配置。 我目前正在VM上测试我想要成为我的服务器配置,我将安装的3个应用程序是rutorrent,rtorrent,owncloud和plex的web界面,其中2个配置了nginx但不知何故我的配置没有不行。我创建了两个虚拟服务器,一个名为rutorrent,另一个是owncloud,我的想法是使用serverip / rutorrent和serverip / owncloud访问这些,分离2.我在Ubuntu 14.04上,我的rutorrent和owncloud文件夹进入{{1我的php版本是5.5.9-1。

目前的问题是rutorrent配置是否有效,如果它是唯一启用的配置,但如果启用了owncloud则不然,而且仅拥有自己的云就不起作用了。使用他们手册中的库存owncloud配置,owncloud可以工作,但是rutorrent返回/var/www页面。

以下是file not found中我已链接到/etc/nginx/sites-available目录的服务器文件:

enabled

它尽可能接近官方的owncloud配置,但是当我加载页面时出现404错误。 rutorrent配置如下,它有正常配置和ssl配置,因为我尝试在正常配置上更改东西而不触及有效的ssl:

upstream php-handler {
    #server 127.0.0.1:9000;
    server unix:/var/run/php5-fpm.sock;
}

server {
    listen 80;
    server_name 192.168.61.128;
    return 301 https://$server_name$request_uri;  # enforce https
}

server {
    listen 443;
    server_name 192.168.61.128;

    ssl on;
    ssl_certificate /srv/ssl/nginx.crt;
    ssl_certificate_key /srv/ssl/nginx.key;

    # Path to the root of your installation
    root /var/www;

    client_max_body_size 10G; # set max upload size
    fastcgi_buffers 64 4K;

    index index.php;
    error_page 403 /core/templates/403.php;
    error_page 404 /core/templates/404.php;

    location = /robots.txt {
        allow all;
        log_not_found off;
        access_log off;
    }

    location /owncloud/ {
        alias /var/www/owncloud/;
        location ~ ^/owncloud/(?:\.htaccess|data|config|db_structure\.xml|README) {
                deny all;
        }

        rewrite ^/owncloud/caldav(.*)$ /owncloud/remote.php/caldav$1 redirect;
        rewrite ^/owncloud/carddav(.*)$ /owncloud/remote.php/carddav$1 redirect;
        rewrite ^/owncloud/webdav(.*)$ /owncloud/remote.php/webdav$1 redirect;

        rewrite ^/owncloud/.well-known/host-meta /owncloud/public.php?service=host-meta last;
        rewrite ^/owncloud/.well-known/host-meta.json /owncloud/public.php?service=host-meta-json last;

        rewrite ^/owncloud/.well-known/carddav /owncloud/remote.php/carddav/ redirect;
        rewrite ^/owncloud/.well-known/caldav /owncloud/remote.php/caldav/ redirect;

        rewrite ^/owncloud/apps/([^/]*)/(.*\.(css|php))$ /owncloud/index.php?app=$1&getfile=$2 last;
        rewrite ^(/owncloud/core/doc/[^\/]+/)$ $1/index.html;

        try_files $uri $uri/ index.php;

        location ~ ^/owncloud/(.+?\.php)(?:$|/) {
            fastcgi_split_path_info ^(.+\.php)(/.+)$;
            set $path_info $fastcgi_path_info;
            try_files $fastcgi_script_name =404;
            include fastcgi_params;
            fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
            #fastcgi_param PATH_INFO $fastcgi_path_info;
            fastcgi_param PATH_INFO $path_info;
            fastcgi_param HTTPS on;
            fastcgi_param SCRIPT_NAME /owncloud/Â$fastcgi_script_name;
            fastcgi_pass php-handler;
        }
}

    # Optional: set long EXPIRES header on static assets
    location ~* \.(?:jpg|jpeg|gif|bmp|ico|png|css|js|swf)$ {
            expires 30d;
            # Optional: Don't log access to assets
            access_log off;
    }
}

最后我的server { listen 80; server_name 192.168.61.128; root /var/www; index index.php index.html index.htm; #location / { # try_files $uri $uri/ =404; #} location /rutorrent { auth_basic "rutorrent"; auth_basic_user_file /var/www/rutorrent/.htpasswd; } location /RPC2 { include scgi_params; scgi_pass localhost:5000; } location ~ \.php$ { fastcgi_split_path_info ^(.+\.php)(.*)$; fastcgi_pass unix:/var/run/php5-fpm.sock; fastcgi_index index.php; include fastcgi.conf; #fastcgi_intercept_errors on; #fastcgi_ignore_client_abort off; #fastcgi_connect_timeout 60; #fastcgi_send_timeout 180; #fastcgi_read_timeout 180; #fastcgi_buffer_size 128k; #fastcgi_buffers 4 256k; #fastcgi_busy_buffers_size 256k; #fastcgi_temp_file_write_size 256k; } location ~ /\.ht { deny all; } } server { listen 443; server_name 192.168.61.128; root /var/www; index index.php index.html index.htm; ssl on; ssl_certificate /srv/ssl/nginx.crt; #server.crt ssl_certificate_key /srv/ssl/nginx.key; #server.key ssl_session_timeout 5m; ssl_protocols SSLv3 TLSv1 TLSv1.1 TLSv1.2; ssl_ciphers "HIGH:!aNULL:!MD5 or HIGH:!aNULL:!MD5:!3DES"; ssl_prefer_server_ciphers on; location / { #try_files $uri $uri/ =404; } location /rutorrent { auth_basic "rutorrent"; auth_basic_user_file /var/www/rutorrent/.htpasswd; } location ~ \.php$ { fastcgi_split_path_info ^(.+\.php)(.*)$; fastcgi_pass unix:/var/run/php5-fpm.sock; fastcgi_index index.php; include fastcgi.conf; #fastcgi_intercept_errors on; #fastcgi_ignore_client_abort off; #fastcgi_connect_timeout 60; #fastcgi_send_timeout 180; #fastcgi_read_timeout 180; #fastcgi_buffer_size 128k; #fastcgi_buffers 4 256k; #fastcgi_busy_buffers_size 256k; #fastcgi_temp_file_write_size 256k; } location /RPC2 { include scgi_params; scgi_pass localhost:5000; } location ~ /\.ht { deny all; } } 再次尽可能接近标准。

nginx.conf

我对这些东西很不好,但直觉上应该不会这么难。谢谢你的帮助。

2 个答案:

答案 0 :(得分:1)

你完全正确,我修改了配置,将两个位置放在同一个虚拟主机中,这是一个工作结果,大部分都是根据OwnCloud手册改编的。

upstream php-handler {
    #server 127.0.0.1:9000;
    server unix:/var/run/php5-fpm.sock;
}

server {
    listen 80;
    server_name 192.168.61.128;
    return 301 https://$server_name$request_uri;  # enforce https
}

server {
    listen 443;
    server_name 192.168.61.128;

    root /var/www;
    index index.php index.html index.htm;

    ssl on;
    ssl_certificate     /srv/ssl/nginx.crt; #server.crt
    ssl_certificate_key /srv/ssl/nginx.key; #server.key

    rewrite ^/caldav(.*)$ /remote.php/caldav$1 redirect;
    rewrite ^/carddav(.*)$ /remote.php/carddav$1 redirect;
    rewrite ^/webdav(.*)$ /remote.php/webdav$1 redirect;

    client_max_body_size 10G; # set max upload size
    fastcgi_buffers 64 4K;

    location = /robots.txt {
        allow all;
        log_not_found off;
        access_log off;
    }

    location / {
        rewrite ^/.well-known/host-meta /public.php?service=host-meta last;
        rewrite ^/.well-known/host-meta.json /public.php?service=host-meta-json last;

        rewrite ^/.well-known/carddav /remote.php/carddav/ redirect;
        rewrite ^/.well-known/caldav /remote.php/caldav/ redirect;

        rewrite ^(/core/doc/[^\/]+/)$ $1/index.html;

        try_files $uri $uri/ index.php;        
    }

    location ~ ^/(data|config|\.ht|db_structure\.xml|README) {
        deny all;
    }

    location ~  \.php(?:$|/) {
        fastcgi_split_path_info ^(.+\.php)(.*)$; 
        include fastcgi_params;
        fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
        fastcgi_param PATH_INFO $fastcgi_path_info;  
        fastcgi_param HTTPS on;;
        fastcgi_pass php-handler;
    }

    location /rutorrent {
        auth_basic "rutorrent";
        auth_basic_user_file /var/www/rutorrent/.htpasswd;
    }

    location /RPC2 {
        include scgi_params;
        scgi_pass unix:/home/rtorrent/.sockets/scgi.socket;
    }

    location ~* \.(?:jpg|jpeg|gif|bmp|ico|png|css|js|swf)$ {
        expires 30d;
        access_log off;
    }
}

答案 1 :(得分:0)

这个配置有很多可以改进,但你的主要问题是定义两个服务器块具有相同的server_name。他们不会被合并,如果那是你所期待的,但是一个被选中,另一个则没有。