0

Web 全体を検索しましたが、探している構成が公開されていないようです。現在、サーバー構成にしたいものをVMでテストしています。インストールする3つのアプリは、rutorrent、rtorrent用のWebインターフェース、owncloud、およびplexです。これらのうち2つはnginxで構成されていますが、どういうわけか私の構成はそうではありません動作しません。rutorrent という名前の 2 つの仮想サーバーを作成し、もう 1 つは owncloud です。私の考えは、serverip/r​​utorrent と serverip/owncloud を使用してこれらにアクセスし、2 つを分離することです。Ubuntu 14.04 を使用しています/var/www。バージョンは 5.5.9-1 です。

現在の問題は、rutorrent 構成が有効になっている場合は機能しますが、owncloud も有効になっている場合は機能しないことです。さらに、owncloud だけでは機能しません。マニュアルの在庫のowncloud構成を使用すると、owncloudは機能しますが、rutorrentはページを返し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/*;
}

私はこれがかなり苦手ですが、直感的にはそれほど難しいことではありません。助けてくれてありがとう。

4

2 に答える 2

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;
    }
}
于 2014-09-27T14:16:31.790 に答える
0

この構成には改善できる点がたくさんありますが、主な問題は、同一の server_name を持つ 2 つのサーバー ブロックを定義することです。それがあなたが期待している場合、それらはマージされませんが、一方が選択され、もう一方は選択されません。

于 2014-09-26T08:14:17.910 に答える