0

Yaws と Cowboy Web サーバーで実行される窒素フレームワークを使用してアプリケーションを開発しています。私のクライアントは、この 'domain-name.xx' または 'www.domain-name.xx' を知っているだけで、デフォルトではポート 80 (セキュリティで保護されていない http) にヒットしますが、常に ' https://www.domain-name.xx 'を必要とします。安全な http (ポート 433) の場合、ブラウザーに入力し続けることを望んでいません。

http://Nitrogenproject.com/doc/config.htmlの nginx Web サーバーでこれを行う構成を見てきました。

Cowboy と Yaws の設定変更を提供するのを手伝ってくれるようコミュニティにお願いしますポート 80 または ' http://www.domain-name.xx ' の

ありがとうございました。

4

2 に答える 2

1

カスタム セキュリティ ハンドラを作成することをお勧めします。

例:

-module (my_security_handler).
-behaviour (security_handler).
-export ([
    init/2,
    finish/2
]).


init(_Config, State) ->
    Bridge = wf:request_bridge(),
    case Bridge:protocol() of
       http ->
          NewURI = "https://" ++ Bridge:header(host) ++ "/" ++ Bridge:uri(),
          wf:status_code(301),
          wf:header(location, NewURI);
       https ->
          ok
    end,
    {ok, State}.

finish(_Config, State) ->
    {ok, State}.

次に、窒素_yaws.erl と窒素_カウボーイ.erl にロードします (同じサーバーで両方を実行していますか? 奇妙な方法のように思えます)。nitrogen:handler(my_security_handler)2行の間に追加するだけです:

nitrogen:init_request(RequestBridge, ResponseBridge),
nitrogen:handler(my_security_handler),  %% <---- added here
nitrogen:run().

注意:ごく最近まで、このprotocol()関数はカウボーイの simple_bridge では使用できませんでした。ただし、simple_bridge を適切にサポートするように変更したので、simple_bridge の最新のマスターからプルするようにしてください。

于 2014-03-11T16:24:09.903 に答える