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

156 天前
 Rebron1900

我之前的服务器 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"
2960 次点击
所在节点    Docker
38 条回复
lcl101
155 天前
给写入权限了么
jasonyang9
155 天前
@version 老哥有教程么或者给几个例子什么的
zzerd
155 天前
@version treafik +1
dreamage
154 天前
歪个楼 这帖子 ID 挺顺
Serino
153 天前
如果是为了反代,我为了偷懒,选择了 Caddy
Rebron1900
153 天前
@miaotaizi 确实有些疑惑,比如我帖子里说到,机器里如果好几个 server 里都设置 mysql ,会造成资源浪费吗?
Rebron1900
153 天前
@Serino 确实是为了反代,不过之前 nginx 上有七八域名配置,不想再一个个去转成 Caddy 了。
kindom
153 天前
投 NPM 一票
Serino
152 天前
@Rebron1900 #27 我之前也是用 nginx ,好多坑掉进去,什么 https 头啊各种乱七八糟的,这方面我是小白,搞不懂,糟心。

换了 Caddy ,一般配置就三四行,
一行配置端口号,
一行配置证书 (我另外用脚本申请的),外加 tls 版本,
一行配置反代 IP ,
顶多再加两行可有可无的,配置 encode 方式和日志。
保存,重启 Caddy ,收工~
dianso
152 天前
@Serino #29 CADDY 没有详细文档啊,试了几次都失败了,就放弃了。。。
Serino
152 天前
@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
152 天前
@Serino #31 好像 V2EX 把我的缩进吃吃了
Rebron1900
151 天前
@dianso 真是哪哪都有你呀。
yongso
150 天前
docker 启动 nginx 有个坑,就是需要自己先把配置文件 cp 出来再映射(Docker 部署 Nginx 服务)[https://blog.zsan.cf/posts/docker-build-nginx/]
另外非专业用户还是用 caddy 吧!现代化工具,官方 docker 支持,部署太简单了!
Rebron1900
150 天前
@yongso 对,我当时也发现了这个问题。还是听楼上大家说的,这种服务还是直接本地起一个吧。
Rebron1900
150 天前
@yongso 目前用的一木记账,最近也写了一篇记账的文章,hhh.
你博客的 twikoo 好像出问题了。
yongso
147 天前
@Rebron1900 感谢🙏由于之前换域名导致的跨域问题
yongso
147 天前
@Rebron1900 一木记账和钱际好像是一类的,不过还是觉得有能力自建记账,账本可是命根子啊,关于隐私这块,都是从业人士,不用多说都知道

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/1000888

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX