首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >自动重定向从端口80到端口433 (通过Yaws和Cowboy )

自动重定向从端口80到端口433 (通过Yaws和Cowboy )
EN

Stack Overflow用户
提问于 2014-03-11 17:37:25
回答 2查看 521关注 0票数 0

我正在使用N2框架开发我的应用程序,它在Yaws上运行,也在牛仔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服务器的配置。

我请求社区帮助我提供牛仔和Yaws的配置更改,以始终确保无论浏览器输入如何,始终将每个人重定向到端口433或'https://www.domain-name.xx‘,而不是端口80或'http://www.domain-name.xx’。

谢谢。

EN

回答 2

Stack Overflow用户

发布于 2014-03-12 00:24:10

我建议您制作一个自定义的安全处理程序。

示例:

代码语言:javascript
复制
-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}.

然后在nitrogen_yaws.erl和nitrogen_cowboy.erl中加载它(您是在同一台服务器上运行这两个程序吗?似乎是一种奇怪的方式)。只需在两行之间添加nitrogen:handler(my_security_handler)

代码语言:javascript
复制
nitrogen:init_request(RequestBridge, ResponseBridge),
nitrogen:handler(my_security_handler),  %% <---- added here
nitrogen:run().

请注意: Up直到最近,protocol()功能还不能用于牛仔的simple_bridge。但是我已经适当地修改了simple_bridge以支持它,所以请确保您是从simple_bridge的最新版本中提取的。

票数 1
EN

Stack Overflow用户

发布于 2014-03-12 22:50:25

对于Yaws,您可以修改rel/nitrogen/etc/yaws.conf文件以添加以下服务器块:

代码语言:javascript
复制
<server domain-name.xx>
    port = 80
    listen = 0.0.0.0
    <redirect>
        / = https://www.domain-name.xx
    </redirect>
</server>

然后重新启动,或者运行rel/nitrogen/lib/yaws/bin/yaws --hup告诉Yaws重新加载它的配置。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/22321679

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档