如何系列 如何在Windows和Linux安装Nginx
文章目录
- Windows
- 一 下载Nginx
- 二 启动Nginx
- 三 验证
- Linux
- 一 安装依赖项
- 二 下载Nginx源码包
- 三 安装
- 四 验证
- 五 常用命令
- 附录
Nginx是一款高性能的开源Web服务器和反向代理服务器,被广泛用于构建现代化的Web应用和提供静态内容。本篇博文将教你如何在Windows和Linux操作系统上安装Nginx,以便你能够轻松搭建自己的Web服务器。
- 开源版本官网:https://nginx.org/
- 开源版本文档:https://nginx.org/en/docs/
- 开源版本下载地址:https://nginx.org/en/download.html
Nginx有两个版本可供选择:开源版本(Nginx Open Source)和商业版本(Nginx Plus)
商业版本:https://www.nginx.com/
Windows
一 下载Nginx
从https://nginx.org/en/download.html查找最新的版本,使用Stable version版本。

二 启动Nginx
解压启动
在cmd中执行命令
unzip nginx-1.24.0.zip
cd nginx-1.24.0
# 启动nginx
start nginx
查看nginx进程
$ tasklist /fi "imagename eq nginx.exe"

其中一个进程是master进程,另一个是worker进程。如果nginx没有启动,在错误日志文件中
logs\error.log查找原因。
其他命令
nginx -s stop 快速关机
nginx -s quit 优雅关机
nginx -s reload 更改配置、使用新配置启动新工作进程、正常关闭旧工作进程
nginx -s reopen 重新打开日志文件
三 验证
验证http:
- 在Web浏览器中访问您配置为使用HTTP的Nginx服务器(例如:http://www.laker.com)
- 浏览器验证:http://localhost
Linux
安装分为在线安装和源码安装,建议源码安装,因为可以自定义插件。
一 安装依赖项
sudo yum install gcc pcre-devel zlib-devel openssl-devel
二 下载Nginx源码包
从https://nginx.org/en/download.html查找最新的版本,使用Stable version版本。
# 例如如下版本
wget https://nginx.org/download/nginx-1.24.0.tar.gz
三 安装
1. 解压源码包:
tar -zxvf nginx-X.XX.X.tar.gz
2. 进入解压后的目录:
cd nginx-X.XX.X
3. 配置编译选项,包括启用HTTPS支持:
./configure --prefix=/usr/local/nginx1.24.0 --with-http_ssl_module --with-http_v2_module --with-http_stub_status_module
-
--prefix=path:默认路径为/usr/local/nginx,可不配置 -
--with-http_ssl_module:配置Nginx以启用HTTPS模块 -
--with-http_v2_module:配置Nginx以启用HTTP2模块 -
--with-http_stub_status_module:启用状态监控模块,允许查看Nginx的运行状态和统计信息location /nginx_status {stub_status;# allow 127.0.0.1;# deny all; } 通过访问http://your-domain.com/status来查看状态页面。 https://nginx.org/en/docs/http/ngx_http_stub_status_module.html -
--with-http_realip_module:启用真实IP模块,用于从代理服务器接收到的请求中提取真实的客户端IP地址。
http {...set_real_ip_from 192.168.1.0/24;real_ip_header X-Forwarded-For;...
}
这将启用真实IP模块,并从X-Forwarded-For头部提取客户端的真实IP地址,同时指定代理服务器的IP地址范围。
--with-threads:启用线程支持,以充分利用多核处理器的性能。--with-stream:启用TCP/UDP代理模块,用于实现基于Nginx的负载均衡和代理服务。
stream {...upstream backend {server backend1.example.com:12345;server backend2.example.com:12345;}server {listen 12345;proxy_pass backend;}
}
--with-pcre:启用PCRE库支持,用于支持正则表达式匹配。
4. 编译和安装Nginx:
# 编译
make
# 安装到上面指定的目录,就是把相关文件copy到指定目录
sudo make install
执行make命令后生成objs文件夹,此时还未安装到 --prefix=/usr/local/nginx1.24.0指定的目录。

然后执行sudo make install命令,此时就可以去/usr/local/nginx1.24.0目录了,安装copy完成。
5. 启动Nginx:
cd /usr/local/nginx1.24.0/sbin
sudo nginx
四 验证
1. 验证http:
- 在Web浏览器中访问您配置为使用HTTP的Nginx服务器(例如:http://www.laker.com)
2. 验证HTTPS支持:
- 在Web浏览器中访问您配置为使用HTTPS的Nginx服务器(例如:https://www.laker.com)
- 如果成功加载并显示通过SSL加密的网页,则表明HTTPS支持已启用。
3. 验证HTTP/2支持:
- 在Web浏览器中访问您配置为使用HTTP/2的Nginx服务器(例如:https://www.laker.com)
- 打开浏览器的开发者工具(通常可以通过右键单击网页并选择"检查"或"开发者工具"来打开)。
- 在开发者工具的"网络"选项卡中,查看协议列。如果显示为"HTTP/2",则表示HTTP/2支持已启用。
4. 验证gzip静态模块:
- 在Web浏览器中访问您的Nginx服务器上的静态文件(例如:https://www.laker.com/static/file.css)。
- 检查响应头中的"Content-Encoding"字段是否包含"gzip",表示gzip压缩已应用。
5. 验证状态监控模块:
- 在浏览器中访问配置的状态监控URL(例如:http://www.laker.com/nginx_status)。
- 如果成功访问并显示Nginx的状态信息,表示状态监控模块已启用。
Active connections: 3 # 当前活动客户端连接数,包括Waiting连接数。
server accepts handled requests12 12 1636
Reading: 0 Writing: 2 Waiting: 1
-
accepts:接受的客户端连接总数,示例中为12个。 -
handled:处理的连接总数,示例中为12个。 -
requests:客户端请求的总数,示例中为1636个。 -
Reading:nginx 正在读取请求标头的当前连接数。 -
Writing:nginx 将响应写回客户端的当前连接数。 -
Waiting:当前等待请求的空闲客户端连接数。 -
https://nginx.org/en/docs/http/ngx_http_stub_status_module.html
五 常用命令
#启动Nginx
nginx
#检查Nginx配置是否正确,如果配置没有错误,将显示一条成功消息
nginx -t
#重新加载配置,重启Nginx以使更改生效
nginx -s reload
#停止Nginx 快速关机
nginx -s stop
#停止Nginx 优雅关机
nginx -s quit
#查看Nginx的版本信息
nginx -v
# 查看Nginx编译时的配置参数
nginx -V
附录
HTTP/2特性:
| 特性 | HTTP/1 | HTTP/2 |
|---|---|---|
| 多路复用(Multiplexing) | 不支持,使用多个TCP连接 | 支持,通过单个TCP连接并行发送多个请求和响应 |
| 二进制传输(Binary framing) | 无,使用文本格式传输 | 是,使用二进制格式传输,减少了解析开销 |
| 头部压缩(Header compression) | 不支持,每次请求都携带完整的头部信息 | 支持,使用HPACK算法对头部进行压缩,减少了带宽占用 |
| 服务器推送(Server push) | 不支持,客户端需要主动请求资源 | 支持,服务器可以主动推送相关资源给客户端 |
| 流优先级(Stream prioritization) | 不支持,所有请求并发处理 | 支持,可以指定请求的优先级,优化资源加载顺序 |
| 连接复用(Connection reuse) | 有,但受限于并发请求数 | 更好的连接复用,减少了连接建立的开销 |
| 简化的握手过程 | 无 | 支持,减少了握手时间和延迟 |
| 兼容性 | 兼容HTTP/1,可以平滑升级 | 兼容HTTP/1,可以平滑升级 |
相关文章:
如何系列 如何在Windows和Linux安装Nginx
文章目录 Windows一 下载Nginx二 启动Nginx三 验证 Linux一 安装依赖项二 下载Nginx源码包三 安装四 验证五 常用命令附录 Nginx是一款高性能的开源Web服务器和反向代理服务器,被广泛用于构建现代化的Web应用和提供静态内容。本篇博文将教你如何在Windows和Linux操作…...
“1+X+N”模式助力企业数字化转型
近期,中电金信顺利完成某股份制银行“基于战略解析与业务架构的全行科技规划项目”交付。针对客户的实际业务需求,中电金信采用“1XN”服务模式,服务客户全面的企业架构转型规划。项目组联合行方协同创新,首次将企架建模方法应用于…...
JavaEE(系列3) -- 多线程(线程的中断与线程等待)
新内容开始之前,我们总结一个知识点. Thread类中的start方法和run方法的区别? start(): 用start方法来启动线程,真正实现了多线程运行,这时无需等待run方法体代码执行完毕而直接继续执行下面的代码。通过调用Thread类的start()方法来启动一个线程&#…...
想装一台自己的电脑,可以先了解下这些问题
时间:2023年5月11日19:09:56 ✨✨✨问题清单: ↪️计算机中CPU和内存是什么?分别有什么作用? ↪️为什么计算机中要有内存?CPU访问内存中的数据和访问硬盘中的数据有什么差别? ↪️CPU的基准速度表示什…...
Redis未授权漏洞复现
Redis简介 Redis是C语言开发的一个开源高性能(key-value)键值对类型的内存NoSQL数据库,可以用作数据库、缓存、信息中间件(性能非常优秀,支持持久化到硬盘且高可用)。由于其自身特点,可以广泛应用在数据集群ÿ…...
跳槽,如果没有更好的选择,可以去美团试试···
在美团干了半年,说一下自己的感受,美团是一家福利中等,工资待遇中上,高层管理团队强大,加班强度一般,技术不错,办公环境一般,工作氛围中上,部门差距之间工作体验差距巨大…...
Java10
Java10 (一)、配置文件(二)、多线程2.1 并发和并行2.2 多线程的实现方式2.3 常见成员方法2.3.1 线程的优先级2.3.2 守护线程(备胎线程)2.3.3 礼让线程和插入线程 2.4 线程生命周期2.5 线程安全问题2.6 锁2.…...
IMS call通话类型对比差异
IMS call呼入/呼出流程对比 呼出MO call大致流程 1)UE发送INVITE消息发起IMS call 2)UE接收网络返回的100 Trying 3)UE接收183 Session Progress 4)UE发送PRACK确认收到183 5)UE接收200 OK(PRACK) 6)UE发送UPDATE进行precondition流程 7)UE接收200 OK(UPDATE) 8…...
5.2 中心极限定理
学习目标: 要学习中心极限定理,我会采取以下几个步骤: 学习基本概念:了解什么是随机变量、样本、总体、概率密度函数等基本概念,为学习中心极限定理打下基础;学习正态分布:中心极限定理的核心…...
JVM 内存分哪几个区,如和判断一个对象是否存活
JVM 内存分哪几个区,每个区的作用是什么? java 虚拟机主要分为以下一个区:方法区: 1. 有时候也成为永久代,在该区内很少发生垃圾回收,但是并不代表不发生 GC,在这里进行的 GC 主要是对方法区里的常量池和对类型…...
在Spring Boot微服务使用Jedis操作Redis List列表
记录:408 场景:在Spring Boot微服务使用Jedis操作Redis List列表。 版本:JDK 1.8,Spring Boot 2.6.3,redis-6.2.5,jedis-3.7.1。 1.微服务中配置Redis信息 1.1在application.yml中Jedis配置信息 hub:example:redis:jedis:host: 192.168.…...
springboot + vue 部署 阿里云云服务器 ECS
安装所需文件 安装mysql5.7 下载MySQL的yum源配置 wget http://dev.mysql.com/get/mysql57-community-release-el7-11.noarch.rpm安装MySQL的yum源 yum -y install mysql57-community-release-el7-11.noarch.rpm使用yum方式安装MySQL5.7(下载需要点时间…...
mysql 日期 计算 时间差 天数差
mysql计算两个日期的时间差 第一种:TIMESTAMPDIFF函数 三个参数。第一个参数是比较的类型:FRAC_SECOND、SECOND、 MINUTE、 HOUR、 DAY、 WEEK、 MONTH、 QUARTER、YEAR几种类型。第二、三参数是时间,后减前: SELECT TIMESTAMPDIFF(DAY,20…...
不用网闸、FTP的话 如何实现内外网数据交换?
网络隔离已然成为很多企业首选的数据保护方式,即使是内部人员之间,也是不能随意的发送敏感文件的。但是,文件的流转交互,又是不可避免的,网络隔离保障了企业网络安全,但在具体实践中仍需解决各隔离网间的数…...
探寻Spring MVC的奥秘:内部组件与工作流程详解
Spring MVC是一个基于MVC架构模式的Web框架,是Spring框架的一个组件。它提供了一套Web应用程序开发的全面解决方案,包括从请求到响应的处理流程、处理请求的控制器、视图解析器、国际化和验证器等。 在这篇文章中,我们将介绍Spring MVC框架的…...
eclipse svn ClassNotFoundException: javassist.ClassPool
eclipse 五月 10, 2023 9:26:49 上午 org.apache.catalina.core.StandardContext filterStart 严重: Exception starting filter struts2 java.lang.reflect.InvocationTargetException - Class: com.opensymphony.xwork2.inject.ContainerImpl M e t h o d I n j e c t o r F…...
广度优先遍历搜索迷宫最短路径
思路分析 由于广度是扩散逐层的方式遍历,相当于是多条路同时跑,最后先到终点就是最短路径了。 广度优先搜索主要使用队列来进行处理 路径用一个单独的vector存储,每一个点的坐标由二维转为一维,如(2, 3)存储在vector中下标为2*…...
分布式计算基础知识
分布式系统的概念 分布式系统是由多个独立计算机组成的系统,这些计算机通过网络进行通信和协作,共同完成一个任务。分布式系统的特点是具有高可用性、可扩展性和容错性。 在分布式系统中,每个计算机节点都可以独立地执行任务,同…...
Mybatis方式完成CRUD操作
Mybatis方式完成CRUD操作 文章目录 Mybatis方式完成CRUD操作1、java以Mybatis方式操作DB1.1、配置数据源-创建 resources/mybatis-config.xml1.2、创建java bean-Monster1.3、配置Mapper接口声明方法1.4、配置xxMapper,完成SQL配置,实现CRUD操作1.5、Test测试 2、需…...
css背景 background的属性作用和值
当我们在 HTML 中设置背景时,可以使用 background 属性。这个属性有多个值,可以使用不同的值来设置背景图片、背景颜色、背景位置、背景重复等等。以下是用表格列出的常见的 background 属性的值及其作用: 属性值描述background-color设置背…...
【Python】 -- 趣味代码 - 小恐龙游戏
文章目录 文章目录 00 小恐龙游戏程序设计框架代码结构和功能游戏流程总结01 小恐龙游戏程序设计02 百度网盘地址00 小恐龙游戏程序设计框架 这段代码是一个基于 Pygame 的简易跑酷游戏的完整实现,玩家控制一个角色(龙)躲避障碍物(仙人掌和乌鸦)。以下是代码的详细介绍:…...
Prompt Tuning、P-Tuning、Prefix Tuning的区别
一、Prompt Tuning、P-Tuning、Prefix Tuning的区别 1. Prompt Tuning(提示调优) 核心思想:固定预训练模型参数,仅学习额外的连续提示向量(通常是嵌入层的一部分)。实现方式:在输入文本前添加可训练的连续向量(软提示),模型只更新这些提示参数。优势:参数量少(仅提…...
vue3 字体颜色设置的多种方式
在Vue 3中设置字体颜色可以通过多种方式实现,这取决于你是想在组件内部直接设置,还是在CSS/SCSS/LESS等样式文件中定义。以下是几种常见的方法: 1. 内联样式 你可以直接在模板中使用style绑定来设置字体颜色。 <template><div :s…...
NLP学习路线图(二十三):长短期记忆网络(LSTM)
在自然语言处理(NLP)领域,我们时刻面临着处理序列数据的核心挑战。无论是理解句子的结构、分析文本的情感,还是实现语言的翻译,都需要模型能够捕捉词语之间依时序产生的复杂依赖关系。传统的神经网络结构在处理这种序列依赖时显得力不从心,而循环神经网络(RNN) 曾被视为…...
代码规范和架构【立芯理论一】(2025.06.08)
1、代码规范的目标 代码简洁精炼、美观,可持续性好高效率高复用,可移植性好高内聚,低耦合没有冗余规范性,代码有规可循,可以看出自己当时的思考过程特殊排版,特殊语法,特殊指令,必须…...
Java求职者面试指南:Spring、Spring Boot、Spring MVC与MyBatis技术解析
Java求职者面试指南:Spring、Spring Boot、Spring MVC与MyBatis技术解析 一、第一轮基础概念问题 1. Spring框架的核心容器是什么?它的作用是什么? Spring框架的核心容器是IoC(控制反转)容器。它的主要作用是管理对…...
echarts使用graphic强行给图增加一个边框(边框根据自己的图形大小设置)- 适用于无法使用dom的样式
pdf-lib https://blog.csdn.net/Shi_haoliu/article/details/148157624?spm1001.2014.3001.5501 为了完成在pdf中导出echarts图,如果边框加在dom上面,pdf-lib导出svg的时候并不会导出边框,所以只能在echarts图上面加边框 grid的边框是在图里…...
Python的__call__ 方法
在 Python 中,__call__ 是一个特殊的魔术方法(magic method),它允许一个类的实例像函数一样被调用。当你在一个对象后面加上 () 并执行时(例如 obj()),Python 会自动调用该对象的 __call__ 方法…...
从0开始学习R语言--Day17--Cox回归
Cox回归 在用医疗数据作分析时,最常见的是去预测某类病的患者的死亡率或预测他们的结局。但是我们得到的病人数据,往往会有很多的协变量,即使我们通过计算来减少指标对结果的影响,我们的数据中依然会有很多的协变量,且…...
【SSM】SpringMVC学习笔记7:前后端数据传输协议和异常处理
这篇学习笔记是Spring系列笔记的第7篇,该笔记是笔者在学习黑马程序员SSM框架教程课程期间的笔记,供自己和他人参考。 Spring学习笔记目录 笔记1:【SSM】Spring基础: IoC配置学习笔记-CSDN博客 对应黑马课程P1~P20的内容。 笔记2…...
