[英]nginx or node app using ssl
我有nodejs表示坐在nginx后面。 目前一切正常。 我使用SSL實現了Nginx以使用https,然后只需將請求轉發到指定端口上的運行節點應用程序。 我想知道這是否是最好的方法呢? 這是我現在擁有的......
server {
listen 80;
return 301 https://$host$request_uri;
}
server {
listen 443 ssl;
server_name mysite.somethingelse.com www.mysite.somethingelse.*;
ssl_certificate /path/to/my/cert.pem;
ssl_certificate_key /path/to/my/key.key;
location / {
proxy_pass http://localhost:3000;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection 'upgrade';
proxy_set_header Host $host;
proxy_cache_bypass $http_upgrade;
}
}
如果我只是在快速端實現https服務器怎么辦? 然后將請求代理到那個,並讓它做所有的解碼? 像這樣的東西:
server {
listen 80;
return 301 https://$host$request_uri;
}
server {
listen 443;
server_name mysite.somethingelse.com www.mysite.somethingelse.*;
location / {
proxy_pass https://localhost:3000;
proxy_http_version 1.1;
proxy_cert path/to/cert.pem
proxy_key path/to/key.key
}
}
第二個版本可能甚至不正確。 但我想要的是在節點應用程序上實現SSL,而不是讓nginx這樣做。
謝謝!
如果您正在追求性能並在多個節點實例之間實現負載平衡,那么在獨立計算機上終止SSL是個好主意。 但是,如果您要運行節點應用程序的單個實例並且預計負載不高,那么在節點中設置SSL可能更簡單。 另外我建議你不要使用nginx並切換到NAT(使用防火牆),因為這種方法將使用更少的資源。
支持在nginx上終止SSL的另一個論點是文檔和配置最佳實踐。 您應該知道配置SSL不僅僅是關於設置證書和私鑰,還有很多關於不同密碼,協議和漏洞的安全注意事項。 並且更容易找到nginx的工作解決方案,技巧和配置示例,而不是節點。
所以關於你的問題:
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.