当前位置: 首页 > news >正文

Nginx 与 LNMP 架构部署 - 详解

Nginx 与 LNMP 架构部署

一、Nginx 简介

Nginx 是一款轻量级的 Web 服务器 / 反向代理服务器电子邮件代理服务器。由俄罗斯程序员 Igor Sysoev 开发,最初为俄罗斯大型门户网站 Rambler 使用。首个公开版本 0.1.0 发布于 2004 年 10 月 4 日,以其稳定性、功能丰富、配置示例清晰和低资源消耗著称

Nginx 以其高并发处理能力低内存占用闻名,广泛应用于包括百度、京东、新浪、网易、腾讯、淘宝等中国大型网站

二、Nginx 的特点与优点

1、主要特性
2、主要优点
  • 高并发连接能力
  • 内存消耗低
  • 配置简洁易懂
  • 开源免费,成本低
  • 支持 Rewrite 规则、健康检查、GZIP 压缩、热部署等
  • 模块化设计,支持动态编译
  • 良好的文档和社区支持

三、Nginx 的功能与应用类别

1、基本功能
  • 静态资源服务
  • HTTP/SMTP/POP3 反向代理
  • 缓存加速与负载均衡
  • 支持 FastCGI、uWSGI
  • 模块化过滤(如 GZIP、SSI、图像处理)
  • SSL 支持
2、 扩展功能
3、应用场景
  • 结合 FastCGI 运行 PHP、JSP、Perl
  • 反向代理与负载均衡
  • 静态资源服务(HTML、图片)
  • 与现代技术栈结合使用

四、Nginx 的模块与工作原理

1、模块分类
  • 核心模块:HTTP、EVENT、MAIL
  • 基础模块:HTTP Access、FastCGI、Proxy、Rewrite
  • 第三方模块:Upstream、Hash、Notice 等
2、功能分类
3、基本模块
  • 核心模块:基本功能和指令
  • 事件模块:在 Nginx 内配置网络使用的能力
  • 配置模块:提供包含机制
4、进程架构

在这里插入图片描述

五、Nginx 部署步骤

1、环境准备
1.关闭防火墙和 selinux

2.添加 yum 源

3.创建nginx用户
[root@nginx ~]# useradd -r -M -s /sbin/mologin nginx
4.安装开发工具包

使用本地yum仓库安装

[root@nginx ~]# yum -y groupinstall "Development Tools"
5.安装依赖包和一些常用工具

使用网络yum仓库

[root@nginx ~]# yum -y install pcre-devel openssl openssl-devel gd-devel gcc gcc-c++ make zlib-devel wget lrzsz
6.创建日志存放目录
[root@nginx ~]# mkdir -p /var/log/nginx
[root@nginx ~]# chown -R nginx.nginx /var/log/nginx
2、编译安装
1.解压 nginx 源码包
[root@nginx ~]# tar -xzvf nginx-1.24.0.tar.gz -C /usr/local/
2.编译安装
[root@nginx ~]# cd /usr/local/nginx-1.24.0/
[root@nginx nginx-1.24.0]# ./configure \
> --prefix=/usr/local/nginx \
> --user=nginx \
> --group=nginx \
> --with-debug \
> --with-http_ssl_module \
> --with-http_realip_module \
> --with-http_image_filter_module \
> --with-http_gunzip_module \
> --with-http_gzip_static_module \
> --with-http_stub_status_module \
> --http-log-path=/var/log/nginx/access.log \
> --error-log-path=/var/log/nginx/error.log
[root@nginx nginx-1.24.0]# make
[root@nginx nginx-1.24.0]# make install
3、配置环境变量
[root@nginx nginx-1.24.0]# vim /etc/profile.d/nginx.sh
export PATH=/usr/local/nginx/sbin:$PATH
[root@nginx nginx-1.24.0]# . /etc/profile.d/nginx.sh
4、启动
1.启动 nginx,并查看端口情况
[root@nginx nginx-1.24.0]# nginx
[root@nginx nginx-1.24.0]# ss -anlt
2.停止 nginx
[root@nginx conf]# nginx -s stop
3.将 nginx.conf 和 mime.types 复制到 /opt 目录下
[root@nginx conf]# cp nginx.conf /opt/
[root@nginx conf]# cp mime.types /opt/
4.验证 nginx -c
[root@nginx conf]# nginx -c /opt/nginx.conf 
[root@nginx conf]# ss -anlt
5.再次停掉 nginx
[root@nginx conf]# nginx -c /opt/nginx.conf -s stop

访问网页

在这里插入图片描述

六、LNMP架构部署

架构说明
1、环境准备
1.关闭防火墙和 selinux

2.添加 yum 源

2、nginx部署

3、部署 mysql
1.安装 mysql

2.安装后配置
[root@mysql ~]# vim /etc/man_db.conf
MANDATORY_MANPATH                       /usr/local/mysql/man

