# 内存限制
maxmemory 128mb
# 客户端连接数限制
maxclients 5000
# 日志级别
loglevel warning
# 关闭AOF
# 全用来做缓存,没必要启用AOF
# 启用RDB就行了
appendonly no
# 内存策略
# volatile-lru: 尝试淘汰设置了过期时间的键中最近最少使用的(LRU)键。
# allkeys-lru: 淘汰所有键中最久未使用的键,而不论它们是否设置了过期时间。
# volatile-ttl: 尝试淘汰设置了过期时间且剩余生存时间(TTL)最短的键。
# 还有其他策略如volatile-random、allkeys-random等。
maxmemory-policy allkeys-lru
分类: 编程
-
在WordPress中使用Redis,对应的一些Redis配置
-
在WordPress中实施Cloudflare Turnstile
Cloudflare Turnstile 是一种现代的 CAPTCHA 替代方案,它不仅能够有效阻止机器人行为,还能提供更好的用户体验。
(更多…) -
WordPress中发送邮件相关的调整
通过SMTP服务器来发送邮件,同时将发送任务放入Action Scheduler队列。
(更多…) -
WordPress生成缩略图优化
WordPress默认情况下会给上传的每一张图片都生成几个不同大小的缩略图,一般情况下问题不大,但是如果存在短时间上传大量图片的场景,会导致服务器整体卡顿。
(更多…) -
创建strapi插件
需要开发一个插件来实现一些自定义功能,官方文档写的实在是难以理解了。
(更多…) -
使用SSH转发服务器端口到本地
注意远程地址、远程端口号、本地地址、本地端口号需要按照实际情况修改。
(更多…) -
为WordPress站点添加关键词和描述标签
关键词和描述标签作为SEO的基础配置,在wordpress中没有默认添加,这里记录一下在Wordpress中自动添加关键词和描述标签的方法。
(更多…) -
Go语言获取指定年份生肖
根据给定年份,返回生肖字符串,公元前使用负值即可。(比如2022年,调用使用GetShengXiao(2022),公元前21年,调用使用GetShengXiao(-21))。
(更多…) -
Electron中数据持久化的选择
Electron是一个基于Chromium的桌面应用程序框架,它可以让开发人员在不需要熟练掌握Web开发技术的情况下,快速地开发出高质量的桌面应用程序。在Electron中,开发人员可以使用各种各样的数据存储方式,包括文件系统、数据库等。其中,数据库是一种非常常见的数据存储方式,它可以方便地存储和管理各种数据,包括文本、图片、音频、视频等。
(更多…) -
Shell遍历文件夹下所有文件,并将文件内容写入一个文件中
软件著作权要求提供代码文档,这里提供使用Shell遍历文件夹下所有文件,并将文件内容写入一个文件中的方法。
(更多…) -
PostgreSQL常用SQL语句
PostgreSQL与MySQL语法有一些细微差异,记录一下PostgreSQL常用的SQL语句。
(更多…) -
MySQL8 GTID双主配置
记录一下MySQL8中配置GTID双主的方式。
(更多…) -
MySQL常用SQL语句
记录一些常用的MySQL语句,方便查找翻阅。
(更多…) -
使用微信小程序来实现扫码登录网站
微信小程序本身提供了openid等信息的无感知获取,基于此来实现微信扫码登录,主要包含以下几个步骤:
(更多…) -
Linux有线未托管问题
今天发现在用的一个Linux开发机一直不能自动连接有线网络,显示“有线未托管”,查找测试了很多文章的解决方案都无法使用,可能更新后有了一些变化或者各自情况不同,这里记录一下个人生效的处理方式。
sudo vim /etc/netplan/00-installer-config.yaml #文件中添加 renderer: NetworkManager sudo netplan generate sudo netplan apply sudo reboot
-
Linux服务器的安全相关配置
记录一下Linux服务器一般常用的安全相关配置,避免被简单的黑掉,更复杂的配置暂不考虑深入研究了。
1. 添加用户、用户组
# 添加用户组 groupadd users # 添加用户 useradd test # 将用户test添加到users组中 usermod -g users test
2. 启用密钥登陆
# 1. 开启密钥登陆配置 vim /etc/ssh/sshd_config # 将一下两个配置项打开 RSAAuthentication yes PubkeyAuthentication yes # 2. 配置密钥 # 生成密钥 ssh-keygen # 复制公钥,放进服务器/home/xxx/.ssh/authorized_keys文件中 vim /home/xxx/.ssh/authorized_keys # 3. 使用公钥测试连接 ssh test@1.1.1.1 # 4. 关闭密码登陆功能 vim /etc/ssh/sshd_config # 禁止使用密码登陆 PasswordAuthentication no # 禁止root账号登陆 PermitRootLogin no # 指定SSH协议版本 Protocol 2 # 最大尝试次数 MaxAuthTries 3 # 重启ssh服务 systemctl restart sshd # 5. 配置仅允许指定组使用su vi /etc/pam.d/su # 添加行 auth required pam_wheel.so group=xxx # 6. 启用防火墙 # Debian防火墙默认允许所有INPUT和OUTPUT, # 建议直接关闭所有流入,然后根据需要配置开放的端口,比如80,443,22等 # 除了80与443,建议其他程序都更换默认端口,每增加一个策略就会增加部分安全性 # !!!!禁止所有流量流入,注意放开SSH,否则就进不去了!!!! systemctl start nftables systemctl enable nftables
-
在WordPress中给没有封面图的文章增加默认缩略图
/** * 增加默认的文章特色图 */ add_filter( 'post_thumbnail_html', 'my_post_thumbnail_html' ); function my_post_thumbnail_html( $html ) { if ( empty( $html ) ) { $default_images = [ get_theme_root_uri() . '/twentytwentythree/assets/images/default-featured-image-1.jpg', get_theme_root_uri() . '/twentytwentythree/assets/images/default-featured-image-2.jpg', get_theme_root_uri() . '/twentytwentythree/assets/images/default-featured-image-3.jpg' ]; $index = mt_rand(0, count($default_images) - 1); $html = "<img src="{$default_images[$index]}"/>"; } return $html; }
-
Linux服务器Swap配置
简单记录Linux中Swap启用与关闭的配置方式。
(更多…) -
PHP内置服务器与Serverless
PHP从5.4版本开始就提供了一个内置的WEB服务器,可以通过一个简单的命令`php -S`启动一个WEB服务器,极大简化了开发环境的搭建。
到目前为止,官网文档对于内置服务器的使用依然建议用于开发环境,不建议用于生产环境,原因倒是很容易理解,主要有两个方面:
1. 支持的MIME类型很少,5.4版本放出时只支持.htm和.svg(从5.5版本完善了大部分常见的MIME类型支持)
2. 仅实现了基本功能,基本没有任何优化,是一个单线程进程(不过从7.4版本开始,内置服务器支持多进程的运行方式)
从传统开发角度看,这样性能和功能的服务器确实很难应用于生产环境,但是伴随着Serverless的发展,感觉内置服务器的限制突然不是那么重要了。
使用Serverless服务,不管是AWS Lambda,Google Function,还是国内阿里云的函数计算、腾讯云的云函数,我们关注的点不再聚焦于单机性能释放,而是变成了以下四个方面,我们要做的本质上变成了降低单请求的资源占用和执行时间:
1. 调用次数
2. CPU时间
3. 内存占用
4. 执行时间
5. 带宽
我们可以逐个对比以下,
1. 调用次数显然很难因为WEB服务器的变化有什么变化
2. CPU时间上,内置服务器作为一个单进程应用,同样的逻辑在函数计算这样的环境下,较少了Nginx与FPM交互的网络开销、Nginx的运行开销,理论上内置服务器应该表现更好
3. 内存占用方面,内置服务器不再需要运行Nginx,同样逻辑,应该也比传统部署方式占用更少一些
4. 执行时间,Nginx+FPM需要启动两个进程,需要两个进程间的通信,很难与直接启动PHP进程更快
5. 带宽基本不用对比,应该不会有什么变化,gzip完全可以在CDN层来实现
从Serverless的角度看,内置服务器并不算是一个很差的选择,对比传统的运行方式可能更加合适一些,就是不太清楚不建议生产环境使用是否有除性能外的其他原因,回头去翻一翻PHP的issue。
参考文章
1. PHP-Built-in web server(https://www.php.net/manual/en/features.commandline.webserver.php)