ngx_lua实现重启php

本文介绍了一种使用Lua脚本结合Nginx实现PHP-FPM进程热更新的方法。通过验证UID和MD5密钥确保请求的安全性,并记录日志文件。此外,还提供了一个Shell脚本来停止并重新启动PHP-FPM服务。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

nginx

         location /reload {
             default_type  text/html;
             content_by_lua_file reload_php.lua;
         }

lua

local args = ngx.req.get_query_args();
local uid = args["uid"]
local key = args["key"]
local uidmd5 = string.sub(ngx.md5(uid),0,12)

if key ~= uidmd5 then
     ngx.say("Hey man, you can't do this.")
     ngx.exit(200)
else
     local f = io.open("reload_access.log" , "a")
     time = os.date("%c",os.time())
     f:write(uid .. " " .. time)
     f:close()
     local command ="sh reload_php.sh"
     --local command ="/bin/kill -USR2 `cat /var/run/php-fpm.pid`"
     type = os.execute(command)
     if type == 0 then
          ngx.print("ok")
          ngx.exit(200)
     else
     ngx.print("error")
     f:write(" error")
     f:close()
     ngx.exit(200)
     end
end

shell

#!/bin/bash
#
#reload php-fpm
#
#kill -USR2 `cat /var/run/php-fpm.pid`
killall php-fpm
/php/sbin/php-fpm -c /etc/php.ini -y /php/etc/php-fpm.conf
echo " ok" >> /reload_access.log

写这玩的,大神请指正。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值