在这里插入图片描述

[root@mysql ~]# vim /etc/ld.so.conf.d/mysql.conf
/usr/local/mysql/lib

在这里插入图片描述

4.部署 php
1.安装依赖包和工具
[root@php ~]# yum -y install libxml2 libxml2-devel openssl openssl-devel bzip2 bzip2-devel libcurl libcurl-devel libicu-devel libjpeg libjpeg-devel libpng libpng-devel openldap-devel pcre-devel freetype freetype-devel gmp gmp-devel  readline readline-devel libxslt libxslt-devel  php-mysqlnd
2.安装 php 源
[root@php ~]# yum -y install https://rpms.remirepo.net/enterprise/remi-release-7.rpm
3.启用 php7
[root@php ~]# yum-config-manager --enable remi-php70
4.安装 php
[root@php ~]# yum -y install php php-cli php-fpm php-mysqlnd php-zip php-devel php-gd php-mbstring php-curl php-xml php-pear php-bcmath php-json php-redis
5.配置 php
[root@php ~]# vim /etc/php-fpm.d/www.conf
listen = 0.0.0.0:9000
listen.allowed_clients = 192.168.100.10

在这里插入图片描述

6.生成测试页面
[root@php ~]# vim /var/www/html/index.php
<?php
phpinfo();
?>
[root@php ~]# chown -R apache.apache /var/www/html/
7.重启服务
[root@php ~]# systemctl restart php-fpm.service 
[root@php ~]# systemctl enable php-fpm.service
5、在 nginx 节点操作
1.整合 nginx 和 php
[root@nginx ~]# vim /usr/local/nginx/conf/nginx.conf
# 内容如下
location / {
root   html;
index  index.php index.html index.htm;
}
location ~ \.php$ {
root           /var/www/html;
fastcgi_pass   192.168.100.30:9000;
fastcgi_index  index.php;
fastcgi_param  SCRIPT_FILENAME  /var/www/html/$fastcgi_script_name;
include        fastcgi_params;
}

在这里插入图片描述

2.测试nginx配置文件
[root@nginx ~]# 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
[root@nginx ~]# nginx -s stop 
[root@nginx ~]# nginx
6.验证

在这里插入图片描述

七、Nginx 配置文件详解

1、配置文件概述
主配置文件路径
常见配置文件及其作用
配置文件作用
nginx.confNginx的基本配置文件
mime.typesMIME类型关联的扩展文件
fastcgi.conf与fastcgi相关的配置
proxy.conf与proxy相关的配置
sites.conf配置Nginx提供的网站,包括虚拟主机
2、配置文件结构
配置段层次
main配置段:全局配置段(可能包含event配置段)├── events{}:定义event模型工作特性└── http{}:定义http协议相关的配置├── upstream{}:负载均衡配置├── server{}:服务器级别(虚拟主机)└── location{}:请求级别(URL与文件系统映射)
变量支持
  1. 内置变量:模块提供的内建变量
  2. 自定义变量set var_name value
3、配置参数详解
调试与定位问题参数
daemon on|off;           # 是否以守护进程方式运行,调试应设为off
master_process on|off;   # 是否使用master/worker模型,调试可设为off
error_log 位置 级别;      # 配置错误日志
error_log 选项
位置级别
file stderr syslog:server=address[,parameter=value] memory:sizedebug info notice warn error crit alert emerg

注意:使用debug级别需编译时添加--with-debug选项

正常运行必备参数
user USERNAME [GROUPNAME];       # 指定运行worker进程的用户和组
pid /path/to/pid_file;           # 指定nginx守护进程的pid文件
worker_rlimit_nofile number;     # 设置所有worker进程最大打开文件数(默认1024)
worker_rlimit_core size;         # worker进程最大核心文件大小,保持默认即可
性能优化参数
worker_processes n;              # worker进程数(建议为CPU核心数或核心数-1)
worker_cpu_affinity cpumask;     # 进程绑定CPU核心
timer_resolution interval;       # 计时器解析度
worker_priority number;          # worker进程的nice值
CPU 绑定示例
0000 0001   # 第一颗CPU核心
0000 0010   # 第二颗CPU核心
0000 0100   # 第三颗CPU核心
0000 1000   # 第四颗CPU核心
事件相关配置(event{}段)
accept_mutex on|off;             # 负载均衡锁,on表示worker轮询响应
lock_file file;                  # 互斥锁文件路径
use [epoll|rtsig|select|poll];   # 事件模型(建议自动选择)
worker_connections 1024;         # 每个进程最大连接数
网络连接相关参数
keepalive_timeout 65;					# 长连接超时时长(默认65s)
keepalive_requests 100;					# 长连接最大请求数
keepalive_disable [msie6|safari|none];	# 禁用长连接的UA类型
tcp_nodelay on;							# 启用TCP_NODELAY选项
client_header_timeout number;			# 读取请求头超时时长
client_body_timeout number;				# 读取请求体超时时长
send_timeout number;					# 发送响应超时时长
Fastcgi 的相关配置参数

