LNMP作为中小型WEB应用构建方案得到了的很广泛的应用。LNMP顾名思义就是Linux+Nginx+MySQL+PHP,过去十年时间(Nginx09年发布第一个开发版),作为一种近乎经典的WEB服务构建方案,受到广大开发者的青睐。

LNMP脚本让本来复杂的环境构建任务变得轻松,运维人员只需下载脚本、执行、选择几个版本等配置,后面的编译配置都由脚本自动化完成。我引用了官方的几点说明如下:

无需一个一个的输入命令,无需值守,编译安装优化编译参数,提高性能,解决不必要的软件间依赖,特别针对配置自动优化。

支持自定义Nginx、PHP编译参数及网站和数据库目录、支持生成LetseEcrypt证书、LNMP模式支持多PHP版本、支持单独安装Nginx/MySQL/MariaDB/Pureftpd服务器,同时提供一些实用的辅助工具如:虚拟主机管理、FTP用户管理、Nginx、MySQL/MariaDB、PHP的升级、常用缓存组件Redis/Xcache等的安装、重置MySQL root密码、502自动重启、日志切割、SSH防护DenyHosts/Fail2Ban、备份等许多实用脚本。

最近项目中有这样一个需求,就是对几个接口有高并发访问可能,想以最小的成本解决这个问题。基于成本考虑采用负载均衡的方案被否决(主要是因为穷),那只能从软件层面来优化。首先想到了OpenResty,使用lua重写高并发接口。后来的实践证明这个方案比较靠谱,相比PHP+Nginx的方案,优化之后QPS有将近3倍能力的提高。
由于以前依赖LNMP脚本方式安装环境,如果抛弃这种方式完全从零开始后面的运维工作量会大大增加。初步想法还是使用lnmp安装基础环境,然后从OpenResty替换nginx。后来的实践证明还是挺方便的。下面是我整个操作流程记录:

  • 安装LNMP
wget http://soft.vpser.net/lnmp/lnmp1.6.tar.gz -cO lnmp1.6.tar.gz && tar zxf lnmp1.6.tar.gz && cd lnmp1.6 && ./install.sh lnmp

选择mysql版本,设置数据库root密码,选择php版本。

  • 安装openresty

OpenResty 版本自行决定

 wget https://openresty.org/download/openresty-1.15.8.1.tar.gz

tar -zxvf openresty-1.15.8.1.tar.gz
cd openresty-1.15.8.1/
./configure
make
make install
  • 替换掉lnmp中的nginx

替换内容

vim /etc/init.d/nginx
;NGINX_BIN='/usr/local/nginx/sbin/nginx'
NGINX_BIN='/usr/local/openresty/nginx/sbin/nginx'
;CONFIG='/usr/local/nginx/conf/nginx.conf'
CONFIG='/usr/local/openresty/nginx/conf/nginx.conf'
  • 修改/bin/lnmp里的,保证lnmp vhost可用
vim /bin/lnmp

替换内部的 /usr/local/nginx 为 /usr/local/openresty/nginx
  • 重启或重载openresty
/etc/init.d/nginx restart

上面的操作就是用openrety替换掉了原来的nginx,此方案的有点是原来的控制命令都可以用。当然我们也可以选择通过插件的方式来为ngxin增加lua解释功能。

Tags: opengresty, nginx, lua

Related Posts:
  • [尚无相关文章]

Leave a Comment