[Nginx]如何为已经在端口上运行的服务启用ssl?

时间:2013-01-27 19:26:54

标签: proxy nginx couchdb

默认情况下我在端口5984上运行了couchdb 1.2,并且我已启用绑定地址0.0.0.0,以便我可以从外部世界访问沙发。同时我将“required user”设置为true(默认设置为couchdb启用基本身份验证)。我可以从外面访问沙发,我主要使用它进行复制。

我的应用程序前面有nginx,因此http://example.com的所有请求都被重新计入https://example.com,请求由运行我的rails应用程序的乘客服务器提供。

当我从世界各地启用沙发时,目前我可以通过http://ip_address:5984http://example.com:5984访问我的couchdb(观察者不是https)。

我想对couchdb提供的请求启用https。我认为并且对我没用的几个解决方案是 - 1.通过位置ex向couchdb添加代理:对https://example.com/couchdb/的所有请求都可以代理传递给http://127.0.0.1:5984(或) 2.通过listen port ex添加代理:在另一个端口上侦听“https://example.com:5985”,代理将请求传递给http://127.0.0.1:5984。 3.我无法收听5984并且代理将其传递给http://...:5984,因为该端口已被couchdb使用。

有没有办法可以说nginx通过https代理将所有请求传递到端口5984? 即对http://example.com:5984的任何请求都应重定向到http**s**://example.com:5984

1 个答案:

答案 0 :(得分:0)

我想我的问题的简单答案是无法将http://example.com:5984的传递请求代理到{https://example.com:5984}。为了解决这个问题,我已经为沙发启用了默认https,因此我只能通过{https://example.com:5984}访问我的沙发。沙发的SSL是从couchdb1.1实现的