V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
NGINX
NGINX Trac
3rd Party Modules
Security Advisories
CHANGES
OpenResty
ngx_lua
Tengine
在线学习资源
NGINX 开发从入门到精通
NGINX Modules
ngx_echo
jenova
V2EX  ›  NGINX

发现一个漂亮的 nginx 界面,顺便请教大佬们一个问题

  •  
  •   jenova · 2019-12-21 13:00:11 +08:00 via iPhone · 12733 次点击
    这是一个创建于 1580 天前的主题,其中的信息可能已经有所发展或是发生改变。

    先推荐一下这个 nginx 项目,界面美观,操作方便,有 docker 版 上个主页链接

    https://nginxproxymanager.jc21.com/

    现在需要实现的功能是通过外网 https 域名访问家中服务器中多项 http 服务。

    之前的做法是通过外网域名+端口 A 访问到家中路由器,然后家中路由器把外网访问端口 A 转发到家中群晖端口 B,再使用群晖内置的反向代理界面(据说是 nginx 内核)将群晖端口 B 转发到家中各目标 ip+端口同时完成 https 到 http 的转化

    后来因为群晖配置太低想减轻它的压力,听说 nginx 可以实现我需要的功能(反向代理+https 转化),所以就先去装了 nginx 的 docker。奈何基础实在太差看了好久还是完全不懂怎么配置,这个想法就一直搁置了

    直到昨天发现了 nginx proxy manager 这个项目感觉很惊喜,毕竟小白热爱界面操作。但是使用后发现这个东西的 https 转化反向代理运转模式似乎是将外部域名 443 端口转到 nginxproxynanager 端口然后再转发到目标 ip+端口,这样的话一个外部域名只能到家里的一个 ip+端口了,想要访问别的 ip+端口还要再建子域名太麻烦了。

    看到 v2 大佬特别多所以来问问,这个 nginx proxy manager 有办法实现我想要的功能吗。。或者有没有什么适合小白操作的别的办法呢~

    本人小白,0 编程基础,为了折腾 nas 到处抄代码稍微明白了点 linux 操作方式。描述不清还请各位大佬海涵(・・;)

    23 条回复    2019-12-23 16:57:00 +08:00
    CallMeReznov
        1
    CallMeReznov  
       2019-12-21 13:02:20 +08:00
    你需要的是 frp 吧?
    jenova
        2
    jenova  
    OP
       2019-12-21 16:07:35 +08:00
    @CallMeReznov frp 是内网穿透吗?应该不是 frp

    哎 我觉得我写太乱了大家是不是都看迷糊了都没有人回我。。。。。。。。。。
    mauve
        3
    mauve  
       2019-12-21 16:12:39 +08:00
    建议使用 https://www.digitalocean.com/community/tools/nginx
    填写 /选择 你的需求,生成配置
    我最近在尝试 Nginx in Docker 部署自己的小项目,用起来说不出的别扭,建议还是把 Nginx 部署在宿主机上吧
    msg7086
        4
    msg7086  
       2019-12-21 16:22:40 +08:00
    嗯,真的看不懂。你 Nginx 装在哪?你说群辉已经用 Nginx 做转发了,那你现在再搭一个 Nginx 的目的是?
    yukiloh
        5
    yukiloh  
       2019-12-21 16:24:33 +08:00 via Android
    我觉得 nginx 的入门配置还是挺容易的,不去加插件的那种,大概十分钟就能看完…
    locoz
        6
    locoz  
       2019-12-21 16:39:07 +08:00
    对,这个管理界面很好用。我家里的服务器一直用的这个,像证书什么的都不用管的,打开 SSL 就会自动去申请,强烈推荐!

    然后你的需求是通过一个绑了家里公网 IP 的域名+端口访问多个 Web 服务是吧?这个管理界面确实不能添加多个同样域名的配置,但是使用多个子域名+统一的 Nginx 的 80/443 端口(实际家宽肯定用不了,是改的别的端口)访问不香吗?如果你想要单个子域名+不同端口访问多个 Web 服务的话,直接用路由器的端口映射就行了。

    如果想端口都统一 80/443 且家宽封端口,那就 FRP,直接用 TCP 转发功能将 Nginx 的 80/443 转发到公网服务器上(注意大陆服务器需要备案,香港等墙外的不需要),然后你弄个泛解析的域名绑到公网服务器的 IP 上就行了。具体的哪个子域名对应哪个服务,直接在 Nginx 的管理界面里设置。
    jenova
        7
    jenova  
    OP
       2019-12-21 17:21:04 +08:00 via iPhone
    @mauve 这个看着有点好用啊 0 0 我晚上回家试试
    jenova
        8
    jenova  
    OP
       2019-12-21 17:24:14 +08:00 via iPhone
    @msg7086 那个群晖配置太低了经常卡,我想让它专心存数据好了。将来想把 nginx 装在路由器里,现在装在另外一个服务器里....
    jenova
        9
    jenova  
    OP
       2019-12-21 17:24:54 +08:00 via iPhone
    @yukiloh 哎 我是真的看不懂....之前为这个东西看了好几天最后放弃了
    echowxsy
        10
    echowxsy  
       2019-12-21 17:29:41 +08:00
    frp 可以实现这些。github 搜 fatedier/frp
    jenova
        11
    jenova  
    OP
       2019-12-21 17:38:00 +08:00 via iPhone
    @locoz 感谢大佬回复!我这边主要外网域名有 https,但是内网的服务却没有也不想装。所以借用 nginx 的将外网 https 转为内网的 http,然后用端口来管理。之前没有用过 frp,frp 可以实现这个吗?
    jenova
        12
    jenova  
    OP
       2019-12-21 17:38:24 +08:00 via iPhone
    @echowxsy 好的大佬 我晚上回去看看
    locoz
        13
    locoz  
       2019-12-21 17:46:15 +08:00
    @jenova #11
    FRP 是用来在你家宽 80/443 端口被封的情况下,将请求从公网服务器上转发回家里用的,这样可以去掉域名后面带的端口号。
    而 Nginx 是用来将外网 https 转为内网的 http、指定某个子域名给某个内网的服务的。
    两个东西功能不同,结合使用就好了。

    然后建议你内网再弄个私有 DNS,内网环境下把域名解析到你的 Nginx 内网 IP 上,这样的话不管是在公网还是在内网,使用体验都是一致的(一个域名一个服务、不带端口号)。
    locoz
        14
    locoz  
       2019-12-21 17:48:27 +08:00
    @jenova #11 还有就是公网环境下不想走公网服务器通过 FRP 转发的话,可以看看我之前写的《骚操作!使用家里的服务器也能像用云服务器一样方便!》这篇文章: https://mp.weixin.qq.com/s/I55UOkuokKpSzvvKJvefpg
    locoz
        15
    locoz  
       2019-12-21 17:49:04 +08:00
    @locoz #14 补充:还有就是公网环境下不想走公网服务器通过 FRP 转发 (并且仍然想保持一致的使用体验) 的话
    jenova
        16
    jenova  
    OP
       2019-12-21 17:52:09 +08:00 via iPhone
    @locoz 好的大佬 我去研究研究
    Buges
        17
    Buges  
       2019-12-21 18:21:26 +08:00 via Android
    人生苦短,我用 Caddy

    统一用 https,443 端口,自动获取证书,不同子域名代理到不同的后端服务上。通过网关 hosts 实现分流内网直连外网走 frp
    Buges
        18
    Buges  
       2019-12-21 18:23:57 +08:00 via Android
    Caddy 的配置简洁清晰,比 Nginx *一样混乱复杂的语法简单多了
    jenova
        19
    jenova  
    OP
       2019-12-21 19:40:47 +08:00
    @Buges 我还真的试过 caddy,然而也不明白。完全不懂程序哎
    Buges
        20
    Buges  
       2019-12-21 19:55:50 +08:00
    @jenova #19 这里有份翻译的文档: https://dengxiaolong.com/caddy/zh/beginner.html
    当然因为太简单,你直接看官方的也没问题
    关注一下 http.proxy 就能实现你的需求

    随便贴下我的配置(每一块就是一个站点)
    seakingii
        21
    seakingii  
       2019-12-22 08:57:25 +08:00
    如果你想有一个能管理 NGINX 的管理界面
    推荐 LINUX 的管理面板,比如国内的宝塔
    理由:
    全中文,界面简单明了
    可以管理 NGINX.对你来说,可以比较简单的设置反向代理
    可以管理其它,比如端口的开和关,管理数据库什么的
    缺点:
    它是 LINUX 服务器的管理面板,不仅是 NGINX 的管理面板,安装的东西有点多
    需要比较强的硬件(对比路由器..)
    需要一定的操作系统(WINDOWS 也能装,最好主流 LINUX)

    想用的话建议先在虚拟机里安装一个玩玩先
    jenova
        22
    jenova  
    OP
       2019-12-22 10:15:47 +08:00
    @seakingii 啊,我是想装个宝塔的,但是现在用的这个系统( unraid )不在宝塔的适用系统范围里,不知道能不能装。。。
    locoz
        23
    locoz  
       2019-12-23 16:57:00 +08:00
    @jenova #22 Unraid 的话不怎么需要宝塔啊,本身那个社区搞的 APP 商店(叫 Community Applications )就能一键安装很多扩展
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   我们的愿景   ·   实用小工具   ·   1134 人在线   最高记录 6543   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 27ms · UTC 18:28 · PVG 02:28 · LAX 11:28 · JFK 14:28
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.