【windows】--- nginx 超详细安装并配置教程

目录

  • 一、下载 nginx
  • 二、安装
  • 三、查看是否安装成功
  • 四、配置
  • 五、关闭 nginx
  • 六 负载均衡
  • 七 配置静态资源
    • 1. 根目录下的子目录(root)
    • 2.完全匹配(alias)
  • 刷新配置(不必重启nginx)
  • 八、后端鉴权

一、下载 nginx

打开 nginx 的官网:nginx.org/ ,下载最新的稳定版本

在这里插入图片描述
在这里插入图片描述

二、安装

1.打开下载的文件位置,然后进行
2.打开 nginx.exe 文件,会出现一个一闪而过的页面

在这里插入图片描述

3.然后打开任意一个浏览器,输入 localhost,出现下面的页面,则安装成功。

在这里插入图片描述

三、查看是否安装成功

1. win+r打开控制台 c
2. 进入到nginx安装的目录
3. 输入 nginx 
4. 如果安装不成功就会反馈错误
5. 出现的错误如果是:[emery] blind() to 0.0.0.0:80 failed (10013: An attempt was made to access a socket in a way forbidden by its access permissions)  就是80端口被其他程序占用。
6. 查看80端口占用的程序 关闭并重新执行nginx.exe 文件

四、配置

nginx的配置文件是conf目录下的nginx.conf
默认配置的nginx监听的端口为80

在这里插入图片描述

当修改了 nginx的配置文件nginx.conf 时,不需要关闭 nginx 后重新启动 nginx,只需要执行命令 nginx -s reload 即可让改动生效

五、关闭 nginx

(1)输入nginx命令 nginx -s stop(快速停止nginx) 或 nginx -s quit(完整有序的停止nginx)(2)使用 taskkill taskkill /f /t /im nginx.exe

六 负载均衡

1.理解:通过修改 nginx 的配置文件 nginx.conf 实现当到访问nginx代理服务器时跳转到指定服务器
2.即当我们依然输入http://localhost:80 时,请求会跳转到我们配置的服务器

在这里插入图片描述

我们可以配置多个目标服务器

在这里插入图片描述
当服务器 ocalhost:8080 挂掉时,nginx能将请求自动转向服务器 192.168.101.9:8080。上面还加了一个 weight 属性,此属性表示各服务器被访问到的权重,weight 越高被访问到的几率越高

七 配置静态资源

1. 根目录下的子目录(root)

比如url:http://localhost/images/sta1/11.jpg 
如果按下图进行配置,则url路径中的/images代表是D:/IEMS/images下的子目录
重定向到图片时路径就会拼接为 D:/IEMS/images/images/sta1/11.jpg
1.将静态资源(如jpg|png|css|js等)放在如下配置的 D:/IEMS/images 目录下
2.然后在 nginx 配置文件中做如下配置(注意:静态资源配置只能放在 location / 中)
3.浏览器中访问 http://localhost:80/1.png 即可访问到 D:/IEMS/images 目录下的 1.png 图片
location /images {root   D:/IEMS/images;index  index.html index.htm;
}

2.完全匹配(alias)

1.比如url:http://localhost/images/sta1/11.jpg  
如果按下图进行配置,则url路径中的/images可理解为仅仅是一个代表戳
以下是使用 ^~ 前缀进行定义,只有 url完全匹配 "/images/" 开头时才会执行图片重定向,而不会匹配其他包含 "/images/" 的 url
使用 alias 指令可以确保 Nginx"/images" 开头的 url映射到指定的文件目录,而不会将 "images" 视为根目录下的子目录2. 比如url:http://localhost/images/sta1/11.jpg 
就会重定向到  D:/IEMS/images/sta1/11.jpg下,重定向到图片时路径时后面就不会拼接/images,
如果/images后还有
location ^~ /images/ {alias   D:/IEMS/images/;index  index.html index.htm;
}

刷新配置(不必重启nginx)

当修改了 nginx的配置文件nginx.conf 时,不需要关闭 nginx 后重新启动 nginx
只需要执行命令 nginx -s reload 即可让改动生效

八、后端鉴权

