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

大家都是怎么管理 Nginx 站点的?

  •  
  •   tlerbao · 2023-10-31 18:36:43 +08:00 · 5761 次点击
    这是一个创建于 417 天前的主题,其中的信息可能已经有所发展或是发生改变。

    服务器上用宝塔很方便。

    我本机是 Orbstack(Docker)环境

    每次有新开发的项目或者要测试项目我都要

    1. 在 host 里新建 xxx.test 域名指向 127.0.0.1
    2. 新建一个站点 conf ,xxx.test.conf ,然后重启 nginx 容器

    感觉有点 2B 呢,有没有快速的,或者可视化的软件实现更好的站点管理呢?

    49 条回复    2023-11-02 11:01:53 +08:00
    relsoul
        1
    relsoul  
       2023-10-31 18:46:31 +08:00
    nginx proxy manager
    tlerbao
        2
    tlerbao  
    OP
       2023-10-31 18:55:43 +08:00
    @relsoul 装了一下没看明白这东西干啥的。。。。
    NessajCN
        3
    NessajCN  
       2023-10-31 19:04:05 +08:00
    静态页如博客或开源文档就配好之后直接 hexo g d 或者 mkdocs build
    自建服务靠 nginx 反代那种就设好 proxy_pass 后直接动项目

    不管哪种都是配好后就不需要动 nginx 了
    kingfalse
        4
    kingfalse  
       2023-10-31 19:08:29 +08:00 via Android
    本地开发直接走 IP+端口,上服务器再考虑反代
    MinonHeart
        5
    MinonHeart  
       2023-10-31 19:29:38 +08:00
    1. 本机访问 URL - hosts - nginx(docker) - 本机仓库目录(缺点:不能访问未指定的目录)
    2. 本机访问 URL - hosts - nginx(docker) - 本机服务( locahost:8080/8443 ) (缺点:需要启动服务,且不能同时启动多个服务)

    nginx(docker) 主要是方便不需要 root 启 80/443 端口。通常 nginx 不需要改动,觉得没人会像我这么用
    xausky
        6
    xausky  
       2023-10-31 19:35:54 +08:00   ❤️ 1
    换 caddy ,配置文件简单很多,而且 reload 就行,当然 nginx 也可以 reload
    juggtt213
        7
    juggtt213  
       2023-10-31 19:51:49 +08:00
    换 whistle 试试?
    ymy3232
        8
    ymy3232  
       2023-10-31 19:53:17 +08:00
    nginx proxy manager 可以可视化管理 有汉化版
    jiayouzl
        9
    jiayouzl  
       2023-10-31 19:55:51 +08:00
    直接 NPM
    tuozhi
        10
    tuozhi  
       2023-10-31 20:05:34 +08:00 via iPhone
    强推 nginx proxy manager ,操作非常简单方便,点点点
    tlerbao
        11
    tlerbao  
    OP
       2023-10-31 20:07:15 +08:00
    @tuozhi
    @ymy3232 我装了一个英文版,我理解的他会读取我 nainx/conf.d 目录下的已经建立的站点,并进行管理,新建站点的话就是新建 conf ,但是好像并不是这样的,有点不明白这软件到底干啥的。
    能不能展开说说
    lovelylain
        12
    lovelylain  
       2023-10-31 20:19:11 +08:00 via Android
    @tlerbao 就是个 nginx 的 webui ,通过 web 去维护反代站点,它自动生成配置文件和帮你重启。
    tlerbao
        13
    tlerbao  
    OP
       2023-10-31 20:22:37 +08:00
    @lovelylain 真的不太懂 nginx ,我就是新建普通网站访问,和你们说的反代是一回事吗?
    admpubcom
        14
    admpubcom  
       2023-10-31 21:00:26 +08:00 via iPhone   ❤️ 1
    刚刚发布的 [nging v5.2.3]( https://github.com/admpub/nging/releases/tag/v5.2.3) 增加了对 nginx 的支持,op 不妨一试: https://github.com/admpub/nging/releases/tag/v5.2.3
    TabGre
        15
    TabGre  
       2023-10-31 21:08:23 +08:00 via iPhone
    ansible 维护一个 caddy 模版,维护应用 docker compose 建立任务 一键启动
    ByteCat
        16
    ByteCat  
       2023-10-31 21:33:37 +08:00
    nginx proxy manager ,鼠标点点 10s 一个站。不过我现在换 traefik 了,更方便点
    Qetesh
        17
    Qetesh  
       2023-11-01 00:12:17 +08:00
    算是一个典型的自动发现网关的需求,traefik 非常方便。在 docker 容器运行的时候添加相关 label ,就可以自动注册访问了。
    hosts 问题可以使用 surge 、clash ( hosts )添加通配符静态解析到本机
    cdlnls
        18
    cdlnls  
       2023-11-01 00:54:39 +08:00
    分配一个通配符子域名解析到 k8s 的 ingress 控制器的 IP 上,部署站点的时候写 yaml 文件的时候把 ingress 加上就可以了。
    yianing
        19
    yianing  
       2023-11-01 01:28:40 +08:00
    orbstack 的 docker 容器不是支持使用域名访问吗?
    yianing
        20
    yianing  
       2023-11-01 01:30:16 +08:00
    https://sslip.io/ 学习 knative 的时候碰到了这个网站,可以自定义域名和 ip
    zuotun
        21
    zuotun  
       2023-11-01 01:36:10 +08:00
    有域名的话用个三级子域名 A 记录指向本机 IP, 顺便还能白嫖一个一年的证书. 有证书办事会方便很多, 比如浏览器可能会自动跳 HTTPS.

    没有的话就像上面说的那样, 类似 clash 可以直接通配符 hsot 解析到本机 IP, 然后可以用 mkcert 自签证书. 其实用定制的 DNS 也可以做到, 但是需要修改本机默认 DNS.

    这样就不需要去改本地 host, 然后就是监听不同端口访问的事了 (泛解析也行)

    另外没看懂这有多麻烦, 而且本地测试就别折磨自己了, 直装 nginx 也许更方便一些.
    由于我如果要编辑配置文件的话, 终端一定早就打开了, 个人感觉是无所谓. 而且大部分情况也不会只是简单的加一个 proxy_pass, 比如:

    ```
    location / {
    proxy_http_version 1.1;
    proxy_set_header "Connection" "";
    proxy_set_header Host $host;
    proxy_set_header X-Real-IP $remote_addr;
    proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
    proxy_set_header X-Forwarded-Proto $scheme;

    proxy_pass http://vaultwarden;
    }

    location /admin {
    auth_basic "Private";
    auth_basic_user_file /path/to/.passwd;
    proxy_http_version 1.1;
    proxy_set_header "Connection" "";
    proxy_set_header Host $host;
    proxy_set_header X-Real-IP $remote_addr;
    proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
    proxy_set_header X-Forwarded-Proto $scheme;

    proxy_pass http://vaultwarden;
    }

    ```
    mikaelson
        22
    mikaelson  
       2023-11-01 02:21:18 +08:00
    标记一下,回头来看各路大神的回复
    ccde8259
        23
    ccde8259  
       2023-11-01 02:27:38 +08:00 via iPhone
    k8s 用户有 traefik
    全靠 cccv yaml 过日子
    先复制个 yaml 去申请 cert
    然后再复制个 yaml 写 ingressroute…
    Showfom
        24
    Showfom  
       2023-11-01 03:16:42 +08:00
    虽然 Caddy 或 Traefik 配置起来更方便,但是和 Nginx 性能对比,还是完败,不建议大流量的网站用这两货

    看国外老哥们的综合性能对比测试:

    https://medium.com/beyn-technology/is-nginx-dead-is-traefik-v3-20-faster-than-traefik-v2-f28ffb7eed3e
    https://blog.tjll.net/reverse-proxy-hot-dog-eating-contest-caddy-vs-nginx/
    wxyrrcj
        25
    wxyrrcj  
       2023-11-01 08:40:09 +08:00
    npm
    guo4224
        26
    guo4224  
       2023-11-01 09:01:19 +08:00 via iPhone
    apisix
    tlerbao
        27
    tlerbao  
    OP
       2023-11-01 09:12:40 +08:00
    @zuotun clash 通配符 host 解析到本机,这个具体怎么操作呢?
    i4t
        28
    i4t  
       2023-11-01 09:35:46 +08:00
    我用 APISIX 批量管理了 (纯 proxy 的站点,内网穿透主站)
    timnottom
        29
    timnottom  
       2023-11-01 09:50:14 +08:00
    之前想用 caddy ,但是它的配置文件语法,真的让我难以继续用下去;可能先入为主 Nginx 了
    lxiian
        30
    lxiian  
       2023-11-01 11:07:44 +08:00
    我是 caddy 一把嗦
    adoal
        31
    adoal  
       2023-11-01 11:27:34 +08:00   ❤️ 1
    对一般人的使用规模而言,有工夫学这些有的没的靠谱不靠谱的 manager UI 软件,手冲 nginx.conf 都冲出各种拉花了。
    fsdrw08
        32
    fsdrw08  
       2023-11-01 11:32:39 +08:00 via Android
    traefik + consul catalog
    zuotun
        33
    zuotun  
       2023-11-01 13:20:25 +08:00
    @tlerbao 官方文档有写, 如果一般是不关那这样很方便 (关了怎么上 V 站!)

    给个示例, 不解释应该也能看懂.

    ```
    hosts:
    +.router.kazusa.cc: 10.0.0.1
    *.clash.router: 10.0.0.1
    .lan: 10.0.0.1
    touma.kazusa.cc: 10.0.0.1
    ```

    如果是用 CFW 记得主界面就有 host 选项.
    Huelse
        34
    Huelse  
       2023-11-01 13:22:00 +08:00
    nginx 的配置可以说是个 DSL
    blessingsi
        35
    blessingsi  
       2023-11-01 13:24:25 +08:00
    既然只是在本机上进行开发测试,为什么非要用 Nginx 呢,随便起个 web 服务器不就行了。
    zuotun
        36
    zuotun  
       2023-11-01 13:27:11 +08:00
    @adoal 我就是纯手冲, 包括 nginx 都是自己编译的.
    当时 mainline 还不支持 HTTP/3, 自己又添加了 rtmp 玩了一下.
    zuotun
        37
    zuotun  
       2023-11-01 13:31:57 +08:00
    @blessingsi 说起来 clash 也可以通过 external-ui 起一个静态网站服务器, 不过这也太怪了.
    liuliancao
        38
    liuliancao  
       2023-11-01 13:35:35 +08:00
    把你的步骤写成脚本也就还好吧 其他的 反而有学习成本
    vacuitym
        39
    vacuitym  
       2023-11-01 13:36:55 +08:00
    以前是 apisix 配合他的后台
    tlerbao
        40
    tlerbao  
    OP
       2023-11-01 15:11:45 +08:00
    @zuotun #33

    我这 CFW 怎么没看见 host 相关的内容呢,你给的示例是改哪个文件呢?

    zuotun
        41
    zuotun  
       2023-11-01 16:46:28 +08:00
    @tlerbao 那就随便改个现有的配置文件吧, 随便点开一个然后添加 host: 就行了.
    实在不行可以看看这个 https://wiki.metacubex.one/config/dns/hosts/

    至于文件其实只有一份, 还没哪个订阅会对 host 进行覆写所以写哪都行.
    tlerbao
        42
    tlerbao  
    OP
       2023-11-01 19:45:43 +08:00
    @zuotun #41 我手持 N 个梯子,是要改某个梯子的配置吗,改完了更新订阅不就覆盖了没有了吗,有没有全局加这个的地方哈哈,好菜啊,打扰了。
    zuotun
        43
    zuotun  
       2023-11-01 22:59:54 +08:00
    @tlerbao 去改 `~/.config/clash/config.yaml`, 有不懂先去读文档, 不管是 clash 还是 CFW 都行.
    tlerbao
        44
    tlerbao  
    OP
       2023-11-01 23:03:32 +08:00
    @zuotun #43 我使用 mixin 写入了 hosts 成功代理了*.test 到 127.0.0.1 ,问题来了,哈哈,我在 chrome 浏览器下可以正确访问到 xxx.test ,但是我得 api 调试工具类似 postman ,访问不到和 warp 终端里 npm run dev 启动的 vue3 项目依然无法正确访问到 xxx.test ,经过测试给 api 调试工具开启代理指向 clash 的 7890 ,api 调试工具能访问了,

    哈哈,但是现在 warp 终端里的 npm run dev 的项目还是不行,不知道什么原因
    zuotun
        45
    zuotun  
       2023-11-01 23:09:33 +08:00
    @tlerbao 可以参考这个 https://kazusa.cc/geek/understanding-clash-configuration-files-in-one-article.html
    打开 DNS 和 TUN 再看看. 另外同一台设备可能会理不清, 但如果用虚拟机容器这种可以很轻松的搞定 (都不需要弄代理, 一个 DNS 指向 clash 就行了)
    litchinn
        46
    litchinn  
       2023-11-02 08:52:09 +08:00
    yekern
        47
    yekern  
       2023-11-02 09:39:08 +08:00
    Laravel Valet 很好用不过只能在 Mac 下使用
    mepwang
        48
    mepwang  
       2023-11-02 10:16:02 +08:00
    https://github.com/nginx-proxy/acme-companion
    acme-companion 本身使用 docker 启动,管理 nginx 运行容器,不需要修改 nginx 配置文件,只要为每个应用的 docker 容器指定子域名环境变量即可,还能够自动申请 ssl 证书
    suke119
        49
    suke119  
       2023-11-02 11:01:53 +08:00
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   2572 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 28ms · UTC 10:21 · PVG 18:21 · LAX 02:21 · JFK 05:21
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.