我希望每次我的nginx服务器收到任何HTTP请求时都运行一个shell脚本.有什么简单的方法吗?
Chi*_*g64 58
您可以通过Luanginx.conf文件中的代码执行shell脚本来实现此目的.你需要让HttpLuaModule能够做到这一点.
这是一个这样做的例子.
location /my-website {
content_by_lua_block {
os.execute("/bin/myShellScript.sh")
}
}
Run Code Online (Sandbox Code Playgroud)
Don*_*all 41
我在这里找到了以下信息:https://www.ruby-forum.com/topic/2960191
这确实期望您在机器上安装了fcgiwrap.它真的很简单:
sudo apt-get install fcgiwrap
Run Code Online (Sandbox Code Playgroud)
示例脚本(必须是可执行的)
#!/bin/sh
# -*- coding: utf-8 -*-
NAME=`"cpuinfo"`
echo "Content-type:text/html\r\n"
echo "<html><head>"
echo "<title>$NAME</title>"
echo '<meta name="description" content="'$NAME'">'
echo '<meta name="keywords" content="'$NAME'">'
echo '<meta http-equiv="Content-type"
content="text/html;charset=UTF-8">'
echo '<meta name="ROBOTS" content="noindex">'
echo "</head><body><pre>"
date
echo "\nuname -a"
uname -a
echo "\ncpuinfo"
cat /proc/cpuinfo
echo "</pre></body></html>"
Run Code Online (Sandbox Code Playgroud)
也使用它作为包含文件,不仅限于shell脚本.
location ~ (\.cgi|\.py|\.sh|\.pl|\.lua)$ {
gzip off;
root /var/www/$server_name;
autoindex on;
fastcgi_pass unix:/var/run/fcgiwrap.socket;
include /etc/nginx/fastcgi_params;
fastcgi_param DOCUMENT_ROOT /var/www/$server_name;
fastcgi_param SCRIPT_FILENAME /var/www/$server_name$fastcgi_script_name;
}
Run Code Online (Sandbox Code Playgroud)
我发现它对我正在进行的工作非常有帮助,我希望它可以帮助你完成RaspberryPI项目.
| 归档时间: |
|
| 查看次数: |
57912 次 |
| 最近记录: |