LNMP:php要启用fpm模型

location  ~  \.php$ {root html;fastcgi_pass 127.0.0.1:9000;			# 定义反向代理fastcgi_index index.php;fastcgi_param SCRIPT_FILENAME /scripts$fastcgi_script_name;include fastcgi_params;
}
常需要进行调整的参数
worker_processes
worker_connections
worker_cpu_affinity
worker_priority
4、HTTP 配置段详解
HTTP 配置结构
http {include mime.types;default_type application/octet-stream;keepalive_timeout 65;gzip on;upstream { ... }             # 负载均衡配置server {                     # 虚拟主机配置listen 80;server_name localhost;location / {             # URL映射配置root html;index index.html index.htm;}}
}
虚拟主机配置示例
server {listen 80;server_name www.example.com;root "/vhost/web";
}
listen 指令格式
listen address[:port];
listen port;
http://www.hskmm.com/?act=detail&tid=21500

相关文章:

  • QMT委托对象orderInfo的属性以及对应的值
  • 2025 年电动门厂家最新推荐排行榜:实力厂家深度解析,含技术认证、案例及选购指南
  • 2025 年透骨液膏药代理加盟 / 足浴包膏药代理加盟 / 青岛膏药代理加盟推荐:青岛步泽药业布泽草本透骨液代理合作解析
  • 单链表实现队列
  • 死锁易错知识点整理
  • 2025广州1688代运营服务商推荐排行榜,阿里巴巴全店,实力商家,店铺装修,产品推广,流量优化,国际站,新店起量,数据分析,爆款打造代运营公司推荐
  • 2025 海南财税公司最新推荐榜:三亚海口代理记账 / 税务合规服务机构权威解析海南代理财税/海南财税代理/海南注册公司财税/海南代理记账财税公司推荐
  • 2025 年 TM 芯片经销商最新推荐榜:聚焦规模化采购与敏捷物流, 实力解析
  • 2025 天微芯片经销商最新推荐榜:品牌实力测评与采购指南 —— 权威揭秘优质服务商选择标准
  • 读人形机器人27太空中
  • 2025 年酒店一次性用品源头厂家最新推荐榜单:含牙签牙线筷子套杯盖等全品类及采购选择指南酒店一次性牙签/牙线/筷子套/杯盖/杯垫/杯套用品 厂家推荐
  • 2025 年餐饮一次性用品实力厂家最新推荐榜单:覆盖牙签 / 牙线 / 筷子套 / 杯盖 / 杯垫多品类且资质口碑双优的标杆企业权威甄选
  • 校内模拟赛 路径 题解
  • 05-FreeRTOS的内存管理
  • 2025攻丝机品牌最新权威推荐排行榜:聚焦全自动攻丝机,半自动等机型,精选攻丝机实力厂商助企业高效选购
  • 软件测试覆盖率详解
  • oppoR9m刷Linux系统: 说明-注意事项-知识点
  • 手机框架材质
  • 2025年陶瓷定制企业最新推荐榜单:涵盖电子陶瓷,氧化铝陶瓷,氧化锆陶瓷,氮化铝陶瓷,结构陶瓷领域!
  • 2025阳台装修品牌推荐榜:优质阳台厂商资质、技术、服务测评及高口碑企业优选指南,浙江多为建筑服务与性价比兼具!
  • 2025 年杭州小程序开发机构最新推荐榜单:覆盖多行业定制需求,助力企业精准选靠谱服务商
  • 2025年杭州软件开发公司最新品牌推荐榜:聚焦技术实力与售后体系的优质服务商精选指南!
  • 2025 年独立游戏公司 TOP 设计平台推荐排行榜,独立游戏开发 / 美术 / 原画 / 素材 / 设计 / 角色 / 场景 / 道具 / UI / 策划 / 独立像素游戏公司推荐
  • 湖南省茶陵一中校庆120周年:205班捐款
  • 实用指南:计算机网络-ipv4首部校验原理
  • 2025 年人工智能培训厂家最新推荐排行榜:聚焦人工智能培训合规运营机构、产业适配能力与教学实力深度解析
  • 一种以125kHz低频识别 + 2.4GHz数据传输”的方案,通过频率优势互补,为近距离物联网应用提供了可靠、精准且高效的解决方案
  • 高效做PPT!5个亲测模板网站,10分钟出专业演示 !
  • 【WCH蓝牙系列芯片】-基于CH592开发板——HID_Keyboard中添加读、写、通知的服务属性
  • 2025 年 AI 健康管理厂商最新推荐榜单:覆盖多场景需求,深护智康等优质品牌助力行业升级