简单易懂 LNMP 架构详解适合入门级别可跟做

本文详细介绍了LNMP架构,即Linux、Nginx、MySQL和PHP的组合,特别适合入门级别的读者。文章首先解释了LNMP平台的组成和在单台服务器上的部署方式,强调了Nginx在处理静态请求的优势以及PHP使用fpm处理动态进程的重要性。
摘要由CSDN通过智能技术生成

一、LNMP架构解读

1.1 LNMP平台就是Linux、Nginx、MySQL、PHP的组合架构,需要Linux服务器、MySQL数据库、PHP解析环境

1.2 本案例在单台服务器上部署LNMP环境

1.3 案例架构图示

在这里插入图片描述在这里插入图片描述

nginx的特长是处理静态请求效率非常强,擅长处理静态资源

apache更适合做动态处理

LNMP中,动态进程交给php中的fpm去处理

所以php需要额外安装fpm

二、实验步骤及详解

####Nginx网站服务####
 1 Nginx服务基础
        在各种网站服务器软件中, 除了Apache HTTP Server 外, 还有一款轻量级的 HTTP
服务器软件——Nginx, 由俄罗斯的 lgor Sysoev 开发, 其稳定、高效的特性逐渐被越来越
多的用户认可。本章将讲解nginx服务的基本构建、访问控制方式、虚拟主机的搭建,还有应
用广泛的 LNMP 架构服务器的部署方式,并对PHP_FPM模块如何支持PHP语言进行讨论。
           Nginx (发音为[engine x])专为性能优化而开发,其最知名的优点是它的稳定性和低系
统资源消耗以及对 HTTP 并发连接的高处理能力 (单台物理服务器可支持30 000~ 50 000个并
发请求) 。正因为如此,大量提供社交网络、新闻资讯、电子商务及虚拟主机等服务的
                          企业纷纷选择Nginx来提供Web服务。
###试验环境: CentOS 7.6    Nginx 1.15###

1、编译安装Nginx 1.15 安装及运行控制
        ##试验环境: CentOS 7.6 Nginx 1.15 关闭防火墙、核心防护###
##1.1软件支持##
        Nginx的配置及运行需要pcre, zlib等软件包的支持,因此应预先安装这些软件的开发包
(devel) ,以便提供相应的库和头文件,确保 Nginx 的安装顺利完成

