主要内容:
部署LNMP架构(linux、Nginx、MariaDB、PHP)、Nginx+FastCGI动静分离、Nginx地址重写
环境准备:还原配置文件
[root@proxy ~]# cd /usr/local/nginx/
[root@proxy nginx]# sbin/nginx
[root@proxy nginx]# cp conf/nginx.conf.default conf/nginx.conf
cp:是否覆盖"conf/nginx.conf"? y
[root@proxy nginx]# sbin/nginx -s reload
[root@proxy nginx]# sbin/nginx -V
configure arguments: --prefix=/usr/local/nginx --user=nginx --with-http_ssl_module
环境准备:如果Nginx异常,需要按照以下方式重新创建
[root@proxy nginx]# /usr/local/nginx/sbin/nginx -s stop
[root@proxy nginx]# cd ~/lnmp_soft/nginx-1.17.6/
[root@proxy nginx-1.17.6]# killall nginx
[root@proxy nginx-1.17.6]# rm -rf /usr/local/nginx/
[root@proxy nginx-1.17.6]# make install
[root@proxy nginx-1.17.6]# cd /usr/local/nginx/
[root@proxy nginx]# ls
conf html logs sbin
[root@proxy nginx]# sbin/nginx -V
configure arguments: --prefix=/usr/local/nginx --user=nginx --with-http_ssl_module
一、LNMP概述
前言:目前的网站一般都会有动态和静态数据,默认nginx 仅可以处理静态数据,用户访问任何数据都是直接返回对应的文件,如果访问的是一个脚本的话,就会导致直接返回一个脚本给用户,而用户没有脚本解释器,因此需要整合LNMP(Linux、Nginx、MySQL、PHP)实现动态网站效果。
LNMP 是一种常见的 Web 服务器架构,代表 Linux、Nginx、MySQL(或 MariaDB)和 PHP(或 Perl、Python)。这种架构广泛用于搭建高性能的动态网站和 Web 应用程序。
- L:Linux 基础操作系统(Ubuntu、CentOS、Debian)
- N:一般指Nginx Web服务器(实现HTTP 和反向代理)
- M:一般指MySQL或MariaDB数据库管理系统(用于存储和管理网站和应用的数据)
- P:用于 Web服务器端 开发脚本语言(PHP、Perl、Python)
LNMP 架构的优势:
- 高性能:Nginx 的高并发处理能力和低资源消耗,结合 PHP-FPM(FastCGI Process Manager)的高效处理,提供卓越的性能。
- 可扩展性:通过 Nginx 的反向代理和负载均衡功能,可以轻松扩展系统以处理更多请求。
- 安全性:Nginx 提供多种安全功能,如 SSL/TLS 支持、访问控制和限速,保护网站和应用免受攻击。
- 灵活性:支持多种编程语言和数据库系统,可以根据需求选择合适的组件。
总结:LNMP 架构通过结合 Linux 操作系统的稳定性、Nginx 的高性能、MySQL 的数据管理能力和 PHP 的动态内容生成,提供了一个强大且灵活的 Web 服务器解决方案。无论是小型网站还是大型应用,LNMP 都能满足高性能和可扩展性的需求。
安装思路:LNMP在CentOS系统中,源码安装Nginx,使用RPM包安装MariaDB、PHP、PHP-FPM软件。操作过程中需要安装的软件列表如下:
- ① nginx(WEB服务器)
- ② mariadb(数据库客户端软件)、mariadb-server(数据库服务器软件)、mariadb-devel(其他客户端软件的依赖包)
- ③ php(解释器)、php-fpm(进程管理器服务)、php-mysql(PHP的数据库扩展包)
Nginx+FastCGI实现动静分离,通过localhost{}判断用户访问的是静态还是动态数据
案例:构建LNMP平台
步骤1:LNMP各软件包和依赖包安装并启动服务
1)安装使用yum安装基础依赖包
[root@proxy ~]# yum -y install gcc make //安装编译工具
[root@proxy ~]# yum -y install pcre-devel //依赖包,使nginx支持正则
[root@proxy ~]# yum -y install openssl-devel //依赖包,支持基于ssl技术的网站
2)安装Nginx
[root@proxy lnmp_soft]# tar -xf nginx-1.17.6.tar.gz //释放nginx的源码包
[root@proxy lnmp_soft]# cd nginx-1.17.6/ //切换到源码包目录
[root@proxy nginx-1.17.6]# ./configure --prefix=/usr/local/nginx --user=nginx --with-http_ssl_module
[root@proxy nginx-1.17.6]# make //编译
[root@proxy nginx-1.17.6]# make install //安装
[root@proxy ~]# useradd -s /sbin/nologin nginx //添加Nginx用户
3)安装MariaDB
[root@proxy ~]# yum -y install mariadb-server //安装数据库服务端
[root@proxy ~]# yum -y install mariadb //安装数据库客户端
[root@proxy ~]# yum -y install mariadb-devel //安装数据库依赖包(支持lnmp)
4)安装PHP、安装PHP扩展
[root@proxy ~]# yum -y install php //安装PHP环境(相当于解释器)
[root@proxy ~]# yum -y install php-mysql //安装PHP与数据库关联的软件包
[root@proxy ~]# yum -y install php-fpm //安装可使Nginx具备动态网站解析能力的软件包
步骤2:启动Nginx、MySQL、PHP服务
1)启动Nginx服务
[root@proxy ~]# /usr/local/nginx/sbin/nginx
[root@proxy ~]# netstat -nuptl | grep :80
tcp 0 0 0.0.0.0:80 0.0.0.0:* LISTEN 7321/nginx: master
2)启动MySQL服务
[root@proxy ~]# systemctl start mariadb.service
[root@proxy ~]# netstat -nuptl | grep :3306 //mariadb端口号3306
tcp 0 0 0.0.0.0:3306 0.0.0.0:* LISTEN 7218/mysqld
[root@proxy ~]# systemctl status mariadb