1

我有以下内容:

server {
            listen IP; 
            location /nginx-status {
            stub_status on;
            access_log   off;
            allow $IP;
            deny all;
        }

我的问题是,我需要将它专门插入到我的 nginx.conf 文件的 HTTP 块中。

这是 nginx 配置通常的样子:

http://wiki.nginx.org/FullExample

我不知道这是否可能。我猜如果我在 http 块之后插入会更容易?

理想情况下,我想在 BASH 中执行此操作,但我愿意接受其他选择。

4

1 回答 1

1

使用的一种方法。假设nginx.conf使用您在链接中提供的数据以及infile您要添加的内容:

vim -u NONE -N -c '
    set backup | 
    bn | 
    execute "normal ggyG" | 
    bn | 
    execute "normal! gg/^\\vhttp\>\<CR>f{%P" | 
    xa
' nginx.conf infile

它是如何工作的?

set backup创建nginx.conf附加的备份~。原件将被就地修改。

bn两个文件之间的变化。第一个execute命令复制文件的所有内容,infile第二个命令bn返回nginx文件。

第二个execute命令搜索以 开头的行,http在左大括号 ( f{)中设置光标,并在右大括号%中神奇地设置光标。然后P粘贴上一个execute命令中保存的内容。

xa保存修改后的文件并退出。

于 2013-07-25T19:32:06.510 回答