LNMP架构介绍与部署

一、LNMP架构介绍

 LNMP:Linux系统下Nginx+MySQL+PHP这种网站服务器架构。Nginx是一个高性能的HTTP和反向代理服务器,也是一个IMAP/POP3/SMTP代理服务器。Mysql是一个小型关系型数据库管理系统。PHP是一种在服务器端执行的嵌入HTML文档的脚本语言。

 原理:浏览器发送http request请求到服务器(Nginx),服务器响应并处理web请求,将一些静态资源(CSS,图片,视频等)保存服务器上,然后将php脚本通过接口传输协议(网关协议)PHP-FCGI(fast-cgi)传输给PHP-FPM(进程管理程序),PHP-FPM不做处理,然后PHP-FPM调用PHP解析器进程,PHP解析器解析php脚本信息。PHP解析器进程可以启动多个,进行并发执行。然后将解析后的脚本返回到PHP-FPM,PHP-FPM再通过fast-cgi的形式将脚本信息传送给Nginx.服务器再通过Http response的形式传送给浏览器。浏览器再进行解析与渲染然后进行呈现。

LNMP优点

 作为 Web 服务器:相比 Apache,Nginx 使用更少的资源,支持更多的并发连接,体现更高的效率。

 作为负载均衡服务器:Nginx 既可以在内部直接支持Rails和PHP,也可以支持作为 HTTP代理服务器对外进行服务。Nginx 用C编写,不论是系统资源开销还是CPU使用效率都比Perlbal要好的多。

 作为邮件代理服务器:Nginx同时也是一个非常优秀的邮件代理服务器(最早开发这个产品的目的之一也是作为邮件代理服务器),Last/fm 描述了成功并且美妙的使用经验。

 Nginx 安装非常的简单,配置文件非常简洁(还能够支持perl语法)。Nginx支持平滑加载新的配置,还能够在不间断服务的情况下进行软件版本的升级。

LNMP缺点

 php-fpm组件的负载能力有限,在访问量巨大的时候,php-fpm进程容易僵死,容易发生502 bad gateway错误,此时需要重启php-fpm模块。

二、LNMP架构部署 ###Nginx配置###

 检查环境

setenforce 0 关闭核心防护

nginx安装相关环境

 [root@localhost ~]# yum -y install pcre-devel zlib-devel gcc-c++ gcc

 解压并安装 Nginx

[root@localhost ~]# useradd -M -s /sbin/nologin nginx
[root@localhost opt]# tar xzvf nginx-1.12.2tar.gz
[root@localhost opt]# cd nginx-1.12.2/
[root@localhost nginx-1.12.2]#
./configure

 --prefix=http://www.likecs.com/usr/local/nginx 安装路径

 --user=nginx 指定运行的用户

 --group=nginx 指定运行的组

 --with-http_stub_status_module 启用状态统计

 [root@localhost nginx-1.12.2]#make &&make install

 

路径优化

 [root@localhost nginx-1.12.2]#ln -s /usr/local/nginx/sbin/nginx /usr/local/sbin/

 [root@localhost nginx-1.12.2]#ls -l /usr/local/sbin/nginx

 [root@localhost nginx-1.12.2]#nginx -t

 配置启动文件

 [root@localhost ~]# vim /lib/systemd/system/nginx.service

[Unit]
Description=nginx ####描述
After=network.target ####描述服务类别
[Service]
Type=forking ####后台运行形式
PIDFile=http://www.likecs.com/usr/local/nginx/logs/nginx.pid ####PID 文件位置
ExecStart=http://www.likecs.com/usr/local/nginx/sbin/nginx ####启动服务
ExecReload=http://www.likecs.com/usr/bin/kill -s HUP $MAINPID ####根据 PID 重载配置
ExecStop=http://www.likecs.com/usr/bin/kill -s QUIT $MAINPID ####根据 PID 终止进程
PrivateTmp=true
[Install]
WantedBy=multi-user.target

 [root@localhost system]# chmod 754 /lib/systemd/system/nginx.service

[root@localhost system]# systemctl enable nginx.service

 [root@localhost system]# systemctl start nginx.service

 [root@localhost system]# natstat -anpt | grep 80

      tcp 0 0 0.0.0.0:80 0.0.0.0:* LISTEN

 

使用 浏览器 输入IP 显示“Welcome to nginx!”页面,表明 Nginx 服务已经正常运行

 

###安装mysql###

[root@localhost~]#yum -y install \
gcc \
gcc-c++ \
make \
ncurses \ 字符集终端库
ncurses-devel \
bison \ 语法分析器
cmake

 

[root@localhost~]#useradd -s /sbin/nologin mysql
[root@localhost~]#cd /opt
[root@localhost opt]#tar xf mysql-boost-5.7.20.tar.gz
[root@localhost opt]#cd /opt/mysql-5.7.20/

 

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/wpgzzs.html