发布于 2026-01-06 0 阅读
0

发布 jinx——nginx 的一个神奇封装器

发布 jinx——nginx 的一个神奇封装器

这篇文章最初发表在我的个人博客上。

我超级兴奋地要发这条帖子,因为我做了个东西!没错,我真的亲手做了个东西,现在我要把它发布出来!隆重推出:jinx

事情是这样的,不久前我不小心在很短的时间内创建了太多 Let's Encrypt 账户,结果把整个服务器基础设施都搞崩溃了。真是太搞笑了,我花了周六的大部分时间才把所有东西都恢复到备用的 nginx 配置上。

在此过程中,我很快注意到设置虚拟主机时存在一个非常重复的模式。每个网站的设置过程都大同小异,大致如下。

# create a new site
cp \
    /etc/nginx/configurations/php.conf \
    /etc/nginx/sites-available/pretzelhands.com.conf

# change the host name to the new site name
nano /etc/nginx/sites-available/pretzelhands.com.conf  

# activate the site in nginx
ln -s \
    /etc/nginx/sites-available/pretzelhands.com.conf \
    /etc/nginx/sites-enabled

# restart to publish newly activated sites
systemctl restart nginx
Enter fullscreen mode Exit fullscreen mode

使用命令^R行虽然速度快了一些,但仍然极其繁琐。这需要输入 4 条不同的命令,而且我必须重复输入相同或类似的路径整整四次。这种感觉实在太糟糕了,所以我想起了我
最近写了很多关于 shell 脚本的文章,于是决定利用这些知识来创建jinx

现在,同样的流程看起来是这样的。

# create a new site and insert hostname in template file
jinx site create pretzelhands.com php

# activate the site and restart
jinx site activate pretzelhands.com -r
Enter fullscreen mode Exit fullscreen mode

从四条冗长重复的指令简化成两条简短的指令。真是个不错的改进。而我只为此花了一个周日下午的时间。

虽然最初的开发工作量可能比手动搭建网站要大,但我仍然很高兴我这么做了,因为开发过程很有趣,而且我可以经常重复使用。每次创建新的虚拟主机时,这个工具大概都能帮我节省两三分钟的重复输入时间。

此外还有一些其他功能,但您可以在文档中了解所有内容

我坦白承认,这可能是我迄今为止最有用的副业项目。而且它还得到了Pieter Levels的认可,所以我想这应该也算有点意义吧!

GitHub 标志 麻花手/厄运

✨jinx - 一个神奇的 nginx 封装器

jinx——一个神奇的nginx包装器


jinx 是一个完全用 Bash 编写的 nginx 封装脚本。它能帮助你以比使用纯 shell 命令更简洁的方式管理你的站点和配置。


目录


先决条件

由于这是 Jinx 的早期版本,它对您的环境仍有一些假设。目前这些假设如下:

  • 您的网站分为两个文件夹:sites-availablesites-enabled:前者包含您可能托管的所有可用网站,后者包含可通过网络访问的网站。

安装

使用便捷的安装脚本,只需一行命令即可安装 Jinx…

我希望您能像我一样,从这个工具中获得乐趣和实用价值。我也会尝试添加更多实用功能,例如启用 HTTPS 和从内置代码片段构建配置。让我们拭目以待吧!

尽情享用吧!

文章来源:https://dev.to/pretzelhands/releasing-jinx---a-magical-wrapper-around-nginx-262i