2014-09-25 50 views
0

我在整個網絡中搜索,但顯然沒有發佈我正在尋找的配置。 我目前正在VM上測試我想要成爲我的服務器配置,我要安裝的3個應用程序是rrentrent,用於rtorrent,owncloud和plex的web界面,其中2個配置了nginx,但不知何故我的配置不起作用。我創建了兩個虛擬服務器,一個名爲rutorrent,另一個是owncloud,我的想法是使用serverip/rutorrent和serverip/owncloud訪問這些服務器,分離出2個。我在Ubuntu 14.04上,我的rutorrent和owncloud文件夾分別爲/var/www,我的PHP版本是5.5.9-1。在nginx上設置rutorrent和owncloud

目前的問題是,rutorrent配置的工作原理是,如果它是唯一啓用的,但它不會自己的雲啓用,而且,獨自雲無法工作。通過手冊中的股票owncloud配置,owncloud可以運行,但rrentrent會返回file not found頁面。

下面是/etc/nginx/sites-available我的服務器上的文件,我已經聯繫到enabled目錄:

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; 
    } 
} 

這是儘可能接近官方owncloud配置,但我得到的404錯誤,當我加載頁面。 的rutorrent配置如下,它有正常和SSL配置,因爲我想在正常的一個改變的東西,而不會影響工作的SSL:

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這又是接近標準爲可能。

user www-data; 
    worker_processes 4; 
    pid /run/nginx.pid; 

events { 
    worker_connections 768; 
    # multi_accept on; 
} 

http { 

    ## 
    # Basic Settings 
    ## 

    sendfile on; 
    tcp_nopush on; 
    tcp_nodelay on; 
    keepalive_timeout 65; 
    types_hash_max_size 2048; 
    # server_tokens off; 

    # server_names_hash_bucket_size 64; 
    # server_name_in_redirect off; 

    include /etc/nginx/mime.types; 
    default_type application/octet-stream; 

    ## 
    # Logging Settings 
    ## 

    access_log /var/log/nginx/access.log; 
    error_log /var/log/nginx/error.log info; 

    ## 
    # Gzip Settings 
    ## 

    gzip on; 
    gzip_disable "msie6"; 

    # gzip_vary on; 
    # gzip_proxied any; 
    # gzip_comp_level 6; 
    # gzip_buffers 16 8k; 
    # gzip_http_version 1.1; 
    # gzip_types text/plain text/css application/json application/javascript text/xml application/xml application/xml+rss text/javascript; 

    ## 
    # nginx-naxsi config 
    ## 
    # Uncomment it if you installed nginx-naxsi 
    ## 

    #include /etc/nginx/naxsi_core.rules; 

    ## 
    # nginx-passenger config 
    ## 
    # Uncomment it if you installed nginx-passenger 
    ## 

    #passenger_root /usr; 
    #passenger_ruby /usr/bin/ruby; 

    ## 
    # Virtual Host Configs 
    ## 

    include /etc/nginx/conf.d/*.conf; 
    include /etc/nginx/sites-enabled/*; 
} 

我對這個東西很不好,但直觀上它不應該這麼難。謝謝您的幫助。

回答

0

這個配置有很多可以改進的地方,但是你的主要問題是用相同的server_name定義兩個服務器塊。他們不會合並,如果這就是你的期望,但一個是挑選的,另一個不是。

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; 
    } 
}