嘟嘟社区

请教大佬怎么修改nginx配置文件


本帖最后由 Backkom 于 2022-8-7 17:49 编辑
  1.         location / {
  2.                 proxy_pass $upstream;
  3.                 #test#
  4.         }

复制代码

目前想到的增加内容只能通过这种 #test# 自定义关键字替换,删除没有关键字怎么办,记录所有替换操作在数据库吗?那操作多的时候数据库岂不是要炸,关键字可能会误伤到其他无关设置

记录行数吗?也只能对现有已配置文件记录,增加内容之后要删除的话依旧要找删哪个内容,内容在哪个行

还有提取中间文本,但是location /xxxx 这个xxxx就没法获取了

想了一下午了,实在没头绪,求脚本大佬或者有经验的大佬教教,逛了github找到一个python-nginx 解析器,但是没有文档

没看明白,你是想在自己后台系统修改nginx配置吗?

iiss 发表于 2022-8-7 17:51
没看明白,你是想在自己后台系统修改nginx配置吗?

是的,想实现对conf文件的增删改查操作,类型cdnfly添加删除缓存之类

自己写解析规则?

Faxlok 发表于 2022-8-7 17:57
自己写解析规则?

那就真的造轮子了,loc大佬众多想请教大佬看看有没有更简单的方法,之前询问一个脚本大佬他是通过行数修改的,详细没问,可惜了

Backkom 发表于 2022-8-7 17:59
那就真的造轮子了,loc大佬众多想请教大佬看看有没有更简单的方法,之前询问一个脚本大佬他是通过行数修 …

https://github.com/odiszapc/nginx-java-parser

建议不要做解析规则 工作量太大了
数据库存再通过注释定位复写数据好一点 还有手动修改的余地

iiss 发表于 2022-8-7 18:06
https://github.com/odiszapc/nginx-java-parser

谢谢大佬,这个可能没有对使用include /home/vhost/*.conf; 这种引用其他配置文件支持,我这边运行直接报空指针错误。

  1. [code]                listen 80;
  2.                 listen [::]:80;

复制代码

[/code]
监听ipv4和ipv6这个也不支持,我使用里面的getvalues方法只输出了一个 [80]

hang6 发表于 2022-8-7 18:15
建议不要做解析规则 工作量太大了
数据库存再通过注释定位复写数据好一点 还有手动修改的余地 …

这个确实可以实现增删操作但是改的话还是要对相应的规则解析,然后替换,虽然简单了很多但是用户变多操作变多之后数据表上万我感觉很轻松,后续需要单独对数据库进行优化

而且如果不是location区块修改,是对 server修改的话我不知道设置放在底部

会不会生效,稍等我去测试,如果不生效的话实现起来就需要搭配sql语句来计算行数偏移,cpu应该很难顶

Backkom 发表于 2022-8-7 18:40
这个确实可以实现增删操作但是改的话还是要对相应的规则解析,然后替换,虽然简单了很多但是用户变多操作 …

你自己自己找找第三方的库,肯定有的,这种需求不是非常个性化,总有合适你的库。

实在没找到可以自己写个解析,当成个yml文件操作就好了