我又来了,还是 docker 的问题: docker 起的 nginx,老是提配置文件打不开。 - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
Rebron1900
V2EX    Docker

我又来了,还是 docker 的问题: docker 起的 nginx,老是提配置文件打不开。

  •  
  •   Rebron1900 2023-12-16 11:52:18 +08:00 6297 次点击
    这是一个创建于 667 天前的主题,其中的信息可能已经有所发展或是发生改变。

    我之前的服务器 nginx 是本地安装的,我搬家的时候直接把/etc/nginx/目录下的所有文件都搬到新 vps 上。 新 vps 上用 docker 起了个 nginx ,挂载的目录,compose 文件配置如下,up 后但是总是提示 nginx: [emerg] open() "/etc/nginx/sites-enabled/test.live.conf" failed (2: No such file or directory) in /etc/nginx/nginx.conf:61 请问我那里理解错了呢?

    version: '3' services: nginx: image: nginx container_name: nginx volumes: - /home/test/data/nginx-data:/etc/nginx ports: - "80:80" 
    38 条回复    2023-12-24 18:24:41 +08:00
    nagisaushio
        1
    nagisaushio  
       2023-12-16 11:56:39 +08:00 via Android
    sites-enabled/test.live.conf 存在吗
    nagisaushio
        2
    nagisaushio  
       2023-12-16 11:58:20 +08:00 via Android
    可能是因为 site-enabled 下都是软链?挂载后失效了
    Rebron1900
        3
    Rebron1900  
    OP
       2023-12-16 11:59:01 +08:00
    @nagisaushio 存在,通过 ln -s 从 sites-available 链接过去的。
    Rebron1900
        4
    Rebron1900  
    OP
       2023-12-16 11:59:48 +08:00
    @nagisaushio 我试试 cp 一个过去。
    Rebron1900
        5
    Rebron1900  
    OP
       2023-12-16 12:00:56 +08:00
    @nagisaushio 确实~~~
    Rebron1900
        6
    Rebron1900  
    OP
       2023-12-16 12:03:11 +08:00
    有点动摇了,到底用不用 docker 起 nginx ,上面这个问题解决完,证书又出问题了。
    我在 snippets 里写了个 ssl 的配置,在所有站点的 conf 里引用,现在又提示证书加载失败~~!!。
    /div>
    BrandonNg
        7
    BrandonNg  
       2023-12-16 12:09:41 +08:00
    nginx/数据库这种 最好还是不要用 docker
    julyclyde
        8
    julyclyde  
       2023-12-16 12:36:18 +08:00
    @Rebron1900 首先最好不用容器技术运行基础软件
    其次,你上次配置文件咋解决的,按照思路再看看证书呗
    SenLief
        9
    SenLief  
       2023-12-16 12:42:03 +08:00
    nginx 不建议用 docker ,我觉得手动配置好些钱,减少出错。
    Rebron1900
        10
    Rebron1900  
    OP
       2023-12-16 13:00:50 +08:00
    @julyclyde 按之前的思路解决了,算了,还是不用容器了...本地起算了。
    cctv6
        11
    cctv6  
       2023-12-16 13:18:42 +08:00
    我也倾向于 nginx 不用 docker ,只有在需要更换版本测试的时候会考虑到用 docker 来快速启动。本身 nginx 安装并不复杂,基本上发行版的包管理都带了,安装也就是一句命令的事,也不会和系统其他组件冲突。用了 docker 的话还要额外考虑配置文件、日志文件、静态资源文件的挂载,ssl 证书自动更新也要额外处理。反正使用 docker 的优势一个都没有体现,还额外增加了其他麻烦事。
    julyclyde
        12
    julyclyde  
       2023-12-16 13:22:38 +08:00
    @Rebron1900 恭喜拨乱反正
    不如写写解决问题的经验
    evill
        13
    evill  
       2023-12-16 14:54:27 +08:00
    查看文件所属的 uid 和 container 的 uid 是否一致
    vishun
        14
    vishun  
       2023-12-16 14:57:51 +08:00
    @Rebron1900 #6 如果是自己用的站点,直接用 caddy 会方便一些,省的配置 ssl 这些。
    Rebron1900
        15
    Rebron1900  
    OP
       2023-12-16 14:58:21 +08:00
    结帖,基础服务本地安装,hhhh
    Rebron1900
        16
    Rebron1900  
    OP
       2023-12-16 14:59:47 +08:00
    @vishun 还是用 Nginx 好一些,出问题了能找到的资料会多一些,好解决。SSL 我是用代码段+泛域名证书处理的,其实还算方便,每个服务引用一下就好了。
    miaotaizi
        17
    miaotaizi  
       2023-12-16 15:11:05 +08:00
    你这应该是没明白 docker 的特性

    可以找一些现成的 docker 方案看看

    我之前是通过 laradock 这个项目学习到的
    chenqh
        18
    chenqh  
       2023-12-16 15:26:19 +08:00
    nginx 这种东西从来不会装失败吧,mysql 我倒是装失败过,nginx 没必要 docker
    chackchackGO
        19
    chackchackGO  
       2023-12-16 15:32:34 +08:00
    @Rebron1900 docker nginx proxy?
    version
        20
    version  
       2023-12-16 15:44:34 +08:00
    nginx-proxy-manager
    traefik
    用过后.我再也没安装过任何软件命令行了..啥东西都要有 docker 没自己包一个
    服务器本地安装..效率太低..很多网络不给力..
    lcl101
        21
    lcl101  
       2023-12-16 17:32:16 +08:00
    给写入权限了么
    jasonyang9
        22
    jasonyang9  
       2023-12-16 18:15:44 +08:00 via Android
    @version 老哥有教程么或者给几个例子什么的
    zzerd
        23
    zzerd  
       2023-12-17 11:41:27 +08:00 via Android
    @version treafik +1
    dreamage
        24
    dreamage  
       2023-12-17 21:01:05 +08:00
    歪个楼 这帖子 ID 挺顺
    Serino
        25
    Serino  
       2023-12-18 13:02:21 +08:00
    如果是为了反代,我为了偷懒,选择了 Caddy
    Rebron1900
        26
    Rebron1900  
    OP
       2023-12-18 13:34:35 +08:00
    @miaotaizi 确实有些疑惑,比如我帖子里说到,机器里如果好几个 server 里都设置 mysql ,会造成资源浪费吗?
    Rebron1900
        27
    Rebron1900  
    OP
       2023-12-18 13:42:13 +08:00
    @Serino 确实是为了反代,不过之前 nginx 上有七八域名配置,不想再一个个去转成 Caddy 了。
    kindom
        28
    kindom  
       2023-12-18 13:50:30 +08:00
    投 NPM 一票
    Serino
        29
    Serino  
       2023-12-19 15:06:08 +08:00
    @Rebron1900 #27 我之前也是用 nginx ,好多坑掉进去,什么 https 头啊各种乱七八糟的,这方面我是小白,搞不懂,糟心。

    换了 Caddy ,一般配置就三四行,
    一行配置端口号,
    一行配置证书 (我另外用脚本申请的),外加 tls 版本,
    一行配置反代 IP ,
    顶多再加两行可有可无的,配置 encode 方式和日志。
    保存,重启 Caddy ,收工~
    dianso
        30
    dianso  
       2023-12-19 17:19:54 +08:00
    @Serino #29 CADDY 没有详细文档啊,试了几次都失败了,就放弃了。。。
    Serino
        31
    Serino  
       2023-12-20 10:45:31 +08:00
    @Rebron1900 #27 有的吧,印象中官网都有。

    你做反代,用 Caddy1 就行了,不需要用 Caddy2 。
    一些小的 Caddy 的镜像,才十多 MB 。
    但有些人编译的估计有问题,用不了。
    我用的是这个
    mting/xcaddy ( https://hub.docker.com/r/mting/xcaddy)

    ---

    docker 部署的时候,映射 Caddy 的那个/etc/caddy 路径出来,
    然后修改这个路径下的 Caddyfile 配置文件,
    比如这样:

    # whoami
    :63001 {
    tls /etc/caddy/myCert.cer /etc/caddy/myCert.key {
    protocols tls1.3
    }
    reverse_proxy 172.16.18.201
    encode gzip zstd
    }

    重启 Caddy ,反代就立马生效了。

    配置里面的这个
    reverse_proxy 172.16.18.201
    如果有需要,也是可以带端口的,比如
    reverse_proxy 172.16.18.201:23456

    SSL 证书自己找方法搞定。
    我是写了个脚本,申请到就复制到特定位置覆盖。

    这样,访问 caddy 的 63001 端口,就会反代到 172.16.18.201 ,
    不用担心 nginx 什么 https 这个头那个头的问题。



    最初换 Caddy ,是因为我太小白了,
    Gotify docker 的那个 https ,在 nginx 下,实在搞不定。
    用 Caddy ,嘿嘿,几行解决,顺利连通。

    ---

    如果要弄 log ,
    Caddyfile ,前面的部分加上:

    (log) {
    log {
    output file /etc/caddy/log/{args.0}/access.log {
    roll_size 5MiB
    roll_local_time
    roll_keep 25
    roll_keep_for 2160h
    }
    format console
    }
    }

    然后反代配置加一行改成这样:

    # whoami
    :63000 {
    tls /etc/caddy/myCert.cer /etc/caddy/myCert.key {
    protocols tls1.3
    }
    reverse_proxy 172.16.18.201
    encode gzip zstd
    import log whoami
    }

    ---

    如果想做个小的静态网站,
    反代的配置再加一行
    root * /etc/caddy/xxxxxx
    类似这样。
    这样访问的时候就会自动链接到这个目录下的 index.html

    对比让我头大的 nginx ,Caddy 真的超简单
    Serino
        32
    Serino  
       2023-12-20 10:53:10 +08:00
    @Serino #31 好像 V2EX 把我的缩进吃吃了
    Rebron1900
        33
    Rebron1900  
    OP
       2023-12-20 20:06:08 +08:00
    @dianso 真是哪哪都有你呀。
    DD0a48YwCzYUCQ8y
        34
    DD0a48YwCzYUCQ8y  
       2023-12-21 22:51:27 +08:00
    docker 启动 nginx 有个坑,就是需要自己先把配置文件 cp 出来再映射(Docker 部署 Nginx 服务)[https://blog.zsan.cf/posts/docker-build-nginx/]
    另外非专业用户还是用 caddy 吧!现代化工具,官方 docker 支持,部署太简单了!
    Rebron1900
        35
    Rebron1900  
    OP
       2023-12-22 09:49:32 +08:00
    @yongso 对,我当时也发现了这个问题。还是听楼上大家说的,这种服务还是直接本地起一个吧。
    Rebron1900
        36
    Rebron1900  
    OP
       2023-12-22 09:51:57 +08:00
    @yongso 目前用的一木记账,最近也写了一篇记账的文章,hhh.
    你博客的 twikoo 好像出问题了。
    DD0a48YwCzYUCQ8y
        37
    DD0a48YwCzYUCQ8y  
       2023-12-24 18:22:16 +08:00
    @Rebron1900 感谢由于之前换域名导致的跨域问题
    DD0a48YwCzYUCQ8y
        38
    DD0a48YwCzYUCQ8y  
       2023-12-24 18:24:41 +08:00
    @Rebron1900 一木记账和钱际好像是一类的,不过还是觉得有能力自建记账,账本可是命根子啊,关于隐私这块,都是从业人士,不用多说都知道
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     1087 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 26ms UTC 18:12 PVG 02:12 LAX 11:12 JFK 14:12
    Do have faith in what you're doing.
    ubao snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86