gpt4 book ai didi

bash - 如何从 Nginx 运行 bash 脚本

转载 作者:行者123 更新时间:2023-12-04 01:32:02 25 4
gpt4 key购买 nike

1)我有静态站点和魔杖,可以从 bitbucket 设置“自动 pull ”。

2) 我有来自 bitbucket 的 webhook。

3)我有执行“git pull”的bash脚本

如何在 nginx 捕获请求时运行此脚本?

server {

listen 80;
server_name example.ru;

root /path/to/root;
index index.html;

access_log /path/to/logs/nginx-access.log;
error_log /path/to/logs/nginx-error.log;

location /autopull {
something to run autopull.sh;
}

location / {
auth_basic "Hello, login please";
auth_basic_user_file /path/to/htpasswd;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;

proxy_set_header Host $host;
}
}

我尝试了 lua_block 和 fastcgi 服务,但都失败了。
lua 不运行 os.execute("/path/to/script") 并且不写入日志。
fastcgi 更成功,但它没有权限,因为我的 www-data 用户在我的 bitbuchet 存储库中没有 ssh-key。

最佳答案

问题解决了。

我不想在另一个端口上使用任何脚本/进程,因为我有几个站点,每个站点都需要端口。

我的最终配置是:

server {

listen 80;
server_name example.ru;

root /path/to/project;
index index.html;

access_log /path/to/logs/nginx-access.log;
error_log /path/to/logs/nginx-error.log;

location /autopull {
content_by_lua_block {
io.popen("bash /path/to/autopull.sh")
}
}

location / {
auth_basic "Hello, login please";
auth_basic_user_file /path/to/htpasswd;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;

proxy_set_header Host $host;
}
}

问题在于 www-data 用户及其 repo 中的 ssh-kay 的许可。

关于bash - 如何从 Nginx 运行 bash 脚本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60757496/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com