首页 >>  正文

nginx反向代理ssl

来源:baiyundou.net   日期:2024-09-21

作者:他们都叫我老宁

前言

有很多小伙伴用群晖的时候都是通过HTTP连接到群晖Docker中的第三方服务,经常反馈连接不到群晖服务,其实HTTP的信息是明文传输的,是不安全的,所以有很多客户端强制使用HTTPS。

而HTTPS 是由 SSL+HTTP 构建,具有加密传输和身份认证的特性,所以比 HTTP 更安全,HTTPS 需要向证书颁发机构(CA)申请证书,这也是比HTTP相对麻烦的地方。

接下里就演示如何通过群晖自带域名来给Contain Manager中的服务加上SSL

域名

打开控制面板的外部访问,可以看到DDNS选项卡下有群晖默认创建的一条DDNS记录,主机名称为【自定义名称.群晖一级域名】,外部地址就是家里的公网IP

有很多不懂的小伙伴会问,DDNS是什么?先说DNS,在互联网上,每个设备都有一个唯一的 IP 地址,这是用于在网络上识别设备的数字标识。人们更容易记住具有意义的域名而不是一系列数字。DNS的作用就是将这些易记的域名映射到相应的 IP 地址。而DDNS就多了一个D(Dynamic),动态的意思,因为家里的公网IP都是变化的,所以需要DDNS帮助我们自动检测并更新设备的 IP 地址到 DDNS 服务上,这样才能通过域名找到家里的群晖

至于为啥我的域名这么简单,而不是synology.me,需要点开编辑,选择自己喜欢的域名就行了

群晖的域名可以自动续签SSL证书,加上可以自己设置域名,也是让群晖用户省了一笔

反向代理

先说说什么是反向代理,简单来就是代理服务器接受客户端的请求,然后将这些请求转发给内部服务器,最终将内部服务器的响应返回给客户端

举个例子,在群晖Docker系列中,用Memos搭建了一个备忘录,当我们在手机上记录内容并保存时,手机就会给群晖发送请求,群晖使用了反向代理,那么就是群晖的代理服务器接受到了请求,然后就会转发给Docker的Memos服务器保存数据,Memos服务器保存成功后又通过代理服务器返回成功的数据给手机客户端

为什么要用方向代理?这个好处比较多了,对于我们目前来说,可以方便配置SSL,后面访问Docker任何都可以不用带5230、25600各种各样的端口号了,只需要使用一个就行(至于为啥不能全部去掉端口号,直接用域名访问?那是因为家里的宽带都被运营商封了80、443端口)

接下来演示进行反向代理的配置,打开控制面板->高级->反向代理服务器

新增一条代理规则,这里以代理 Memos 服务为例。

来源协议需要选择HTTPS,主机名为DDNS的主机名,端口5555为用使用HTTPS访问的端口号,目的地填写本机地址(群晖本机搭建的Memos)和端口5230(Memos服务端口)

再去路由器把5555端口放开,这时候就可以使用【https://域名:5555】访问Memos了

后记

这样每个服务都要加一个代理服务器配置起来也是比较麻烦的,并且不能实现前面说的:使用同一个域名+端口+/path访问不同的内网服务。如果想要实现必须手动修改群晖反向代理服务器(nginx)的配置,这里是非常不建议手动修改nginx配置的,一个不小心你的群晖可能就无法访问了,后面会介绍通过界面配置nginx来实现所有内网服务的SSL

查看文章精彩评论,请前往什么值得买进行阅读互动

","gnid":"9dc0f8b9b080ccfd9","img_data":[{"flag":2,"img":[{"desc":"","height":"334","title":"","url":"https://p0.ssl.img.360kuai.com/t01b5cfdc62cf40894f.jpg","width":"1080"},{"desc":"","height":"581","title":"","url":"https://p0.ssl.img.360kuai.com/t01aa001e6b5066beb0.jpg","width":"1080"},{"desc":"","height":"694","title":"","url":"https://p0.ssl.img.360kuai.com/t011779f8ad0f6f320f.jpg","width":"1080"},{"desc":"","height":"717","title":"","url":"https://p0.ssl.img.360kuai.com/t01b0681055734b12c8.jpg","width":"1080"},{"desc":"","height":"988","title":"","url":"https://p0.ssl.img.360kuai.com/t01b3f2b4b227ed7c07.jpg","width":"1080"},{"desc":"","height":"92","title":"","url":"https://p0.ssl.img.360kuai.com/t01c2c7496c4e16ee1e.jpg","width":"566"}]}],"original":0,"pat":"art_src_1,fts0,sts0","powerby":"pika","pub_time":1701677576000,"pure":"","rawurl":"http://zm.news.so.com/433c058d3aff0f23c143e10fd7896fff","redirect":0,"rptid":"fc892048ac06a225","rss_ext":[],"s":"t","src":"什么值得买","tag":[],"title":"群晖小白系列 篇十二:群晖小白系列(十二)给群晖中的Docker第三方服务加上SSL,从原理说起!

