当前位置: 首页 > 面试题库 >

启用S​​SL后,Revel不会转发到端口443

仲孙诚
2023-03-14
问题内容

我将Revel用于一个小型应用程序并添加了SSL。当我更新配置以指向http.port =
443时,对端口80的请求将被拒绝而不是被转发。有没有办法在Revel Framework上解决此问题?谢谢。

# The port on which to listen.
http.port = 443

# Whether to use SSL or not.
http.ssl = true

# Path to an X509 certificate file, if using SSL.
http.sslcert = /root/go/src/saml/AlphaCerts/cert.crt

# Path to an X509 certificate key, if using SSL.
http.sslkey = /root/go/src/saml/star_home_com.key

问题答案:

您可以自己添加一个简单的重定向处理程序。

尝试将其放入app/init.go文件中:

httpRedirectServer := &http.Server{Addr: ":80", Handler: http.HandlerFunc(
    func(w http.ResponseWriter, r *http.Request) {
        http.Redirect(w, r, fmt.Sprintf("https://%s%s", r.Host, r.RequestURI), 
                      http.StatusMovedPermanently)
    })}
go httpRedirectServer.ListenAndServe()

请注意,在Revel的开发模式下,您必须首先在端口443上访问您的应用程序,才能正确启动Revel,然后运行端口80重定向代​​码。



 类似资料:
  • 端口转发(Forwarded Port)。请求访问主机(你的电脑)上的某个端口,把请求转发到虚拟机上的某个端口。比如你在虚拟机上安装了一个 Web 服务器,默认它会在虚拟机上的 80 端口提供接待服务。你可以配置一个端口转发,当访问主机上的某个端口的时候,把请求转发到虚拟机上的 80 端口。下面通过一个试验你就很容易理解这个端口转发。 端口转发配置 打开 Vagrantfile,添加一行配置代码:

  • 我遇到的问题是,我无法在我希望看到的端口上看到应用程序。我正在公开端口8080并在8080上运行uwsgi进程,但在浏览器中找不到ip地址的应用程序。我只是得到谷歌Chrome的‘此网页不可用’。(我使用的是Mac,所以我需要获得boot2docker的ip地址)。容器显然正在运行,并报告我的uwsgi和celery进程也都成功运行。 运行时,得到的响应如下 ...因此容器似乎正在接受端口8080

  • Revel 是 Go 语言的框架,其思路完全来自 Java 的 Play Framework。 控制器示例: // app/controllers/app.gotype Application struct { *rev.Controller}func (c Application) Register() rev.Result { title := "Register" return c.Rend

  • 我需要在我的 JBoss 前面运行 Apache httpd,这样我就可以保留 JBoss 端口 (8080/8443),但将 Apache/80 转发到 Jboss/8080,将 Apache/443 转发到 Jboss/8443。我有 HTTP 转发工作,但我无法让 HTTPS 转发工作。为了让HTTP转发正常工作,我只需加载正确的代理模块: 然后添加了以下新指令: 如果我想做的就是将端口44

  • 问题内容: 我正在尝试制作一个使用 Redis* 作为后端的 Java应用程序 。由于 Redis 是一个非常快速的键值存储,我想使用它,但是 redis 可以与1个客户端一起使用,因此它没有user:pass身份验证的选项。我想找到一种实现某种身份验证的方法,因此我尝试了带有 redis2 扩展名的 nginx 。我这样做是因为我可以使用 客户端证书 和HTTPS。但这使我的应用程序非常慢。 *

  • 本文向大家介绍C#端口转发用法详解,包括了C#端口转发用法详解的使用技巧和注意事项,需要的朋友参考一下 本文实例讲述了C#端口转发用法。分享给大家供大家参考。具体分析如下: 这里以链接3389的时候为例 例子1:连接a机器的3389端口连不上,因为对方防火墙或者网关做了限制,只能访问a机器的个别端口比如80。 例子2:连接a机器的几乎所有端口都连不上(对方乃内网或者防火墙网关做了限制),只能143