Web服务器群集:部署LNMP平台

目录

一、理论

1.LNMP平台

2.Nginx服务基础

3.Nginx访问控制

4.Nginx虚拟主机

5.PHP

二、实验

1.LNMP架构+DISCUZ论坛应用

三、问题

1.没有规则可以创建“default”需要的目标“build”。

         2.nginx重启报错

3.yum安装提示报错

4.配置文件报错

5.PHP页面无法打开

四、总结


 

 

一、理论


1.LNMP平台


(1)概念

LNMP平台是高效稳定的Web应用平台,LNMP架构结合了Linux操作系统的稳定性、Nginx服务器的高性能、MySQL数据库的可靠性和PHP语言的灵活性,被广泛应用于Web开发和部署。

(2)原理图
Web服务器群集:部署LNMP平台_第1张图片

(3)LNMP各组件主要作用

表1 LNMP各组件作用

组件 功能 作用
Linux LNMP架构的基础平台 作为LNMP架构的基础,提供用于支撑Web站点的操作系统,能够与其他三个组件提供更好的稳定性,兼容性(AMP组件也支持Windows、UNIX等平台) 。
Nginx LNMP架构的前台 作为LNMP架构的前端,是一个高性能、轻量级的HTTP和反向代理web服务器  ,稳定性高并且系统资源消耗低,对HTTP并发连接的处理能力高,单台物理服务器可支持30000-50000华人并发请求,同时也提供了IMAP/POP3/SMTP服务。
MySQL LNMP架构的后台 作为LNMP架构N的后端,是一款流行的开源关系数据库系统。在企业网站、业务系统等应用中,各种账户信息、产品信息,客户资料、业务数据等都可以存储到MySQL数据库,其他程序可以通过SQL语句来查询,更改这些信息。
PHP/Perl/Python LNMP架构的中间连接 作为三种开发动态网页的编程语言,负责解释动态网页文件,负责沟通Web服务器和数据库系统以协同工作,并提供Web应用程序的开发和运行环境。其中PHP是一种被广泛应用的开放源代码的多用途脚本语言,它可以嵌入到HTML中,尤其适合于Web应用开发。

(4)LNMP和LAMP的区别

表2 LNMP和LAMP的区别

功能 LNMP LAMP
使用的网站服务不同 Nginx Apache
PHP作用不同 在LAMP中PHP是当作Apache的一个模块来使用 LNMP中PHP是当作一个独立进程来使用的(即PHP_FPM)

Web服务器群集:部署LNMP平台_第2张图片

 

(5)单服务器中Nginx与PHP的工作原理

      ① FastCGI将Http Server和动态脚本语言分离开来

      ② Ngnix专门处理静态请求,转发动态请求

      ③ PHP/PHP_FPM专门解析Nginx转发过来的动态请求

(6)Nginx特点

表3 Nginx特点

序号 特点
1 高扩展性
2 高可靠性
3 低内存消耗
4 高并发
5 热部署
6 开源协议
7 异步架构的web服务器,也可以用作反向代理、负载均衡器和HTTP缓存。

(7)构建LNMP平台顺序

在构建LNMP平台时,各组件的安装顺序依次为:

表4 LNMP组件安装顺序

安装顺序 安装内容 组件环境
1 Linux系统  
2 Nginx服务器 专门处理静态请求,转发动态请求给php-fpm处理
3 MySQL数据库  
4 PHP环境 专门解析Nginx转发过来的动态请求

(7)FPM

FPM(Fast Process Manager,FastCGI 进程管理器),用于替换 PHP FastCGI 的大部分附加功能,对于高负载网站是非常有用的。它的功能包括:

表5 FPM功能

序号 功能
1 支持平滑停止/启动的高级进程管理功能
2 可以工作于不同的 uid/gid/chroot 环境下,并监听不同的端口和使用不同的 php.ini 配置文件(可取代 safe_mode 的设置)
3 stdout 和 stderr 日志记录
4 在发生意外情况的时候能够重新启动并缓存被破坏的 opcode
5 文件上传优化支持
6

"慢日志" - 记录脚本(不仅记录文件名,还记录 PHP backtrace 信息,可以使用 ptrace或者类似工具读取和分析远程进程的运行数据)运行所导致的异常缓慢

7 fastcgi_finish_request() - 特殊功能:用于在请求完成和刷新数据后,继续在后台执行耗时的工作(录入视频转换、统计处理等)
8 动态/静态子进程产生
9 基本 SAPI 运行状态信息(类似Apache的 mod_status)
10 基于 php.ini 的配置文件

 

2.Nginx服务基础

(1)Nginx概念

 Nginx(engine x) 是一个高性能的HTTP和反向代理web服务器  ,同时也提供了IMAP/POP3/SMTP服务。其特点是占有内存少,并发能力强,事实上nginx的并发能力在同类型的网页服务器中表现较好。

(2)Nginx下载

官网地址:

nginx news

(3)Nginx工作模式

Nginx有两种工作模式:master-worker模式和单进程模式。在master-worker模式下,有一个master进程和至少一个的worker进程,单进程模式顾名思义只有一个进程。这两种模式有各自的特点和适用场景。

master-worker模式:

Web服务器群集:部署LNMP平台_第3张图片

 Web服务器群集:部署LNMP平台_第4张图片

单进程模式:

Web服务器群集:部署LNMP平台_第5张图片

 

 2种模式对比:

表6 Nginx工作模式

工作模式 功能 特点
master-worker模式 master-worker模式下nginx启动成功后,会有一个master进程和至少一个的worker进程,worker进程数量建议等于cpu总核心数。master进程负责处理系统信号,加载配置,管理worker进程(启动,杀死,监控,发送消息/信号等)。worker进程负责处理具体的业务逻辑,也就是说,对外部来说,真正提供服务的是worker进程。生产环境下一般使用这种模式。
 

优点:

稳定性高,只要还有worker进程存活,就能够提供服务,并且一个worker进程挂掉master进程会立即启动一个新的worker进程,保证worker进程数量不变,降低服务中断的概率;

 

配合linux的cpu亲和性配置,可以充分利用多核cpu的优势,提升性能;

 

处理信号/配置重新加载/升级时可以做到尽可能少或者不中断服务。
 

单进程模式 单进程模式下,nginx启动后只有一个进程,nginx的所有工作都由这个进程负责。因此,该模式一般只在开发阶段和调试时使用,生产环境下不会使用。

优点:

单进程模式由于只有一个进程,因此可以很方便地利用gdb等工具进行调试。

 