陈吉侍799nginx这种反向代理服务器与正向代理有什么区别 -
贾罡柿14777463339 ______ 代理分为正向代理和反向代理两种 反向代理一般用于将防火墙后面的服务提供给用户访问或者进行负载均衡 典型的就包括 Nginx

陈吉侍799nginx反向代理有哪些好处? -
贾罡柿14777463339 ______ 主要的好处就是负载均衡,如果不做反代,所有的访问都是对本地资源的访问,大量的IO操作会影响系统整体性能.另外,做反代,可以在不同的服务器上部署不同的资源和项目,便于系统管理.

陈吉侍799nginx的反向代理和负载均衡的区别是什么 -
贾罡柿14777463339 ______ 负载均衡需要通过反向代理来实现 反向代理就是指nginx作为前端服务器,将请求转发到后端,再将后端服务器的结果,返回给客户端 它在中间做了一个代理服务器的角色 负载均衡对反向代理增加了一些策略,因为后端是多台服务器,nginx会根据设定的策略将请求转发给一个相对空闲的服务器,对负载进行分流,减轻服务器压力

陈吉侍799请教一个 nginx 反向代理 https 的问题 -
贾罡柿14777463339 ______ expires使用了特定的时间,并且要求服务器和客户端的是中严格同步.而Cache-Control是用max-age指令指定组件被缓存多久.对于不支持http1.1的浏览器,还是需要expires来控制.所以最好能指定两个响应头.但HTTP规范规定max-age指令将重写expires头.

陈吉侍799nginx在只做反向代理访问HTTPS站点的情况下,nginx本身用配证书吗? -
贾罡柿14777463339 ______ 可以在nginx上配置证书,后端服务器就不再需要配置证书了.比如说,现在1台nginx,两台后端服务器,如果在nginx上配置证书,那么直需要向证书机构申请一次即可,然后安装到nginx那台服务器,然后再反向代理到后端服务器的80端口.另一种是nginx只做反代(443),两台后端服务器都安装证书.这样就需要配置2台服务器.相对来说在nginx上配置节约时间.

陈吉侍799nginx怎么做特定url的反向代理 -
贾罡柿14777463339 ______ 针对特定URL做反向代理,可以在location中使用proxy_pass指令 location支持正则表达式,可以使用正则表达式来制定URL匹配的规则 location中是proxy_pass指令,用于指定反向代理的规则

陈吉侍799Nginx 反向代理为什么可以提高网站性能 -
贾罡柿14777463339 ______ nginx对高并发表现较好,nginx反向代理可以用于实现负载均衡 相当于把nginx做为入口服务器,后面均衡多台网站或业务服务器,把用户访问压力分散到多台服务器上 即使其中一台服务器宕机、不会影响网站正常运行 可以参考下实例:http://www.tocus.com.cn/?send=article_show&id=160&class=1 nginx还是挺牛b的

陈吉侍799如何获取nginx反向代理域名 -
贾罡柿14777463339 ______ nginx反向代理后,在应用中取得的ip都是反向代理服务器的ip,取得的域名也是反向代理配置的url的域名,解决该问题,需要在nginx反向代理配置中添加一些配置信息,目的将客户端的真实ip和域名传递到应用程序中.

陈吉侍799怎么使用nginx的vhost -
贾罡柿14777463339 ______ nginx为了实现反向代理的需求而增加了一个ngx_http_proxy_module模块.其中proxy_set_header指令就是该模块需要读取的配置文件.在这里,所有设置的值的含义和http请求同中的含义完全相同,除了Host外还有X-Forward-For. Host的含义...

陈吉侍799如何为thinkjs静态资源配置nginx反向代理 -
贾罡柿14777463339 ______ 为了让网站静态资源加载更快,所以需要在VPS的nginx上配置一个反向代理来直接让Nginx处理静态资源,动态类的请求通过反向代理让Node.js来处理:?server { listen 80; server_name abc.com www.abc.com; index index.js index.html index....

(编辑:自媒体)
关于我们 | 客户服务 | 服务条款 | 联系我们 | 免责声明 | 网站地图 @ 白云都 2024