中小型项目中nginx、php-fpm、php其中有哪些配置用的比较多且重要且需要关注???
回复内容:
去看了他们的各种配置,太多太多,以现在初级的运维水准不可能一一了解,所以打算问大家有哪些你们熟悉的特别需要了解知道的配置,怎么配置能更好的维护项目、提高性能。
好大的问题,说说我个人关注哪些点,欢迎其他伙伴一起补充完善肯定会漏
安全
nginx(user配置项)、php-fpm(user,group配置项)等服务以及网站目录的权限、用户和用户组这个真的很重要
php安全方面还要注意系统级别的函数如果没有项目需求全部禁用(disable_functions)
php不要打开错误打印,很容易暴露信息被攻击
display_startup_errors = Off ,display_errors = Off
性能
nginx进程数worker_processes、最大连接数worker_connections
php-fpm性能相关:pm.max_children、pm.start_servers、pm.min_spare_servers、pm.max_spare_servers、pm.max_requests
日志监控分析
nginx日志:access_log配合log_format
php记录日志:log_errors
php-fpm记录慢执行日志:slowlog配合request_slowlog_timeout
我还会关注下系统级别:iptables、/etc/sysctl.conf等等
建议
最好自己在写点脚本监控内存、流量、cpu、进程数、磁盘空间等等、也可以用监控产品、开源监控项目等等都可以,合理控制报警策略。
然后定期分析上面配置中所产出的日志文件,把一些响应慢的日志、错误的时间、执行慢的日志都排查一下理解一下,解决一些日常的运行中性能问题
php的配置中基本都是默认不需要改,主要的就是添加Xdebug时需要在php.ini中增加配置,如
[xdebug]
zend_extension="/Applications/MAMP/bin/php/php7.0.0/lib/php/extensions/no-debug-non-zts-20151012/xdebug.so"
xdebug.remote_enable = 1
xdebug.remote_connect_back = 1
xdebug.remote_port = 9000
xdebug.scream=0
xdebug.cli_color=1
xdebug.show_local_vars=1
Xdebug在Development环境是特别有用的,在Production环境时需要开启OPcache,那就需要打开php.ini中OPcache配置如:
[OPcache]
zend_extension="/Applications/MAMP/bin/php/php7.0.0/lib/php/extensions/no-debug-non-zts-20151012/opcache.so"
opcache.memory_consumption=128
opcache.interned_strings_buffer=8
opcache.max_accelerated_files=4000
opcache.revalidate_freq=60
opcache.fast_shutdown=1
opcache.enable_cli=1
关于PHP日志处理,建议使用monolog/monolog库来处理日志打印。
这里推荐一个异常处理工具Sentry,和日志处理工具Logentries。
php-fpm:
pm 系列配置