在以下这个配置中,/images/目录下的资源将受到保护
当用户尝试访问这些资源时,Nginx会向后端发送一个认证请求
后端应用程序需要返回一个HTTP 200响应表示认证成功,或者其他响应码表示认证失败。
注意:需要注意的是,这只是一个简单的示例,您需要根据您的具体需求来配置Nginx和后端应用程序。确保后端应用程序能够处理认证请求,并根据您的业务逻辑来返回相应的响应。
location ^~ /images/ {internal;alias   D:/IEMS/images/;index  index.html index.htm;# 向后端发送认证请求auth_request /auth;# 根据后端应用程序返回的响应来决定是否允许访问auth_request_set $auth_status $upstream_status;auth_request_set $auth_username $upstream_http_x_username;if ($auth_status != 200) {return 403;}
}location = /auth {internal;proxy_pass http://backend_server/auth;proxy_pass_request_body off;proxy_set_header Content-Length "";proxy_set_header X-Original-URI $request_uri;proxy_set_header X-Username $remote_user;
}
这段配置代码实现了基于后端应用程序的认证逻辑。让我逐步解释它的执行逻辑和过程:
1. location = /auth:这是一个内部定位块,用于处理认证请求。它的含义是只有当请求的 URI 等于 "/auth" 时才会匹配。因为我们希望认证请求是内部的,不希望外部直接访问,所以使用了internal指令。
2. proxy_pass http://backend_server/auth;:这里配置了代理转发,将认证请求发送给后端服务器的/auth端点。当Nginx收到来自客户端的认证请求时,它会将该请求发送到后端服务器上的/auth端点,并等待后端应用程序的响应。
3. proxy_pass_request_body off;:这个指令告诉Nginx不要传递认证请求的请求体,因为我们只需要URI和头部信息。
4. proxy_set_header Content-Length "";:这个指令将Content-Length头部设置为空,因为我们已经关闭了传递请求体。
5. proxy_set_header X-Original-URI $request_uri;:这个指令将客户端请求的原始URI存储在X-Original-URI头部中,以便后端应用程序可以知道客户端请求的是哪个资源。
6. proxy_set_header X-Username $remote_user;:这个指令将客户端的用户名存储在X-Username头部中,以便后端应用程序可以知道是哪个用户在尝试访问资源。
7. auth_request /auth;:这行代码在 /images/ 路径下的位置块中执行,当客户端请求访问图片资源时触发,向后端发送认证请求。
8. auth_request_set $auth_status $upstream_status;:这行代码用于设置变量 $auth_status,存储上游服务器(即后端服务器)返回的状态码。这个变量表示认证请求的结果。
9. auth_request_set $auth_username $upstream_http_x_username;:这行代码用于设置变量 $auth_username,存储上游服务器返回的 X-Username 头部中的用户名信息。
10. if ($auth_status != 200):这个条件判断用于检查认证请求的结果。如果认证失败,即后端应用程序返回的状态码不是200,那么Nginx会返回403 Forbidden响应,拒绝访问请求的资源。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/794981.shtml

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

相关文章

2024.4.3-[作业记录]-day08-CSS 盒子模型(溢出显示、伪元素)

个人主页:学习前端的小z 个人专栏:HTML5和CSS3悦读 本专栏旨在分享记录每日学习的前端知识和学习笔记的归纳总结,欢迎大家在评论区交流讨论! 文章目录 作业 2024.4.3-学习笔记css溢出显示单行文本溢出显示省略号多行文本溢出显示省…

Linux基础篇:Linux网络yum源——以配置阿里云yum源为例

Linux网络yum源——以阿里云为例 一、网络yum源介绍 Linux中的YUM(Yellowdog Updater, Modified)源是一个软件包管理器,它可以自动处理依赖关系并安装、更新、卸载软件包。YUM源是一个包含软件包的远程仓库,它可以让用户轻松地安…

苹果cmsV10 MXProV4.5自适应PC手机影视站主题模板苹果cms模板mxone pro

演示站:http://a.88531.cn:8016 MXPro 模板主题(又名:mxonepro)是一款基于苹果 cms程序的一款全新的简洁好看 UI 的影视站模板类似于西瓜视频,不过同对比 MxoneV10 魔改模板来说功能没有那么多,也没有那么大气,但是比较且可视化功…

服务器硬件构成与性能要点:CPU、内存、硬盘、RAID、网络接口卡等关键组件的基础知识总结

文章目录 服务器硬件基础知识CPU(中央处理器)内存(RAM)硬盘RAID(磁盘阵列)网络接口卡(NIC)电源散热器主板显卡光驱 服务器硬件基础知识 服务器是一种高性能计算机,用于在…

thinkphp6入门(21)-- 如何删除图片、文件

