Веб-интерфейс neo4j за обратным прокси-сервером nginx

Я пытаюсь открыть базу данных neo4j в Интернете.

В целях безопасности я хотел бы скрыть это за комбинацией SSL /basic_auth через nginx. Вот соответствующая конфигурация nginx:

  location /neo4j/ {
            proxy_pass https://localhost:7473/;
            proxy_read_timeout 600;

            proxy_set_header    X-Real-IP         $remote_addr;
            proxy_set_header    X-Forwarded-For   $proxy_add_x_forwarded_for;
            proxy_set_header    X_FORWARDED_PROTO https;
            proxy_set_header    Host              $http_host;
            proxy_buffering     off;
            proxy_redirect      off;
            auth_basic           "restricted";
            auth_basic_user_file /etc/nginx/auth/htpasswd;
            proxy_headers_hash_max_size 1024;
            proxy_headers_hash_bucket_size 128;
            proxy_ssl_session_reuse off;
            rewrite /neo4j/(.*) /$1 break;
    }

Хотя я могу получить доступ к https://example.com/neo4j/browser , веб-интерфейс сообщает мне, что он не может подключиться к neo4j, и консоль моего веб-браузера заполняется OPTIONS https://example.com/db/data 405(Not allowed)

Я также попробовал встроенный в https сервер neo4j вместе с расширением аутентификации ( https://github.com/neo4j -contrib /аутентификации-расширение ). С помощью этой опции я также могу получить доступ к веб-интерфейсу.

Но интерфейс также показывает, что он не может подключиться к neo4j, и консоль веб-браузера заполняется OPTIONS http://example.com:7473/db/data/ net::ERR_EMPTY_RESPONSE и подсказка The page at 'https://example.com:7473/browser/' was loaded over HTTPS, but displayed insecure content from 'http://example.com:7473/db/data/': this content should also be loaded over HTTPS.

Кто-нибудь знает, как заставить это работать? Большое спасибо заранее!

7 голосов | спросил udo 2 J0000006Europe/Moscow 2014, 17:35:32

1 ответ


0

Запрос OPTIONS необходим для проверки соединения с сервером Neo4j. Я думаю об этом как о сердцебиении, чтобы проверить соединение. Кажется, что Nginx не поддерживает запросы OPTIONS, но запрос может быть перехвачен примерно так:

location / {
    if ($request_method = OPTIONS ) {
        add_header Access-Control-Allow-Origin "https://example.com";
        add_header Access-Control-Allow-Methods "GET, OPTIONS";
        add_header Access-Control-Allow-Headers "Authorization";
        add_header Access-Control-Allow-Credentials "true";
        add_header Content-Length 0;
        add_header Content-Type text/plain;
        return 200;
    }
}

Источник: http://blog.rogeriopvl.com /архив /Nginx-и-HTTP-опции-метод-/

ответил William Lyon 7 62015vEurope/Moscow11bEurope/MoscowSat, 07 Nov 2015 00:23:56 +0300 2015, 00:23:56

Похожие вопросы

Популярные теги

security × 330linux × 316macos × 2827 × 268performance × 244command-line × 241sql-server × 235joomla-3.x × 222java × 189c++ × 186windows × 180cisco × 168bash × 158c# × 142gmail × 139arduino-uno × 139javascript × 134ssh × 133seo × 132mysql × 132