Nginx & PHP-fpm配置生成api

股市可以休息了,闲暇搞了个在线生成配置的小页面,没做前端ui,只是自己用着方便,谁有需要就直接用。

 

1,Nginx配置生成

地址: https://api.tingtao.org/cfg.php

接受的参数以及解释:

os  //操作系统,fb/deb9,必须
svrsoft  //软件,nginx/php,必须
svrpoint  //服务器角色,0为单机,1为前端,2为后端,必须
ssl  //是否启用ssl,1为启用
ssldirname  //证书的目录名
php  //php版本,0代表不用php,否则用7.0/7.3这样的,必须
webname  //站点名,建议同ftp目录名,不要用太奇葩的命名,必须
fastcgi  //是否启用fastcgi_cache缓存,1为启用
fastcgicachetime  //fastcgi缓存时间,1d、2h这样的
proxytime  //前端proxy缓存时间
staticfile  //在前端角色中是否本地直连静态文件,1为直连
domains  //域名,用英文逗号分隔,必须
logs  //是否启用web日志,1为启用

不同的配置,则各参数不一定是必须的,比如如果fastcgi=0,则fastcgicachetime就不用提交

 

os这个,目前只测试了debian 9+php7.3环境,FreeBSD没测试,不过配置文件本身区别不大,所以我估计没什么问题。接受的参数:fb为freebsd,deb9为debian 9

svrsoft,如果提交php则会生成php-fpm的配置,后面会详细说。这里必须提交nginx

svrpoint,此站点角色,0为标准的站点,1=proxy身份,2为1的后端站点,也就是1相当于cdn进行压力分担,2相当于源网站。为了方便,2监听801和4431,而1监听80和443,两者通过127.0.0.1进行通信,有必要的话可以对应更改。

ssl,提交1则接受https访问,其他值或者0则不监听。

ssldirname,比如证书位于/var/www/ca/12345/fullchain.pem,则此参数应该为12345,前后路径都是定死的,或者你自己再进行修改。

php,提交0或者版本号

webname,更像是给该站点起一个别名,用来在nginx和php之间协商用,不要用太诡异的命名,否则可能会有问题

fastcgi,是否开启fastcgi_cache这个模块,用来加速php处理,我认为这个只适合wp这样的虚拟静态站点使用,而且更新不频繁,否则就失去动态站点的意义了。

fastcgicachetime,缓存时间,更新不频繁的话4h,也就是4小时就不错,当然你设置为100天:100d也是可以的。

proxytime,前端缓存时间,只在svrpoint为1的时候有效。

staticfile,只有当前后端为同一个服务器的时候,可以用这个设置来让图片、js这些直接物理读取,可以提升性能。这个设置只在svrpoint为1的时候有意义。

domains,绑定的域名,也就是主机头,多个之间用英文逗号分割

logs,如果提交1则开启访问与错误日志,其他值或者不提交则不开启日志。

 

几个例子:

A,域名为soft.tingtao.org,纯静态站点:

wget -4 "https://api.tingtao.org/cfg.php?svrsoft=nginx&webname=soft.tingtao.org&php=0&svrpoint=0&ssl=1&logs=0&fastcgi=0&domains=soft.tingtao.org&ssldirname=tingtao.org&staticfile=0" -O /etc/nginx/sites-enabled/soft.tingtao.org.conf

B,域名为tingtao.org和www.tingtao.org,前后端模式,使用php7.3:

wget -4 "https://api.tingtao.org/cfg.php?svrsoft=nginx&webname=www.tingtao.org&php=7.3&svrpoint=1&ssl=1&logs=1&fastcgi=0&domains=tingtao.org,www.tingtao.org&ssldirname=tingtao.org&proxytime=1h&staticfile=1" -O /etc/nginx/sites-enabled/www.tingtao.org.conf
wget -4 "https://api.tingtao.org/cfg.php?svrsoft=nginx&webname=www.tingtao.org&php=7.3&svrpoint=2&ssl=1&logs=0&fastcgi=0&domains=tingtao.org,www.tingtao.org&ssldirname=tingtao.org" -O /etc/nginx/sites-enabled/www.tingtao.org_nocache.conf

C,域名为tingtao.org和www.tingtao.org,单机php站点:

wget -4 "https://api.tingtao.org/cfg.php?svrsoft=nginx&webname=www.tingtao.org&php=7.3&svrpoint=0&ssl=1&logs=1&fastcgi=0&domains=tingtao.org,www.tingtao.org&ssldirname=tingtao.org" -O /etc/nginx/sites-enabled/www.tingtao.org.conf

 

 

2,PHP-FPM配置生成

地址: https://api.tingtao.org/cfg.php

接受的参数以及解释:

os  //操作系统,fb/deb9,必须
svrsoft  //软件,nginx/php,必须
php  //php版本,用7.0/7.3这样的,必须
webname  //站点名,建议同ftp目录名,不要用太奇葩的命名,必须

参数的解释与nginx那部分相同,需要注意的是同一个站点参数应该与nginx部分保持一致,否则会有问题。

svrsoft 参数在这里必须提交php

 

 

例子:

生成前面例子中www.tingtao.org的php配置:

wget -4 "http://api.tingtao.org/cfg.php?svrsoft=php&os=deb9&webname=www.tingtao.org&php=7.3" -O /etc/php/7.3/fpm/pool.d/www.tingtao.org.conf 

 

 

3,MariaDB-Server配置生成

地址: https://api.tingtao.org/cfg.php

接受的参数以及解释:

os  //操作系统,fb/deb9,必须
svrsoft  //软件,mysql,必须

Debian 9的MariaDB-server配置:

https://api.tingtao.org/cfg.php?svrsoft=mysql&os=deb9

FreeBSD 12的:

https://api.tingtao.org/cfg.php?svrsoft=mysql&os=fb

 

 

4,ProFTPD的配置生成:

地址: https://api.tingtao.org/cfg.php

接受的参数以及解释:

os  //操作系统,fb/deb9,必须
svrsoft  //软件,proftpd,必须

Debian 9的ProFTPD配置:

https://api.tingtao.org/cfg.php?svrsoft=proftpd&os=deb9

FreeBSD 12的:

https://api.tingtao.org/cfg.php?svrsoft=proftpd&os=fb

 

 

可以直接打开这些提交的地址看看就明白怎么回事了,比如

http://api.tingtao.org/cfg.php?svrsoft=php&os=deb9&webname=www.tingtao.org&php=7.3

打开以后可能换行不正确显示,用“查看网页源代码”就好了。

 

 

最后要说明的是,proxy和fastcgi_cache这些需要在全局配置中加载对应的模块以及配置好存储区,之前文章有写,不再啰嗦。

 
#########################
更新:
2019.03.09   Freebsd已经测试过,运行正常。
2019.03.11   os参数说明有误,已修正
                     加入mysql和proftpd的配置生成
2019.03.22    MariaDB配置中取消了skip-innodb
                      proftpd的banner中取消了www.tingtao.org的标识

发表评论

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen: