PHP Web端安全操作Nginx配置及热重启

前言

之前帮客户整了一套基于GeoIP2的自动化AB站(Nginx Geoip2 处理不同国家 (或城市) 的访问

),客户最近想通过管理端手动控制AB站切换

不建议使用system,exec等执行shell命令的函数需要复杂的提权操作

一般项目这些函数是被禁止

作为一名合格的Phper除非特殊情况,否则是严禁在项目中启用一些涉及到安全性的函数

方案思路Nginx vhost配置文件中include片段配置

后端切换AB站时,PHP逻辑中修改第一步中引入片段配置

Nginx Reload第一种方案:小型项目使用crontab定时执行nginx -s reload(搭配worker_shutdown_timeout使用)

第二种方案(推荐):修改后标记需要reload状态(File or DB or Cache),定时器通过python脚本查询是否需要reload去执行nginx -s reload

方案一

1.创建片段配置文件

创建独立片段Nginx配置文件,例如ar414.conf,然后在nginx vhost中include

ar414.confroot /www/wwwroot/ahost;

2.站点配置文件中include配置文件ar414.conf

site.confserver {

listen 80;

server_name 0.0.0.0;

index index.html;

include /www/wwwroot/abhost/ar414.conf;

}

3.后台逻辑中操作ar414.confif($data['site_set'] == AbHostSiteEnum::Ahost) {

//开启A站

$ahostPath = AbHostSiteEnum::AhostPath;

file_put_contents('./ar414.conf',"root {$ahostPath};");}else {

//开启B站

$bhostPath = AbHostSiteEnum::BhostPath;

file_put_contents('./ar414.conf',"root {$bhostPath};");}

4.Nginx全局配置中设置worker_shutdown_timeout30s内Nginx无法平滑退出,就强行关闭进程

nginx.conf...worker_shutdown_timeout 30;

5.定时执行Nginx热重启

crontab -e*/5 * * * * nginx -s reload

推荐教程:《PHP》

nginx php exec,PHP Web 端如何操作 Nginx 配置相关推荐

  1. H5分享页面(1)——web端二次分享配置内容

    在H5分享页面中,如果用户进行了二次分享,需要进行一些配置才能进行使用,如微信二次分享就必须调用微信的JS-SDK来完成.下面对分享配置代码进行了封装: 存放路径:public/resources/j ...

  2. 【Apache POI】Excel操作(三):Excel在浏览器端即Web端写入操作的实现

    卑鄙是卑鄙者的通行证,高尚是高尚者的墓志铭. 有目录,不迷路 前言 编码开始 依赖 实体类 控制层 运行 小提醒 前言 之前给大家介绍了Excel在本地导入的基本操作(本期博客需要有前两期博客的基础才 ...

  3. 基于nginx tomcat redis分布式web应用的session共享配置

    一.前言 nginx 作为目前最流行的开源反向代理HTTP Server,用于实现资源缓存.web server负载均衡等功能,由于其轻量级.高性能.高可靠等特点在互联网项目中有着非常普遍的应用,相关 ...

  4. 使用HslCommunication实现PLC数据的远程客户端监视,以及web端实时监视,远程操作设备示例...

    前言 本文主要是演示一个例子,服务器后台程序从PLC采集数据,并推送给在线客户端显示,以及推送给web端进行实时的显示,还支持远程操作,支持安卓端的同步监视和远程操作,关于HslCommunicati ...

  5. web端测试和移动端测试的对比

    做过的项目有不少涉及web端测试和移动端测试,简单的记录下他们之间的区别: 1.记录bug 在Web端可以通过系统自带的截图和QQ截图等方式来截取bug的图片,对于错误的地方可以用工具自带的标识来重点 ...

  6. web端测试和移动端测试的区别

    我们一起来总价一下web端测试和移动端测试的区别: 1.报bug 对于测试来说,比较重要的一个步骤就是报bug,在web端我们发现问题之后,可以利用系统自动工具或者其他截图工具直接截图,然后将错误的地 ...

  7. fiddler的web端抓包配置流程

    目录 ​ 1.fiddler的web端抓包的配置​ 最后会弹出两个弹框,点击"yes"和"是" ,需要重启后才能使用 2.打开fiddler自带的浏览器搜索内容 ...

  8. 【第0篇】从0-1自建个人博客系统【web端,admin管理端,express后端,Nginx部署】--vue3技术 reac+hook技术 umi4

    [第0篇]从0-1自建个人博客系统[web端,admin管理端,后端] 文章完整地址:http://huxunxun.top/lookArtical?artical_id=18 [序言] 我是一个微小 ...

  9. Axure通用web端元件库rplib文件格式+移动端app通用元件库rplib文件格式+电脑端动态可视化图表元件库+数据展示+操作反馈+通用模板+数据录入+列表页+表单页+详情页+通用版布局

    作品介绍:Axure通用web端元件库rplib文件格式+移动端app通用元件库rplib文件格式+电脑端动态可视化图表元件库+数据展示+操作反馈+通用模板+数据录入+列表页+表单页+详情页+通用版布 ...

最新文章

  1. nvGRAPH三角形计数和遍历示例
  2. NLP分词数据准备及模型训练实例
  3. 应用进退法确定一维搜索区间_NMR-如何确定官能团含量(MestReC)
  4. 2019.2.20异常
  5. Qt undefined reference to,Error 255,找不到库函数的解决办法
  6. 三分钟小课堂-----------------docker(三)增删改查命令
  7. Residual Attention Network--2017-【论文理解】
  8. wps加载失败模板文件损坏_Word中打不开提示模板损坏的解决方法
  9. 第86节:Java中的JQuery基础
  10. excel 第3讲:查找、替换与定位
  11. 面对面教你如何用Python提取快递信息
  12. python变异系数,Python Scipy stats.variation()用法及代码示例
  13. openstack(云主机热迁移)
  14. 【实战】(字节跳动、日本东京大学)学习使用白盒表示+GAN来创作卡通图片:Learning to Cartoonize Using White-Box Cartoon Representations
  15. Windows平台在线安装Qt 6.0.0图文教程
  16. Codeforces Round #717 Div.2
  17. R时间序列分析|SP500股指的ARIMA模型预测与残差ARCH效应分析
  18. n3160装微软服务器,英特尔赛扬N3160处理器性能跑分评测
  19. 使用HTML编写浣溪沙,《浣溪沙》版本+原文+拼音版+翻译+赏析+作者
  20. 4、IOC 之Bean的依赖关系

热门文章

  1. linux64bit安装mysql、jdk、nodejs、nginx笔记
  2. python获取他人的ip_Python获取指定网段正在使用的IP
  3. c语言abc变def,C语言的permutation求解
  4. ql的python学习之路-day9
  5. k8s+jenkins
  6. 值类型与引用类型数据运算
  7. 《分析服务从入门到精通读书笔记》第四章、创建父子维度(7)
  8. Google Protocol Buffers浅析(四)
  9. 关于 m_pszAppName
  10. 人脸识别最新进展——几篇相关论文总结