缺点:

单进程模式不支持nginx的平滑升级功能,任何的信号处理都可能造成服务中断,并且由于是单进程,进程挂掉后,在没有外部监控的情况下,无法重启服务。

(4)Nginx配置文件

表7 Nginx配置文件

文件/目录 功能
/usr/local/nginx/conf/nginx.conf 主配置文件
/usr/local/nginx/sbin/nginx 命令文件

(5)Nginx主配置文件

①查看配置文件

[root@localhost /]# find  /  -name nginx.conf  -type f
/etc/nginx/nginx.conf
/usr/local/nginx/conf/nginx.conf
/opt/nginx-1.12.2/conf/nginx.conf
/opt/nginx-1.22.0/conf/nginx.conf

②文件结构

nginx.conf一共由3部分组成:全局块、events块、http块。

Web服务器群集:部署LNMP平台_第6张图片

全局块:

全局块是默认配置文件从开始到events块之间的内容。

主要设置nginx整体运行的配置指令,这些指令的作用域是全局。

Web服务器群集:部署LNMP平台_第7张图片

 

全局块的常见配置指令:

$ vim  nginx.conf
user nginx nginx ;     # Nginx用户及组:用户 组
worker_processes 8;    # 工作进程数量(根据硬件调整,通常等于CPU数量或者2倍于CPU)
error_log  logs/error.log;       # 错误日志存放位置
error_log  logs/error.log  notice;
error_log  logs/error.log  info;
pid        logs/nginx.pid;     # nginx进程PID文件存放路径;
###全局块结束

ewents块:

ewents块的指令主要影响nginx服务器和用户的网络连接,对性能影响较大。

表8 ewents块配置

序号 配置项
1 是否开启对多worker process(工作进程)下的网络连接进行序列化;
2 是否允许同时接收多个网络连接;
3 选取哪种事件驱动模型处理连接请求;
4 每个work process可以同时支持的最大连接数等;
events {            # events块开始
    worker_connections  1024;  #每个工作进程的最大连接数量(根据硬件调整,和前面工作进程配合起来用,尽量大,但是别把cpu跑到100%就行。)
    use epoll;    # 使用epoll的I/O 模型。linux建议epoll,FreeBSD建议采用kqueue,window下不指定。
    accept_mutex on;   #开启网络连接的序列化(防止多个进程对连接的争抢)
    multi_accept  on;  #允许同时接收多个网络连接(默认关闭),工作进程都有能力同时接收多个新到达的网络连接
}  # events块结束

http块:

http块是nginx服务配置中的重要部分,代理、缓存、日志定义等很多的功能指令都可以放在http块中。

表9 http块配置

序号 配置项
1 文件引入;
2 MiME-Type定义;
3 自定义日志;
4 是否使用sendfile传输文件;
5 连接超时时间;
6 单请求上限等;
http {     # http块开始
    include       mime.types;   #定义MIME-Type(网络资源的媒体类型),nginx作为web服务器必须能够识别前端请求的资源类型。引用外部文件mime.types。
    default_type  application/octet-stream;  #配置用于处理前端请求的MIME类型(默认为text/plain)
    access_log  logs/access.log  main;  #配置服务日志的存放路径、日志格式、临时存放日志的内存缓存区大小;
    log_format  main  xxx;  #专门定义服务日志的格式;
    sendfile        on;  #允许sendfile方式传输文件,
    sendfile_max_chunk  xxx;   #每个工作进程调用sendfile()传输的数据量最大值(0为不限制)
    keepalive_timeout  65;  # 连接超时时间,与用户建立连接会话后nginx服务器保持会话的时间;
    gzip  on;   # 开启Gzip功能,对响应数据进行在线实时压缩;
    ...
}   # http块结束

server块:

http块可以有多个server块,每个server块都相当于一台虚拟主机,server块下又分为server全局块和location块。

server全局块:常见的配置指令是本虚拟主机的监听配置和本虚拟主机的名称或者IP配置。

location块:

表10 location块配置

