0

私の NAS では、dropbox/owncloud の代わりに seafile を実行しています。SSLを使用/強制するWebGUIを提供するために、nginxとリバースプロキシを使用しています。このためのすべてが正常に機能します。

ここで、NAS で実行されている他のもの (カウチポテト、プレックスなど) のために、いくつかの他の場所をセットアップしたいと考えています。これは、私の nginx.conf ファイルの関連部分です。

server {
    listen 80;
    server_name domain.net, 192.168.1.50;

rewrite ^ https://$http_host$request_uri? permanent;    # force redirect http to https

}



server {
        listen 443;
        ssl on;
        ssl_certificate C:/nginx-1.6.3/conf/ssl/ssl-bundle.crt;        # path to your ssl certificate
        ssl_certificate_key C:/nginx-1.6.3/conf/ssl/server.key;    # path to your private key

        server_name domain.net, 192.168.1.50;

        proxy_set_header X-Forwarded-For $remote_addr;

        add_header Strict-Transport-Security "max-age=31536000; includeSubdomains";
        server_tokens off;

    location /couchpotato {
        proxy_pass http://127.0.0.1:5050;
        proxy_set_header Host $host;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
    }

        location /cloud {
            fastcgi_pass    127.0.0.1:8000;
            fastcgi_param   SCRIPT_FILENAME     $document_root$fastcgi_script_name;
            fastcgi_param   PATH_INFO           $fastcgi_script_name;

            fastcgi_param   SERVER_PROTOCOL        $server_protocol;
            fastcgi_param   QUERY_STRING        $query_string;
            fastcgi_param   REQUEST_METHOD      $request_method;
            fastcgi_param   CONTENT_TYPE        $content_type;
            fastcgi_param   CONTENT_LENGTH      $content_length;
            fastcgi_param   SERVER_ADDR         $server_addr;
            fastcgi_param   SERVER_PORT         $server_port;
            fastcgi_param   SERVER_NAME         $server_name;
            fastcgi_param   HTTPS               on;
            fastcgi_param   HTTP_SCHEME         https;

            access_log      logs/seahub.access.log;
            error_log       logs/seahub.error.log;
        }

        location /seafhttp {
            rewrite ^/seafhttp(.*)$ $1 break;
            proxy_pass http://127.0.0.1:8082;
            client_max_body_size 0;
            proxy_connect_timeout  36000s;
            proxy_read_timeout  36000s;
        }

    location /seafmedia {
            rewrite ^/seafmedia(.*)$ /media$1 break;
            root C:/Seafile/seafile-server-4.0.6/seahub;
        }

        location /media {
            root C:/Seafile/seafile-server-4.0.6/seahub;
        }

    }

domain.net/cloud (または 192.168.1.50/cloud) にアクセスすると、問題なく seafile にアクセスできます。domain.net にアクセスすると、デフォルトの nginx ページが表示されます。これは、場所が定義されていないため意味があります。

問題は domain.net/couchpotato に行きますhttps://domain.net/#couchpotatoに移動し、読み込まれません

nginx.conf ファイルを変更location /couchpotato {}するとlocation / {}、couchpotato が正しくロードされます

nginxの設定方法に何か問題があると確信していますが、これが初めての使用であるため、それが何であるかはわかりません

私の質問は、/couchpotato を場所として使用できないのはなぜですか? しかし、/ を使うと?

4

2 に答える 2

0

カウチポテトについては何も知りませんが、「サブディレクトリ」から提供されるように構成されていないと思います。domain.net/couchpotato からアクセスしようとすると、渡される URI は /couchpotato であり、それを処理する方法がわからないものと思います。

次のいずれかを試してください。

1) /couchpotato から提供するように couchpotato を構成します (これは実際の webapp のどこかで行われます)。たとえば、Wordpress ではこれを「サイト URL」と呼び、管理パネルで設定できます。

2) seafhttp の場合と同様に書き換えを追加します。

rewrite ^/couchpotato(.*)$ $1 break;

これにより、内部処理のために URL から /couchpotato が削除され、予想される URI が webapp に渡されます。

お役に立てれば。

于 2015-04-24T14:34:20.587 に答える