Nginx 与 LNMP 架构部署 - 详解

news/2025/9/30 15:02:02/文章来源:https://www.cnblogs.com/lxjshuju/p/19121133

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.mzph.cn/news/922968.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

QMT委托对象orderInfo的属性以及对应的值

m_strAccountID: 资金账号,账号,账号,资金账号 m_strExchangeID: 证券市场 m_strExchangeName: 交易市场 m_strProductID: 品种代码 m_strProductName: 品种名称 m_strInstrumentID: 证券代码 m_strInstrumentName:…

2025 年电动门厂家最新推荐排行榜:实力厂家深度解析,含技术认证、案例及选购指南

随着出入口智能化需求的持续升级,电动门已成为商业建筑、政府机构、住宅小区等场景的核心设备。但当前市场存在显著痛点:部分品牌缺乏核心技术,产品运行故障率高;售后服务体系不完善,故障响应不及时;定制能力不足…

定制建站方案西安 网站建设 培训学校

DataGridView控件在实际应用中非常实用&#xff0c;特别需要表格显示数据时。可以静态绑定数据源&#xff0c;这样就自动为DataGridView控件添加相应的行。假如需要动态为DataGridView控件添加新行&#xff0c;方法有很多种&#xff0c;下面简单介绍如何为DataGridView控件动态…

苏州网站建设系统方案网站制作公司广州

时至今日&#xff0c;距离小夕发布的第一篇正式文章已经过去整三个月啦。今天又回头看了一下自己写的第一篇文章&#xff0c;不禁有点感慨“文风”变了这么多&#xff0c;甚至有点受不了第一篇文章中的萌气了\(//∇//)\然后文章还写的不怎么样。。。虽然第一篇文章写的好差&…

单链表实现队列

单链表实现队列题目解析 队列的特点是先进先出,其实和单链表的结构类似。我们只需要实现队列的基本功能即可。定义队列class LinkedListQueue: def __init__(self): # 初始化队列的头尾指针和大小 self.head = Non…

苏州网站设计kgwl装修推广网站哪个好

题目描述 美术老师生病了&#xff0c;今天美术课编程老师来上&#xff0c;给大家一张无向图&#xff0c;包含 n个顶点&#xff08;编号1∼n&#xff09;&#xff0c;m条边&#xff0c;求这张图中的奇点数。 偶点(even vertex)&#xff1a;度数为偶数的顶点称为偶点 奇点(odd…

深入解析:2025年电商小程序小量DDoS攻击防护指南:从小流量到大威胁的全面防护方案

深入解析:2025年电商小程序小量DDoS攻击防护指南:从小流量到大威胁的全面防护方案pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; fo…

本地网站源码十大搜索引擎排行榜

实在是忍不住想记录下这个问题。今天在调试 iOS 平台的时候又遇到了这个问题&#xff0c;让我很恼火。这是第三次遇到了&#xff0c;这次一定要彻底解决他。 ios-deploy was not found找到两个方法&#xff0c;都可以解决问题&#xff0c;先直接给出结论&#xff1a; sudo np…

死锁易错知识点整理

死锁的避免是根据【防止系统进入不安全状态】采取措施实现的 解除死锁一般不会从非死锁的进程处抢夺资源 死锁的四个必要条件中,无法破坏的是【非抢夺是分配】死锁状态一定是不安全状态 产生死锁的根本原因是系统资源…

从手机到汽车音响:蚀刻喇叭网的跨界应用前景 - 指南

pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", "Monaco", "Courier New", …

2025 天微芯片经销商最新推荐榜:品牌实力测评与采购指南 —— 权威揭秘优质服务商选择标准

在 AI、汽车电子等产业爆发式增长的推动下,天微芯片作为关键元器件的市场需求持续攀升,但采购市场乱象丛生:部分经销商货源渠道不明导致品质堪忧,稀缺型号供应能力不足延误生产,技术支持缺失增加应用风险。尤其国…

珠海横琴建设局网站饰品公司网站建设策划书

转载https://www.ibm.com/developerworks/cn/java/wa-spring1/转载于:https://www.cnblogs.com/fkx1/p/9974527.html

做视频网站付费版百度首页网站推广多少钱一年

文章目录 1. Python中魔术方法的定义2. 魔术方法的分类2.1面向对象特性的增强&#xff1a;2.2运算符重载&#xff1a;2.3语义化编程&#xff1a;2.4控制对象生命周期&#xff1a;2.5容器协议支持&#xff1a;2.6 上下文管理器协议&#xff1a;2.7简化API设计&#xff1a; 3. 部…

做最最优秀的视频网站有哪些dedecms下载站

宽度自适应布局&#xff1a; 1、使用场景&#xff1a; 一侧&#xff08;左侧或者右侧&#xff09;为固定的导航或者菜单栏&#xff0c;另一侧将会随着浏览器的缩放而自适应改变其大小。这种布局结构可用于顶层布局结构亦可用于某个局部功能块&#xff0c;常见于各种web系统&am…

读人形机器人27太空中

读人形机器人27太空中1. 太空中 1.1. 长期以来,浩瀚无垠的太空一直是人类探索的前沿,不断挑战着人类的技术和生存极限 1.2. 当人类站在星际旅行和殖民的边缘时,人形机器人成为这些伟大事业中不可或缺的盟友 2. 机器…

2025 年酒店一次性用品源头厂家最新推荐榜单:含牙签牙线筷子套杯盖等全品类及采购选择指南酒店一次性牙签/牙线/筷子套/杯盖/杯垫/杯套用品 厂家推荐

当前酒店行业对一次性用品的需求日益精细化,从客房的牙刷牙膏到餐饮的筷子套、杯垫,再到印刷类的房卡套、信封,品类繁杂且质量要求不断提升。但市场上厂家资质参差不齐,部分厂家存在原料把控不严、环保标准不达标、…

2025 年餐饮一次性用品实力厂家最新推荐榜单:覆盖牙签 / 牙线 / 筷子套 / 杯盖 / 杯垫多品类且资质口碑双优的标杆企业权威甄选

当前餐饮行业对一次性用品的需求持续增长,但市场乱象却让餐饮企业采购面临诸多难题。部分厂家为压缩成本,使用劣质原材料、简化生产流程,导致产品存在卫生不达标、安全无保障等问题;同时,行业内厂家资质参差不齐,…

校内模拟赛 路径 题解

题意: 有一棵 n 个节点的无根树(\(n\le 1.6\times 10^5\)),树上第 i 个节点有一个正整数 \(A_i\) 作为点权。有趣的是,这棵无根树度数为 1 的节点不超过 10 个。 请求出一条树上的路径,使得路径上包含的节点个数…

Vue2 和 Vue3 中 watch 用法和原理详解 - 实践

pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", "Monaco", "Courier New", …

05-FreeRTOS的内存管理

概述 在 FreeRTOS 中,内存管理是连接内核功能与硬件资源的核心环节,直接影响系统的实时性、稳定性和资源利用率。对于基于 STM32 的开发,理解 FreeRTOS 的 内存管理方案是实现可靠嵌入式系统的基础。 一、为什么要学…