[root@localhost ~# yum -y install \
gcc \
gcc-c++ \
make \
pcre-devel \
expat-devel \
perl \
zlib-devel





##1.2创建运行用户、组##
     Nginx服务程序默认以nobody身份运行,建议为其创建专门的用户账号,以便更准确地控制
其访问权限,增加灵活性、降低安全风险。例如,创建一个名为nginx的用户,不建立宿主文件夹,
也禁止登录到Shell环境。

[root@localhost ~]# useradd -M -s /sbin/nologin nginx

##1.3编译安装Nginx##
         配置Nginx的编译选项时,将安装目录设为/usr/local/nginx,运行用户和组均设为nginx;
启用http_stub_status_module模块以支持状态统计,便于查看服务器的连接信息。
具体选项根据实际需要来定, 配置前可参考"./configure--help" 给出的说明.
上传nginx-1.15.9.tar.gz至/opt目录

[root@localhost ~]#cd /opt
[root@localhost opt]# tar xzvf nginx-1.15.9.tar.gz
[root@localhost opt]# cd nginx-1.15.9
[root@localhost nginx-1.15.9]#
./configure \
--prefix=/usr/local/nginx \
--user=nginx \
--group=nginx \
--with-http_stub_status_module

[root@localhost nginx-1.15.9]# make && make instal

##1.3路径优化##
为了使 Nginx 服务器的运行更加方便, 可以为主程序 nginx 创建链接文件, 以便管理员
直接执行 "nginx" 命令就可以调用Nginx的主程序

[root@localhost nginx-1.15.9]# ln -s /usr/local/nginx/sbin/nginx /usr/local/sbin/
[root@localhost nginx-1.15.9]# ls -l /usr/local/sbin/nginx
Irwxrwxrwx 1 root root 27 228 05:17 /usr/local/sbin/nginx -> 
/usr/local/nginx/sbin/nginx


2、 Nginx的运行控制
##2.1检查配置文件##
      与Apache 的主程序 httpd 类似,  Nginx 的主程序也提供了 "-t" 选项用来对配置文件进行
检查,以便找出不当或错误的配置。配置文件nginx.conf默认位于安装目录下的conf/子目录中。
若要检查位于其他位置的配置文件,可使用"-c"选项来指定路径。

[root@localhost nginx-1.15.9]# nginx-t
nginx: the configuration file /usr/local/nginx/conf/nginx.conf syntax is ok
nginx: configuration file /usr/local/nginx/conf/nginx.conf test is successful

##2.2启动、停止Nginx##
直接运行Nginx即可启动Nginx服务器,这种方式将使用默认的配置文件,若要改用
其他配置文件,需添加"-c配置文件路径"选项来指定路径。需要注意的是,若服务器中已装
有 httpd 等其他 Web 服务软件,应采取措施 (修改端口、停用或卸载) 避免冲突。


##############最小安装需要 yum -y install net-tools 
[root@localhost nginx-1.15.9]# nginx
[root@localhost nginx-1.15.9]# netstat -anpt | grep nginx
tcp       0        0.0.0.0.0:80            0.0.0.0:*                LISTEN             11191/nginx: master

最小安装需要   
通过检查Nginx程序的监听状态,或者在浏览器中访问此Web服务(默认页面将显示
"Welcom to nginx!" ) ,可以确认 Nginx 服务是否正常运行。

[root@localhost nginx-1.15.9]# yum -y install lynx
[root@localhost nginx-1.15.9]# lynx 127.0                                                                                     Welcome to nginx!
                              Welcome to nginx!
If you see this page, the nginx web server is successfully installed and working. 
Further
configuration is required.

For online documentation and support please refer to nginx.org.
Commercial support is available at nginx.com.

Thank you for using nginx.


          主程序Nginx支持标准的进程信号,通过kill或killall命令发送HUP信号表示重载配置,
QUIT信号表示退出进程, KILL信号表示杀死进程。例如,若使用killall 命令,重载配置、
停止服务的操作分别如下所示(通过"-s"选项指定信号种类)

[root@localhost ~]# yum -y install psmisc        ###最小没有killall令需要安装 
[root@localhost ~]# killall -s HUP nginx          ###选项-s HUP等同于-1   重新加载 
[root@localhost ~]# killall -s QUIT nginx          ###选项-s QUIT等同于-3  停止服务
[root@localhost ~]# netstat -anpt | grep nginx    ###过滤看下

当Nginx进程运行时,  PID 号默认存放在logs/目录下的nginx.pid文件中,因此若改用
kill 命令,也可以根据nginx.pid文件中的PID号来进行控制。

##2.3添加 Nginx系统服务##
为了使Nginx服务的启动、停止、重载等操作更加方便,可以编写基于CentOs 7.6的
Nginx服务控制文件使用systemctl工具来进行管理.CentOS7.6系统的管理习惯

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

###要刷配置参数#
[Unit]              
Description=nginx
After=network.target                  
[Service]                                          
Type=forking                               
PIDFile=/usr/local/nginx/logs/nginx.pid
ExecStart=/usr/local/nginx/sbin/nginx
ExecReload=/usr/bin/kill -s HUP $MAINPID
ExecStop=/usr/bin/kill -s QUIT $MAINPID
PrivateTmp=true
[Install]
WantedBy=multi-user.target

##配置参数解释##
[Unit]
Description=nginx                                    ###描述
After=network.target                              ####描述服务类别,网络服务模式
[Service]
Type=forking                                             ###后台运行形式
PIDFile=/usr/local/nginx/logs/nginx.pid              ###PID文件位置 ,记录进程号 
ExecStart=/usr/local/nginx/sbin/nginx                 ###启动服务脚本
ExecReload=/usr/bin/kill -s HUP $MAINPID        ###根据PID(nginx进程号)重载配置
ExecStop=/usr/bin/kill -s QUIT $MAINPID           ###根据PID(nginx进程号)终止进程
PrivateTmp=true
[Install]
WantedBy=multi-user.target

[root@localhost ~]# chmod 754 /lib/systemd/system/nginx.service
[root@localhost ~]# systemctl enable nginx.service
Created symlink from /etc/systemd/system/multi-user.target.wants/nginx.service 
to /usr/lib
  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值