php - Nginx - 如果 URL 有查询然后运行命令?

标签 php nginx varnish

我有一个大型电子商务项目,供应商使用 NGINX 和 Varnish 设置。 PHP 也位于 OB 缓存层内,并且也有一些内存缓存规则。

我有一个开发人员面临的问题,即新上传到文件需要重新启动服务器或运行 PHP 上的某些命令才能查看这些文件 - 即使我们的开发/部署到实时站点也是不可能的 - 有我们总是需要快速清除。

我想:

www.site.com/category/mens/?flush=1
www.site.com/pages/about/?flush=1

如果 flush 参数被触发,那么我想运行

php restart
varnish restart 
memcache restart 

我在想

location = / {
    if ( query[flush]==1 ) { // pseudo code as I don't know NGINX formatting

         #service php-fpm reload;
         #service varnish restart

    }
}

这有可能吗?如果是这样,执行此操作的 NGINX 规则是什么?我可以在我的 vhost 文件中执行这些 SSH 命令吗?不过,我知道 IfIsEvil 这不是我的问题。

最佳答案

location / {
  # ...
  if ($args ~ "flush=1") {
    # do something
  }
  # ...
}

至于执行shell命令可以试试lua-nginx-module .

content_by_lua 'os.execute("")';

关于php - Nginx - 如果 URL 有查询然后运行命令?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35150366/

相关文章:

nginx - 什么是 PHP-FPM 池,什么是 pm.max_children?

php - 传入生产服务器的 `/t.php` GET 请求是什么?

未处理ESI的 Varnish 包括

php - 如何在嵌套在不同文件夹和名称中的 Wordpress 子主题中加载 CSS 文件?

PHP/MySQL 使用 bootstrap 输出到表中 - 列困惑

ubuntu - 找到电视捕获 RTMP 延迟的瓶颈

php - Codeigniter : Varnish and Cookie/Session conflict

wordpress - 带有 wordpress 的 Varnish 破坏了 wordpress 可视化编辑器?

php - ajax请求中的laravel TokenMismatchException

php - Laravel 在不使用 foreach 循环的情况下发送单独的多封邮件