序号 配置项
1 每个server块可以包含多个location块。
2 location块的主要作用是基于nginx服务器收到的请求字符串(如server_name/uri-string),对除虚拟主机名称外的字符串进行匹配,对特定的请求进行处理。
3 location块提供的功能包含地址定向、数据缓存、应答控制、第三方模块等。
server {    # server块开始
        keepalive_requests 100;   # 单连接请求上限,限制用户通过某一连接想服务端发送请求的次数
        listen       80;    # 设置网络监听(分3种监听方式:IP地址、端口、Socket)
        server_name  localhost;  #虚拟主机配置(基于主机名、基于IP、基于域名)
        location / {
            root   html;   #配置请求的根目录
            index  index.html index.htm;   #设置网站的默认首页
        }
        error_page   500 502 503 504  /50x.html;    # 设置网站的错误页面
        location = /50x.html {
            root   html;   
   }   # server块结束

 

(6)Nginx与Apache的区别

表11 Nginx与Apache区别

服务 Nginx Apache
对比 甚于事件的Web服务器 基于流程的服务器
避免子进程 基于子进程
在内存消耗和连接方面更好 在内存消耗和连接方面一般
性能和可伸缩性不依赖于硬件 依赖于CPU和内存等硬件
支持热部署 不支持热部署
对于静态文件处理具有更高效率 相对一般
在反向代理场景具有明显优势 相对一般
优点

轻量级,同样是 web 服务,比 Apache 占用更少的内存及资源 ;

高并发,Nginx 处理请求是异步非塞的,而 Apache 则是阻塞型的,在高并发下 Nginx 能保持低资源低消耗高性能;

高度模块化的设计,编写模块相对简单;

社区活跃,各种高性能模块出品迅速。

rewrite,比 Nginx 的 rewrite 强大;

模块超多,基本想到的都可以找到;

少 bug ,Nginx 的 bug相对较多;

超稳定

总结

要性能的 web 服务,用 Nginx ;

Nginx 处理动态请求是弱项;

Nginx 只适合静态和反向。

如果不需要性能只求稳定,那就Apache;

一般动态请求Apache 去做。

(6)Nginx应用场景

表12 Nginx应用场景

序号 场景
1 静态服务器 (图片、视频服务、文本)
2 动态服务
3 反向代理, 负载均衡
4 缓存服务

(7)同步与异步

同步指的是在发出一个功能调用时,在没有得到结果之前,该调用就不返回。也就是必须一件一件事做,等前一件做完了才能做下一件事。异步的概念和同步相对,当一个异步过程调用发出后,调用者不能立刻得到结果。实际处理这个调用的部件在完成后,通过状态、通知和回调来通知调用者。

Web服务器群集:部署LNMP平台_第8张图片

(8)阻塞与非阻塞

阻塞和非阻塞是进程在访问数据的时候,数据是否准备就绪的一种处理方式。当数据没有准备的时候,阻塞需要等待调用结果返回之前,进程会被挂起,函数只有在得到结果之后才会返回。非阻塞和阻塞的概念相对,指在不能立刻得到结果之前,该函数不会阻塞当前线程,而会立刻返回。

Web服务器群集:部署LNMP平台_第9张图片

(9)通信机制与调用状态

表13 通信机制与调用状态

对比 通信机制
同步 异步
调用状态 阻塞 同步阻塞 异步阻塞
非阻塞 同步非阻塞 异步阻塞

(10)kill命令信号

表14 信号编号

信号编号 信号名 含义
0 EXIT 程序退出时收到该信息。
1 HUP 挂掉电话线或终端连接的挂起信号,这个信号也会造成某些进程在没有终止的情况下重新初始化
2 INT 表示结束进程,但并不是强制性的,常用的 "Ctrl+C" 组合键发出就是一个 kill -2 的信号
3 QUIT 退出
9 KILL 杀死进程,即强制结束进程
11 SEGV 段错误
15 TERM 正常结束进程,是 kill 命令的默认信号

 

3.Nginx访问控制

(1)访问状态统计配置

流程:

表15 Nginx访问状态统计

序号

操作 关键命令 文件
1 查看已安装的 Nginx 是否包含 HTTP_STUB_STATUS 模块 /usr/local/nginx/sbin/nginx -V   
2 修改 nginx.conf 配置文件,指定访问位置并添加 stub_status 配置 cd /usr/local/nginx/conf
cp nginx.conf nginx.conf.bak
vim /usr/local/nginx/conf/nginx.conf
......
http {
......
    server {
        listen 80;
        server_name www.kgc.com;
        charset utf-8;
        location / {
            root html;
            index index.html index.php;
        }
        ##添加 stub_status 配置##
        location /status {                     #访问位置为/status
            stub_status on;                 #打开状态统计功能
            access_log off;                 #关闭此位置的日志记录
        }
    }
}
 
 
3 重启服务 systemctl restart nginx  
4 访问测试 http://192.168.204.200/status  

①先使用命令/usr/local/nginx/sbin/nginx -V 查看已安装的 Nginx 是否包含 HTTP_STUB_STATUS 模块:

Web服务器群集:部署LNMP平台_第10张图片

 ②修改 nginx.conf 配置文件,指定访问位置并添加 stub_status 配置:

Web服务器群集:部署LNMP平台_第11张图片

编辑文件:

16452b849c424a45af539b560ea06607.png

修改配置

Web服务器群集:部署LNMP平台_第12张图片

 ③ 浏览器访问 http://192.168.204.200/status Active connections :表示当前的活动连接数; server accepts handled requests :表示已经处理的连接信息,三个数字依次表示已处理的连接数、成功的TCP握手次数、 已处理的请求数。

 

Web服务器群集:部署LNMP平台_第13张图片

刷新页面观察变化

Web服务器群集:部署LNMP平台_第14张图片

(2)基于授权的访问控制

流程:

表16 Nginx基于授权的访问控制

序号

操作 关键命令 文件
1 生成用户密码认证文件 yum install -y httpd-tools
htpasswd -c /usr/local/nginx/passwd.db zhangsan
chown nginx /usr/local/nginx/passwd.db
chmod 400 /usr/local/nginx/passwd.db
 
 
2 修改主配置文件相对应目录,添加认证配置项 vim /usr/local/nginx/conf/nginx.conf
......
    server {
        location / {
            ......
            ##添加认证配置##
            auth_basic "secret";
            auth_basic_user_file /usr/local/nginx/passwd.db;
        }
    }
 
 
3 语法验证 nginx -t  
4 重启服务 systemctl restart nginx  
5 浏览器访问  http://192.168.204.200  

生成用户密码认证文件

yum install -y httpd-tools
htpasswd -c /usr/local/nginx/passwd.db 用户
chown nginx /usr/local/nginx/passwd.db
chmod 400 /usr/local/nginx/passwd.db

修改主配置文件相对应目录,添加认证配置项

vim /usr/local/nginx/conf/nginx.conf

① 安装软件

2dd0db29cac848498fdbd73550bbe730.png

② 生成用户密码认证文件

Web服务器群集:部署LNMP平台_第15张图片

③  修改主配置文件相对应目录,添加认证配置项

Web服务器群集:部署LNMP平台_第16张图片

④验证

2377d519dbd848809c83b4b1b7145a49.png

⑤ 重启服务

54c53788ecf24e42af40eb9fe291c84f.png

⑥ 访问测试

Web服务器群集:部署LNMP平台_第17张图片

登录

Web服务器群集:部署LNMP平台_第18张图片

 

(3)基于客户端的访问控制

流程:

表17 Nginx基于客户端的访问控制

序号

操作 关键命令 文件
1 修改主配置文件相对应目录,添加访问控制规则

vim /usr/local/nginx/conf/nginx.conf
......
    server {
        location / {
            ......
            ##添加控制规则##
            deny 192.168.204.200;                     #拒绝访问的客户端 IP
            allow all;                                #允许其它IP客户端访问
        }
    }

systemctl restart nginx

访问控制规则如下:

deny IP/IP 段:拒绝某个 IP 或 IP 段的客户端访问。
allow IP/IP 段:允许某个 IP 或 IP 段的客户端访问。
规则从上往下执行,如匹配则停止,不再往下匹配。

 

修改Nginx的配置文件

vim /usr/local/nginx/conf/nginx.conf

Web服务器群集:部署LNMP平台_第19张图片

主机192.168.204.150访问192.168.204.200

 Web服务器群集:部署LNMP平台_第20张图片

 

4.Nginx虚拟主机

(1)基于域名的虚拟主机

流程: 

表18 Nginx基于域名的虚拟主机

序号

操作 关键命令 文件
1 为虚拟主机提供域名解析 echo "192.168.204.200 www.david.com www.jjw.com" >> /etc/hosts
 
 
2 为虚拟主机准备网页文档 mkdir -p /var/www/html/david
mkdir -p /var/www/html/jjw
echo "

www.david.com

" > /var/www/html/david/index.html
echo "

www.jjw.com

" > /var/www/html/jjw/index.html
 
3 修改Nginx的配置文件

vim /usr/local/nginx/conf/nginx.conf
......
http {
......
    server {
        listen 80;
        server_name www.david.com;                    #设置域名www.david.com
        charset utf-8;
        access_log logs/www.david.access.log; 
        location / {
            root /var/www/html/david;                    #设置www.david.com 的工作目录
            index index.html index.php;
        }
        error_page 500 502 503 504 /50x.html;
        location = 50x.html{
            root html;
        }
    }
    
    server {
        listen 80;
        server_name www.jjw.com;                    #设置域名www.jjw.com
        charset utf-8;
        access_log logs/www.jjw.access.log; 
        location / {
            root /var/www/html/jjw;
            index index.html index.php;
        }
        error_page 500 502 503 504 /50x.html;
        location = 50x.html{
            root html;
        }
    }    
}

 
4 重启服务 systemctl restart nginx  
5 浏览器访问 http://www.david.com
http://www.jjw.com
 

为虚拟主机提供域名解析c19cc0e6fa6a4e149430af9d03fa3d36.png

为虚拟主机准备网页文档

Web服务器群集:部署LNMP平台_第21张图片

修改Nginx的配置文件

vim /usr/local/nginx/conf/nginx.conf

设置域名www.david.com

Web服务器群集:部署LNMP平台_第22张图片

 设置域名www.jjw.comWeb服务器群集:部署LNMP平台_第23张图片

 

重启服务

b7bf87c088da4e8c89e8b1a70711a566.png

测试

Web服务器群集:部署LNMP平台_第24张图片

Web服务器群集:部署LNMP平台_第25张图片

(2)基于IP的虚拟主机(不同IP相同端口)

流程:

表19 Nginx基于IP的虚拟主机

序号

操作 关键命令 文件
1 添加虚拟网卡 ifconfig ens33:0 192.168.204.200 netmask 255.255.255.0   
2 修改Nginx的配置文件

vim /usr/local/nginx/conf/nginx.conf
......
http {
......
    server {
        listen 192.168.204.200:80;                    #设置监听地址192.204.200.10
        server_name www.david.com;
        charset utf-8;
        access_log logs/www.david.access.log; 
        location / {
            root /var/www/html/david;
            index index.html index.php;
        }
        error_page 500 502 503 504 /50x.html;
        location = 50x.html{
            root html;
        }
    }
    
    server {
        listen 192.168.204.12:80;                    #设置监听地址192.168.204.12
        server_name www.jjw.com;
        charset utf-8;
        access_log logs/www.jjw.access.log; 
        location / {
            root /var/www/html/jjw;
            index index.html index.php;
        }
        error_page 500 502 503 504 /50x.html;
        location = 50x.html{
            root html;
        }
    }    
}

 
3 重启服务
systemctl restart nginx
 
4 浏览器访问 http://192.168.204.200
http://192.168.204.12
 

添加虚拟网卡

ifconfig ens33:0 192.168.204.200 netmask 255.255.255.0 
vim /usr/local/nginx/conf/nginx.conf

设置域名www.david.comWeb服务器群集:部署LNMP平台_第26张图片

设置域名www.jjw.com

Web服务器群集:部署LNMP平台_第27张图片

 重启服务

b7bf87c088da4e8c89e8b1a70711a566.png

浏览器访问

Web服务器群集:部署LNMP平台_第28张图片

 

Web服务器群集:部署LNMP平台_第29张图片

 

(3)基于端口的虚拟主机(相同IP不同端口)

流程:

表20 Nginx基于端口的虚拟主机

序号

操作 关键命令 文件
1 修改Nginx的配置文件

vim /usr/local/nginx/conf/nginx.conf
......
http {
......
    server {
        listen 192.168.204.200:8080;                    #设置监听 8080 端口
        server_name www.david.com;
        charset utf-8;
        access_log logs/www.davd.access.log; 
        location / {
            root /var/www/html/david;
            index index.html index.php;
        }
        error_page 500 502 503 504 /50x.html;
        location = 50x.html{
            root html;
        }
    }
    
    server {
        listen 192.168.204.200:8888;                    #设置监听 8888 端口
        server_name www.jjw.com;
        charset utf-8;
        access_log logs/www.jjw.access.log; 
        location / {
            root /var/www/html/jjw;
            index index.html index.php;
        }
        error_page 500 502 503 504 /50x.html;
        location = 50x.html{
            root html;
        }
    }    
}

 
2 重启服务 systemctl restart nginx  
3 浏览器访问 http://192.168.204.200:8080
http://192.168.204.200:8888
 
 

修改Nginx的配置文件

vim /usr/local/nginx/conf/nginx.conf

设置域名www.david.com

Web服务器群集:部署LNMP平台_第30张图片

 设置域名www.jjw.com

Web服务器群集:部署LNMP平台_第31张图片

 重启服务

b7bf87c088da4e8c89e8b1a70711a566.png

浏览器访问

Web服务器群集:部署LNMP平台_第32张图片

Web服务器群集:部署LNMP平台_第33张图片

5.PHP

(1)PHP配置文件

表21 PHP配置文件

文件/目录 功能
php 主配置文件
php.ini 进程服务配置文件
www.conf

扩展配置文件

 

 

二、实验

1.LNMP架构+DISCUZ论坛应用

(1)Nginx安装

①流程

表22 Nginx安装流程

序号

操作 关键命令 文件
1 下载Nginx相关安装包➝ 服务器 rz -E

nginx-1.12.2.tar

2 登录到服务器安装Nginx相关依赖包和函数库

yum -y install pcre-devel \

zlib-devel \

openssl \

openssl-devel \

gcc \

gcc-c++ \

make

gcc功能:预处理、编译、连接、汇编
openssl功能:用于网站加密通讯。
pcre功能:用于支持解析正则表达式。
zlib功能:用于对数据进行解压缩。网站之间通信时,数据先压缩再传输,通过消耗CPU的方式来节省网络带宽
3

创建程序用户管理➝

解压NginxL安装进行安装

useradd -M -s /sbin/nologin nginx

 

cd /opt
tar -zxvf nginx-1.12.2.tar.gz -C /opt/

 
4

编译安装➝切换到Nginx解包路径下➝

安装路径以及模块

cd nginx-1.12.0/
./configure \
--prefix=/usr/local/nginx \
--user=nginx \
--group=nginx \
--with-http_stub_status_module    
 
5 编译安装 make -j 16 && make install  
6 Nginx服务 可执行程序文件存入路径环境变量的目录中便于系统识别软链接 ln -s /usr/local/nginx/sbin/nginx /usr/local/sbin/      
7 检查语法 nginx -t  
8 启动服务 nginx  
9 查看版本 nginx -V  
10 检查Nginx监听端口 netstat -antp | grep nginx
lsof -i:80
 

 

关闭防火墙,将安装Nginx所需软件包传到/opt目录下

Web服务器群集:部署LNMP平台_第34张图片

②下载Nginx相关安装包➝ 服务器

3d85e2adf9924cce8b1b94d694ebe73f.png

③创建程序用户管理➝解压Nginx安装进行安装

2b268e6f39a046e7addba552b30a8262.png

Web服务器群集:部署LNMP平台_第35张图片

④创建运行用户、组

2e2b866c0aa140c5942bd9673f2c4253.png

⑤编译安装➝切换到Nginx解包路径下➝安装路径以及模块

Web服务器群集:部署LNMP平台_第36张图片

⑥编译安装Nginx 路径

Web服务器群集:部署LNMP平台_第37张图片Web服务器群集:部署LNMP平台_第38张图片

⑦编译安装

0b0856e466ee469d947c174d9a48189b.png

⑧Nginx服务 可执行程序文件存入路径环境变量的目录中便于系统识别软链接

c961cf38a4b742528649447dd545d1af.png

⑨检查语法

b45b907b54b1419da5caf7f9055dc584.png

⑩查看版本

Web服务器群集:部署LNMP平台_第39张图片

 

(2)Nginx升级

新版本升级:

表23 Nginx升级流程

序号

操作 关键命令 文件
1 下载Nginx相关安装包➝ 服务器 rz -E

nginx-1.22.0.tar

2

 

解压NginxL安装进行安装

cd nginx-1.22.0
tar -zxvf nginx-1.22.0.tar.gz -C /opt/

 
3

编译安装➝切换到Nginx解包路径下➝

安装路径以及模块

./configure \
--prefix=/usr/local/nginx \      
--user=nginx \                  
--group=nginx \               
--with-http_stub_status_module \
--with-http_ssl_module
 
4 编译 make  
5

备份➝

覆盖

mv /usr/local/nginx/sbin/nginx /usr/local/nginx/sbin/nginx_old

 

cp objs/nginx /usr/local/nginx/sbin/nginx

 
6 查看版本 nginx -V  

①下载Nginx相关安装包➝ 服务器

94d534d085d34528ad64522788d41838.png

②解压Nginx安装进行安装

tar -zxvf nginx-1.22.0.tar.gz -C /opt/

③编译安装➝切换到Nginx解包路径下➝安装路径以及模块

Web服务器群集:部署LNMP平台_第40张图片

完成

Web服务器群集:部署LNMP平台_第41张图片

④编译

eb9196408aa645f19c911abe6bddd656.png

⑤备份

a78dd8ecbdad46e8abcb8619ae4e00fb.png

4255b63a5b5f49b0852c759fc9edc6e8.png

⑥备查看版本

Web服务器群集:部署LNMP平台_第42张图片

⑦监听接口

36e8a75fce9a42edbf56c421f2295cbb.png9af28eea51d94add91f9cb27e2755774.png

 

(2)MySQL安装

流程:

表24 MySQL安装流程

序号

操作 关键命令 文件
1

下载MySQL相关安装包➝ 服务器

rz -E mysql-boost-5.7.20.tar.gz
2 登录到服务器安装MySQL相关依赖包和函数库 yum -y install \
ncurses \
ncurses-devel \
bison \
cmake

ncurses 是字符终端下图形互动功能的动态库;

ncurses-devel 是ncurses开发包;

bison 是语法分析器;

cmake 用来编译安装mysql

3

创建程序用户管理➝

解压MySQL安装进行安装

useradd -M -s /sbin/nologin  mysql

 

cd /opt
tar zxvf mysql-boost-5.7.20.tar.gz
 

 
4

编译安装➝切换到MySQL解包路径下➝

安装路径以及模块

cd /opt/mysql-5.7.20/


cmake \
-DCMAKE_INSTALL_PREFIX=/usr/local/mysql \
-DMYSQL_UNIX_ADDR=/usr/local/mysql/mysql.sock \
-DSYSCONFDIR=/etc \
-DSYSTEMD_PID_DIR=/usr/local/mysql \
-DDEFAULT_CHARSET=utf8  \
-DDEFAULT_COLLATION=utf8_general_ci \
-DWITH_EXTRA_CHARSETS=all \
-DWITH_INNOBASE_STORAGE_ENGINE=1 \
-DWITH_ARCHIVE_STORAGE_ENGINE=1 \
-DWITH_BLACKHOLE_STORAGE_ENGINE=1 \
-DWITH_PERFSCHEMA_STORAGE_ENGINE=1 \
-DMYSQL_DATADIR=/usr/local/mysql/data \
-DWITH_BOOST=boost \
-DWITH_SYSTEMD=1

DCMAKE_INSTALL_PREFIX指定mysql的安装路径;

DMYSQL_UNIX_ADDR指定mysql进程监听套接字文件(数据库连接文件)的存储路径;

DSYSCONFDIR指定配置文件的存储路径;

DSYSTEMD_PID_DIR指定进程文件的存储路径;

DDEFAULT_CHARSET指定默认使用的字符集编码,如 utf8;

DDEFAULT_COLLATION指定默认使用的字符集校对规则;

DWITH_EXTRA_CHARSETSDWITH_INNOBASE_STORAGE_ENGINE指定支持其他字符集编码;

DWITH_INNOBASE_STORAGE_ENGINE安装INNOBASE存储引擎;

DWITH_ARCHIVE_STORAGE_ENGINE安装ARCHIVE存储引擎;

DWITH_BLACKHOLE_STORAGE_ENGINE安装BLACKHOLE存储引擎 ;

DWITH_PERFSCHEMA_STORAGE_ENGINE安装FEDERATED存储引擎 ;

DMYSQL_DATADIR指定数据库文件的存储路径;

DWITH_BOOST指定boost的路径,若使用mysql-boost集成包安装则-DWITH_BOOST=boost;

DWITH_SYSTEMD生成便于systemctl管理的文件;

5 编译安装 make -j 16 && make install-j 16 && make installmake -j 16 && make install  
6 更改管理主/组  

chown -R mysql:mysql /usr/local/mysql/
chown mysql:mysql /etc/my.cnf

 
7 配置MySQL文件➝my.cnf

vim /etc/my.cnf
[client]
port = 3306
socket=/usr/local/mysql/mysql.sock

[mysqld]
user = mysql
basedir=/usr/local/mysql
datadir=/usr/local/mysql/data
port = 3306
character-set-server=utf8
pid-file = /usr/local/mysql/mysqld.pid
socket=/usr/local/mysql/mysql.sock
bind-address = 0.0.0.0
skip-name-resolve
max_connections=2048
default-storage-engine=INNODB
max_allowed_packet=16M
server-id = 1

sql_mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES,NO_AUTO_CREATE_USER,NO_AUTO_VALUE_ON_ZERO,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,PIPES_AS_CONCAT,ANSI_QUOTES

 
8 设置环境变量,申明/宣告MySQL 命令便于系统识别 echo "PATH=$PATH:/usr/local/mysql/bin" >> /etc/profile
source /etc/profile
 
9 初始化数据库 cd /usr/local/mysql/bin/
./mysqld \
--initialize-insecure \
--user=mysql \
--basedir=/usr/local/mysql \
--datadir=/usr/local/mysql/data
 
 
10

为了启动服务方便,MySQL 启动服务加入到systemd系统管理➝

可使用service或systemctl进行管理

cp /usr/local/mysql/usr/lib/systemd/system/mysqld.service /usr/lib/systemd/system/
systemctl daemon-reload
systemctl start mysqld.service
systemctl enable mysqld
 
 
11 修改mysql 的登录密码 mysqladmin -u root -p password "abc123"
 
 
12 授权远程登录 mysql -u root -p
 
 

 

①下载MySQL相关安装包➝ 服务器

1e24c83543164c4fa566c935f8fbbf74.png

②安装Mysql环境依赖包

Web服务器群集:部署LNMP平台_第43张图片

Web服务器群集:部署LNMP平台_第44张图片

③创建程序用户管理➝解压MySQL安装进行安装

4eed725778604137b3692f9e4081f85e.png

tar -zxvf mysql-boost-5.7.20.tar.gz -C /opt

6c8f92a1ecc64f15bc3e9968ede160d0.png

④编译安装➝切换到MySQL解包路径下➝安装路径以及模块

 

 

79715d5104cf4c9faf9eab9e2820ab24.png

cmake \

-DCMAKE_INSTALL_PREFIX=/usr/local/mysql \

-DMYSQL_UNIX_ADDR=/usr/local/mysql/mysql.sock \

-DSYSCONFDIR=/etc \

-DSYSTEMD_PID_DIR=/usr/local/mysql \

-DDEFAULT_CHARSET=utf8  \

-DDEFAULT_COLLATION=utf8_general_ci \

-DWITH_EXTRA_CHARSETS=all \

-DWITH_INNOBASE_STORAGE_ENGINE=1 \

-DWITH_ARCHIVE_STORAGE_ENGINE=1 \

-DWITH_BLACKHOLE_STORAGE_ENGINE=1 \

-DWITH_PERFSCHEMA_STORAGE_ENGINE=1 \

-DMYSQL_DATADIR=/usr/local/mysql/data \

-DWITH_BOOST=boost \

-DWITH_SYSTEMD=1

Web服务器群集:部署LNMP平台_第45张图片

⑤ 编译安装

e0555b3a15644a1e9c15da7403bccaf6.png

Web服务器群集:部署LNMP平台_第46张图片

⑥配置MySQL文件➝my.cnf

e7f33055b431462b9f1147e861e73941.png

Web服务器群集:部署LNMP平台_第47张图片

⑦ 更改管理主/组

58fc505cd2ce470296db15fcec510b20.png

⑧ 设置环境变量,申明/宣告MySQL 命令便于系统识别

8bb1804adaff4c1483054b158778858d.png

⑨初始化数据库

fce330e39ab94f8f82d5fc0b31654764.png

Web服务器群集:部署LNMP平台_第48张图片

⑩为了启动服务方便,MySQL 启动服务加入到systemd系统管理➝可使用service或systemctl进行管理

Web服务器群集:部署LNMP平台_第49张图片

⑪修改mysql 的登录密码

926a51c2c89b4c6c931c7e70531a8853.png

⑫ 授权远程登录

mysql -u root -p

 

(3)PHP安装

流程:

表25 PHP安装流程

序号

操作 关键命令 文件
1

下载PHP相关安装包➝ 服务器

rz -E php-7.1.10.tar.bz2
2 登录到服务器安装PHP相关依赖包和函数库 yum -y install gd \
libjpeg libjpeg-devel \
libpng libpng-devel \
freetype freetype-devel \
libxml2 libxml2-devel \
zlib zlib-devel \
curl curl-devel \
openssl openssl-devel
 
安装GD库和GD库关联程序,用来处理和生成图片
3 解压PHP安装进行安装 cd /opt
tar jxvf php-7.1.10.tar.bz2
 
4

编译安装➝切换到PHP解包路径下➝

安装路径以及模块

cd php-7.1.10


./configure \
--prefix=/usr/local/php \
--with-mysql-sock=/usr/local/mysql/mysql.sock \
--with-mysqli \
--with-zlib \
--with-curl \
--with-gd \
--with-jpeg-dir \
--with-png-dir \
--with-freetype-dir \
--with-openssl \
--enable-fpm \
--enable-mbstring \
--enable-xml \
--enable-session \
--enable-ftp \
--enable-pdo \
--enable-tokenizer \
--enable-zip

 
5 编译安装 make -j 16 && make install  
6 优化php可执行程序文件存入路径环境变量的目录中便于系统识别软链接 ln -s /usr/local/php/bin/* /usr/local/bin/
ln -s /usr/local/php/sbin/* /usr/local/sbin/
 
 
7

调整主配置文件➝

php.ini

cp /opt/php-7.1.10/php.ini-development /usr/local/php/lib/php.ini    
vim /usr/local/php/lib/php.ini
 
--1170行--修改
mysqli.default_socket = /usr/local/mysql/mysql.sock
--939行--取消注释,修改
date.timezone = Asia/Shanghai
8 验证安装的模块 php -m       
9 调整进程服务配置文件

php-fpm.conf

cd /usr/local/php/etc/
cp  php-fpm.conf.default php-fpm.conf
vim php-fpm.conf
--17行--去掉";"注释
pid = run/php-fpm.pid
10 调整扩展配置文件

www.conf

cd /usr/local/php/etc/php-fpm.d/
cp www.conf.default www.conf
 
 
11 启动php-fpm

/usr/local/php/sbin/php-fpm -c /usr/local/php/lib/php.ini
netstat -anpt | grep 9000

 

cd /opt/php-7.1.10/sapi/fpm
cp php-fpm.service /usr/lib/systemd/system/php-fpm.service
systemctl restart php-fpm.service
 

 
12

配置 Nginx 支持 PHP 解析➝

nginx.conf

vim /usr/local/nginx/conf/nginx.conf --65行--取消注释,修改
location ~ \.php$ {
    root           html;
    fastcgi_pass   127.0.0.1:9000;
    fastcgi_index  index.php;
    fastcgi_param  SCRIPT_FILENAME  /usr/local/nginx/html$fastcgi_script_name;    #将 /scripts 修改为nginx的工作目录
   #fastcgi_param  SCRIPT_FILENAME $document_root$fastcgi_script_name;  #$document_root 代表当前请求在root指令中指定的值
    include        fastcgi_params;
}
 
13 启动服务 systemctl restart nginx.service
 
 
14 测试网页 vim /usr/local/nginx/html/index.php
phpinfo();
?>
 
 
15 浏览器访问 http://192.168.204.200/index.php  
16 验证数据库工作是否正常➝新建数据库及用户➝替换原来的测试页内容

mysql -u root -p
CREATE DATABASE bbs;
GRANT all ON bbs.* TO 'bbsuser'@'%' IDENTIFIED BY 'admin123';
GRANT all ON bbs.* TO 'bbsuser'@'localhost' IDENTIFIED BY 'admin123';
flush privileges;
 

vim /usr/local/nginx/html/index.php           
$link=mysqli_connect('192.168.204.200','bbsuser','admin123');
if($link) echo "

Success!!

";
else echo "Fail!!";
?>
 

 
17 浏览器访问 http://192.168.204.200/index.php  

①下载PHP相关安装包➝ 服务器安装环境依赖包

Web服务器群集:部署LNMP平台_第50张图片

②登录到服务器安装PHP相关依赖包和函数库

Web服务器群集:部署LNMP平台_第51张图片

Web服务器群集:部署LNMP平台_第52张图片

③解压PHP安装进行安装

cd /opt
tar -jxvf php-7.1.10.tar.bz2 -C /opt

④编译安装➝切换到PHP解包路径下➝安装路径以及模块

 

./configure \

--prefix=/usr/local/php \

--with-mysql-sock=/usr/local/mysql/mysql.sock \

--with-mysqli \

--with-zlib \

--with-curl \

--with-gd \

--with-jpeg-dir \

--with-png-dir \

--with-freetype-dir \

--with-openssl \

--enable-fpm \

--enable-mbstring \

--enable-xml \

--enable-session \

--enable-ftp \

--enable-pdo \

--enable-tokenizer \

--enable-zip

Web服务器群集:部署LNMP平台_第53张图片

完成

Web服务器群集:部署LNMP平台_第54张图片

⑤编译安装

8557e76da97d4a00bff9bdf277fc4f06.png

Web服务器群集:部署LNMP平台_第55张图片

⑥优化php可执行程序文件存入路径环境变量的目录中便于系统识别软链接

ed73aedb1d8b464a8d01d81c20d7cbba.png

⑦调整主配置文件➝php.ini

f35f8d701a194dc0b54dfe4c9f9407a6.png95e99a4f99344256b6beee7774f5871e.png

--1170行--修改

1026db209e5e41f4bd93c8f008967ff7.png

--939行--取消注释,修改

baa44429b6484a1fa1b889ae9a826666.png

⑧验证安装的模块

Web服务器群集:部署LNMP平台_第56张图片

⑨调整进程服务配置文件:

d13ebd693109440c96c8573f885de17e.png

84bb5d8bacf14594b20af89dcd89b51c.png

⑩调整扩展配置文件:

ce1525b45897464d9d045ea097227a69.png

⑪启动php-fpm

c695b50851ad46d7a2dc2a3228ed9e3e.png

3f082dfd5a674a5f8e6f87ff5637a0b9.png


⑫配置 Nginx 支持 PHP 解析➝nginx.conf

7e7804d0458e427e86d40498d38c90b8.png

--65行--取消注释,修改

Web服务器群集:部署LNMP平台_第57张图片

 

⑬启动服务

87e4e5f9ee724fa78ee9c73642ef5689.png

⑭验证PHP 测试页

a601a8f0eb474c14b2f0a013f53f1edc.png

Web服务器群集:部署LNMP平台_第58张图片

⑮浏览器访问

http://192.168.204.200/index.php

Web服务器群集:部署LNMP平台_第59张图片

⑯验证数据库工作是否正常➝新建数据库及用户➝替换原来的测试页内容

Web服务器群集:部署LNMP平台_第60张图片

编辑              

02d1a82d96a04641a1d09539205198e0.png

⑰ 替换原来的测试页内容

Web服务器群集:部署LNMP平台_第61张图片

⑱浏览器访问

http://192.168.204.200/index.php

Web服务器群集:部署LNMP平台_第62张图片

 

(4)论坛安装

流程:

表26 DISCUZ安装流程

序号

操作 关键命令 文件
1 创建一个数据库

mysql -u root -p 

mysql> CREATE DATABASE bbs;

mysql> GRANT all ON bbs.* TO 'bbsuser'@'%' IDENTIFIED BY 'admin123';

mysql>flush privileges; 

把bbs数据库里面所有表的权限授予给bbsuser,并设置密码;

刷新数据库;

2

下载

 DISCUZ相关安装包➝ 服务器

rz -E Discuz_X3.4_SC_UTF8.zip
3

解压

 DISCUZ安装进行安装

unzip Discuz_X3.4_SC_UTF8.zip -d /opt/dis  
4 上传站点更新包

cd /opt/dis

cp -r upload/ /usr/local/httpd/htdocs/bbs

 
5 更改管理主/组

cd /usr/local/httpd/htdocs/bbs

chown 777 daemon ./config
chown 777 daemon ./data
chown 777 daemon ./uc_client
chown -R daemon ./uc_server/data

 
6 准备数据库配置

数据库服务器: localhost 
数据库名字: bbs
数据库用户名: bbsuser
数据库密码: admin123
管理员账号: admin
管理员密码: admin123

本地架设就用localhost,如何不是在在本机上就要填写IP地址和端口号
7 访问论坛 http://192.168.204.200/bbs/install/index.php  

①创建一个数据库

Web服务器群集:部署LNMP平台_第63张图片

②下载DISCUZ相关安装包➝ 服务器

0728f09503c1460d9ebb516762f59775.png

③解压 DISCUZ安装进行安装

0fcf95adc50c4578877c500b25834230.png

④上传站点更新包

bacdfc0429f748b7abfe756ab5c27621.png

⑤更改管理主/组

Web服务器群集:部署LNMP平台_第64张图片

Web服务器群集:部署LNMP平台_第65张图片

⑥准备数据库配置

数据库服务器: localhost  
数据库名字: bbs
数据库用户名: bbsuser
数据库密码: admin123
管理员账号: admin
管理员密码: admin123

⑦访问论坛

安装向导-同意

Web服务器群集:部署LNMP平台_第66张图片

安装向导-开始安装

Web服务器群集:部署LNMP平台_第67张图片

安装向导-设置运行环境

Web服务器群集:部署LNMP平台_第68张图片

安装向导-安装数据库

Web服务器群集:部署LNMP平台_第69张图片

 安装向导-完成

Web服务器群集:部署LNMP平台_第70张图片

Web服务器群集:部署LNMP平台_第71张图片

进入论坛,登录管理员用户

Web服务器群集:部署LNMP平台_第72张图片

(5)fpm参数优化

vim /usr/local/php/etc/php-fpm.conf

pid = run/php-fpm.pid

Web服务器群集:部署LNMP平台_第73张图片

fpm进程启动方式,动态的

2948c90b5dd44dd6b6fd74b53f969077.png

fpm进程启动的最大进程数

036e88d5de8e467dbea9f977ca5088ba.png

动态方式下启动时默认开启的进程数,在最小和最大之间

b7f48b44b4f646a2862195289e87a736.png

动态方式下最小空闲进程数

90fabf0313534ed0b39b6ce6bf7c32fe.png

动态方式下最大空闲进程数

f7623ce0c30b4a4ba59f7a1120f2d556.png

重启php-fpm 并监听端口

Web服务器群集:部署LNMP平台_第74张图片

 

 

三、问题

1.没有规则可以创建“default”需要的目标“build”。

原因分析:缺依赖安装包

e170d19ecf084b0abf35094800261ddb.png

 解决方法:

安装Nginx所需的依赖安装包:

gcc功能:预处理、编译、连接、汇编
openssl功能:用于网站加密通讯。
pcre功能:用于支持解析正则表达式。
zlib功能:用于对数据进行解压缩。网站之间通信时,数据先压缩再传输,通过消耗CPU的方式来节省网络带宽

yum -y install pcre-devel zlib-devel openssl openssl-devel gcc gcc-c++ make

2.nginx重启报错

问题环境:

软件

版本
Centos 7
nginx 1.22.0

​systemctl restart nginx 重启报错

Web服务器群集:部署LNMP平台_第75张图片

原因分析:

查看​/lib/systemd/system/nginx.service​​的内容,里面是​​kill​​​了服务,但是实际会导致​​pid​​文件被删除,但是服务还存留,所以重启失败。

ExecReload=/bin/kill -s HUP $MAINPID
ExecStop=/bin/kill -s TERM $MAINPID

解决方法:

(1)最快的方式是停掉nginx服务,然后启动nginx。

ps -ef|grep nginx|grep -v grep|awk '{print $2}'|xargs kill -9  /usr/local/nginx/sbin/nginx

(2)修改​​/lib/systemd/system/nginx.service​​​的内容,调整​​ExecReload​​​和​​ExecStop​​,调整后内容如下:

ExecReload=/usr/local/nginx/sbin/nginx -s reload
ExecStop=/usr/local/nginx/sbin/nginx -s quit

(3)然后重新加载​​systemd​​

systemctl daemon-reload

(4)启动成功

Web服务器群集:部署LNMP平台_第76张图片

3.yum安装提示报错

问题环境:

软件

版本
Centos 7
yum  

原因分析:

“Another app is currently holding the yum lock; waiting for it to exit...”报错:

有一个应用程序正在锁定yum,等待退出

Web服务器群集:部署LNMP平台_第77张图片

 解决方法:

(1)杀掉这个应用程序

92528f1890f641da856fa16e6e8dccbb.png

kill -s 9 13806

 (2)制关掉yum进程,并重新运行yum

db6f9ae1c9df47fb8fa32d9a57a47971.png

 然后重新运行yum命令即可

4.配置文件报错

问题环境:

软件

版本
Centos 7
nginx 1.22.0

(1)原因分析:

nginx: [emerg] unexpected "}" in /usr/local/nginx/conf/nginx.conf:53

53行 “}”附近有语法错误,缺少分号“;”

8321a71bf0d24c51824d056b68335510.png

 解决方法:

修改配置文件

4617388bb92e4d38a367075e6b0e35ea.png

(2)原因分析:

nginx: [emerg] "server" directive is not allowed here in /usr/local/nginx/conf/nginx.conf:130

130行sever块不允许放置在这

40d2e3e364cf4cce8fb6b5ae92606566.png

 解决方法:

sever块放置在http块内

Web服务器群集:部署LNMP平台_第78张图片

(3) 原因分析:

nginx: [emerg] bind() to 192.168.204.100:80 failed (99: Cannot assign requested address)

不能解析地址

6bd48f929b104eaba1ddbf0a19e0cc21.png

af8b8f0fea024f54a10ccc5a493ccc3b.png

 解决方法:

修改地址

 ae1fbfbc10364d2d94d819c1450bc9a9.png

5.PHP页面无法打开

(1)原因分析:

 Nginx 配置文件未支持 PHP 解析

Web服务器群集:部署LNMP平台_第79张图片

 

vim /usr/local/nginx/conf/nginx.conf

(2)解决方法:

将 /scripts 修改为nginx的工作目录

Web服务器群集:部署LNMP平台_第80张图片

 Web服务器群集:部署LNMP平台_第81张图片

 

 

四、总结

LNMP平台是高效稳定的Web应用平台,LNMP架构结合了Linux操作系统的稳定性、Nginx服务器的高性能、MySQL数据库的可靠性和PHP语言的灵活性,被广泛应用于Web开发和部署。

Web服务器需要性能的用 Nginx ,不需要性能只求稳定用Apache。Nginx 处理动态请求是弱项,一般动态请求要 Apache 去做,Nginx 只适合静态和反向。

 

 

你可能感兴趣的:(服务器,运维)