2013-03-28 55 views
1

假設我有一個設置運行我的Rails應用程序與Unicorn和使用Nginx作爲反向代理。當Nginx配置爲處理SSL時,這是否意味着它直接將加密數據傳遞給我的Rails應用程序,或者將其解密,然後將其發送到我的Rails應用程序,以便我的Rails應用程序可以看到未加密的數據?Nginx如何將SSL加密數據傳遞給Rails應用程序?

回答

3

這就是所謂的nginx ssl終止。該數據已經被nginx的和上游Rails應用程序解密只需要處理的未加密的數據,也就是說,你的Rails應用程序應該只是聽80端口(HTTP)和反向代理服務器的設置,你應該有

proxy_pass http://rails_app_domain; 

不是

proxy_pass https://rails_app_domain; 
+0

我想要什麼?我想要ssl終止嗎?還是我希望nginx能夠不加改變地傳遞加密數據? – user782220 2013-03-28 03:16:21

+3

您希望nginx解密並將未加密的數據傳遞給rails。 Nginx應該處理所有的解密(入站流量)和加密(出站) - 它以C完成,速度非常快。你不希望Ruby/Rails處理加密數據。 – 2013-03-28 03:38:36

+0

由於rails應用程序位於同一臺服務器上或局域網內,因此可以安全地終止nginx中的ssl,並讓rails應用程序執行任何擅長的操作:提供內容。 – 2013-03-28 03:40:20

相關問題