利用Git的WebHooks实现自动部署并解决NAT3网络内网穿透问题

需求在公司内网部署了一台测试服务器, 本地部署的GitLab速度太慢, 打算直接使用OSChina的Git托管服务(https://gitee.com) 问题公司宽带是NAT3网络, 无法获取外网IP, Git的WebHooks无法通知到内网服务器. 解决实现思路利用已有的外网服务器作为外网跳板, 内网服务器通过ssh隧道打通到外网服务器并监听7980端口 然后使用Nginx反向代理WebHooks的请求到7980端口隧道至内网Web服务上. 具体实现步骤前提说明假设:内网服务器IP为: 192.168.1.15 外网服务器IP为: 114.115.116.117 内网服务器准备配...

Nginx配置PHP文件/目录访问需要密码)来保护受限制的内容。

最近一个朋友跳槽到了新公司,公司要用DedeCMS建站。然而对这个比较熟的朋友应该知道,系统是够老牌。但系统的漏洞比功能还多,如何保证服务器安全不被挂马是个大问题。由于他们公司没有专业的技术,就找到我这来寻求帮助,本着助人为乐的想法,除了这样一个方案。由于DedeCMS系统是全站生成静态的,而漏洞必然是通过PHP执行的,所以,防护的切入点为禁止他人访问PHP文件。这样,全站由于是静态的,并不会有太大影响。思路如下,使用Nginx的Auth验证系统,对所有PHP的访问加上密码验证,不了解Auth验证的可以去了解一些,这里不多说。同时,为了防止黑客暴力破解密码,以及提高伪装性,加入了一个He...

PHP实现禁用或清理Cookies后Session依旧可以还原并可用。

按照正常的逻辑,在禁用浏览器的Cookies后,或者客户端清理Cookies后,我们服务端的Session使用是会受影响的。禁用Cookies时,Session也不可用,通过GET等方式提交SessionId时,也会受到标签页关闭影响而消失。清理Cookies后,我们就会丢失之前用户的Session信息。那么,禁用或清理Cookies后就真的没什么好办法么???其实是有的,我这里写了个简单的例子,证明禁用或清理Cookies后,重新访问页面依然可以恢复原有的Session Id。测试页面:TestDemo - Session Id在这个页面,你可以尝试禁用浏览器Cookies或者清理Co...

【正则表达式】解析命令行参数(附PHP例子)

不知道别人有没有这样的需求,今天下午需要做一个自己的命令系统。需要解析来自用户传递的命令行字符串。例如这样的命令行,把里面的命令和参数都提取出来。cmd -y 10 'test'考虑一般比较常见的兼容,正则表达式可以直接使用。// 带分组名 (?:(?<s>['"])?(?<v>.+?)?(?:(?<!\\)\k<s>)|(?<u>[^'"\s]+)) // 不带分组名 (?:(['"])?(.+?)?(?:(?<!\\)\1)|([^'"\s]+))一个自己写的比较极端的命令行解析情况c...

Shell脚本,自动备份网站和数据库

整理文件,把自己之前修改的自动备份网站的脚本发上来吧。自动获取所有数据库并备份。自动获取多个网站根目录下的所有网站并备份自动备份Nginx配置文件自动删除N天前的备份文件以上...#!/bin/bash # 备份网站和数据库 # 作者: ImDong <www@qs5.org> # 网站: http://www.qs5.org # 作者: 本修改版基于 LNMP.org 的 backup.sh 修改而成 # 功能说明: # 1.自动获取所有 Mysql 数据库自动备份 # 2.指定需要备份的网站根目录,自动备份下面所有的网站(分开) 而且支持多个根目录 # # 使用说...