假设文件的位置在 /*** 删除文件* $file_name avatar/20240208/d71d108bc1086b498df5191f9f925db3.jpg*/ function deleteFile($file_name) {// 要删除的文件路径$file app()->getRootPath() . public/uploads/ . $file_name; $result [];if (is_file($file)) {if (unlin…

论文笔记:Large Language Models as Analogical Reasoners

iclr 2024 reviewer打分5558 1 intro 基于CoT prompt的大模型能够更好地解决复杂推理问题 然而传统CoT需要提供相关的例子作为指导,这就增加了人工标注的成本——>Zero-shot CoT避免了人工标注来引导推理 但是对于一些复杂的任务难以完成推理,例如c…

Type-c转USBA3.0芯片 USBA3.0转Type-c芯片(USB3.1GEN2 多路切换Switch芯片) VL162

VL162具有CC功能的USB Type-C数据开关USB 3.1 Gen2 (10Gbps) VL162 带CC功能的USB Type-C数据开关 支持最高10Gbps 2差分通道,2:1 MUX/DeMUX 兼容10Gbps USB3.1 Gen2 低功耗,6mW在设备模式下有效 高直流共模电压,支持2.0V 28针QFN 3.5 x 4.5m…

人工智能数据分析Python常用库 04 matplotlib库

文章目录 一、matplotlib库的作用与环境配置1、环境配置示例2、改变绘图风格3、保存图片 二、绘制二维图形1、折线图(1)示例(2)调整线条颜色:(3)调整线条风格(4)调整线宽…

【C语言】_文件内容操作:随机读写

目录 1. fseek 1.1 随机读文件 1.2 随机写文件 2. ftell 3. rewind 当以读方式打开一个存在且存有内容的文件时,文件指针会默认指向第一个元素。以在test4.txt文件中存储abcdef为例: int main() {//打开文件FILE* pf fopen("E:\\C_文件操作…

关系型数据库与非关系型数据库、Redis数据库

相比于其他的内存/缓存数据库,redis可以方便的实现持久化的功能(保存至磁盘中) 一、关系数据库与非关系型数据库 1.1 关系型数据库 一个结构化的数据库,创建在关系模型基础上一般面向于记录 SQL语句 (标准数据查询语言) 就是一种…

LNMP环境:揭秘负载均衡与高可用性设计

lb1: 192.168.8.5 lb2: 192.168.8.6 web1:192.168.8.7 web2:192.168.8.8 php-fpm: 192.168.8.9 mysql: 192.168.8.10 nfs:192.168.8.11 分别插入镜像 8.5-8.8 分别安装nginx,并设置启动 8.9 安装php 8.10 安装mysql 先配置一台web服务器然后同步 设置网站根目录 cp -…

【00】【solidity最新教程】-简介

Solidity 是一门面向合约的、为实现智能合约而创建的高级编程语言。这门语言受到了 C,Python 和 Javascript 语言的影响,设计的目的是能在以太坊虚拟机(EVM)上运行。 Solidity 是静态类型语言,支持继承、库和复杂的用…

java -网络编程socket-聊天室-02

完整版代码 java -聊天室的代码: 用于存放聊天室的项目的代码和思路导图https://gitee.com/to-uphold-justice-for-others/java---code-for-chat-rooms.git 先引入线程的正统解释 线程(Thread)是程序执行流的最小单元。线程是操作系统分配CPU时间片的基…

【数据分析面试】10. 计算平均通勤时间(SQL:timestampdiff() 和datediff()区别)

题目 假设你在Uber工作。rides表包含了关于Uber用户在美国各地的行程信息。 编写一个查询,以获取纽约(NY)每位通勤者的平均通勤时间(以分钟为单位),以及纽约所有通勤者的平均通勤时间(以分钟为…

vue广告悬浮框,页面来回移动,鼠标放上停止,离开移动

1.dom <div class"popup-dialog" id"popupDialog" mouseover"onMmouseover" mouseout"onMouseout"><p>vue广告悬浮</p></div>2.js mounted() {this.initPopup();},beforeDestory() {if (this.times) {clearIn…

鸡尾酒排序解读

在数据处理的海洋中&#xff0c;排序算法无疑是引领我们探索数据规律的灯塔。今天&#xff0c;我们要探讨的是一种有趣且独特的排序算法——鸡尾酒排序。鸡尾酒排序&#xff0c;也被称为定向冒泡排序、双冒泡排序或搅拌排序&#xff0c;是冒泡排序的一种变体&#xff0c;它通过…

了解强化学习算法 PPO

&#x1f349; CSDN 叶庭云&#xff1a;https://yetingyun.blog.csdn.net/ 介绍&#xff1a; PPO 算法&#xff0c;即 Proximal Policy Optimization&#xff08;近端策略优化&#xff09;&#xff0c;是一种强化学习算法。它的主要目的是改进策略梯度方法&#xff0c;使得训练…

flink on yarn

前言 Apache Flink&#xff0c;作为大数据处理领域的璀璨明星&#xff0c;以其独特的流处理和批处理一体化模型&#xff0c;成为众多企业和开发者的首选。它不仅能够在处理无界数据流时展现出卓越的实时性能&#xff0c;还能在有界数据批处理上达到高效稳定的效果。本文将简要…

高校心理咨询预约系统的设计与实现(论文+源码)_kaic

摘 要 随着社会的发展&#xff0c;计算机的优势和普及使得高校心理咨询预约系统的开发成为必需。高校心理咨询预约系统主要是借助计算机&#xff0c;通过对信息进行管理。减少管理员的工作&#xff0c;同时也方便广大用户对个人所需信息的及时查询以及管理&#xff0c;其次是大…

苍穹外卖——项目搭建

一、项目介绍以及环境搭建 1.苍穹外卖项目介绍 1.1项目介绍 本项目&#xff08;苍穹外卖&#xff09;是专门为餐饮企业&#xff08;餐厅、饭店&#xff09;定制的一款软件产品&#xff0c;包括 系统管理后台 和 小程序端应用 两部分。其中系统管理后台主要提供给餐饮企业内部员…