2024 年最新 windows 操作系统搭建部署 nginx 服务器应用详细教程(更新中)

nginx 服务器概述

Nginx 是一款高性能的 HTTP 和 反向代理 服务器,同时是一个 IMAP / POP3 / SMTP 代理服务器。Nginx 凭借其高性能、稳定性、丰富的功能集、简单的配置和低资源消耗而闻名。

浏览 nginx 官网:https://nginx.org/

在这里插入图片描述

Nginx 应用场景

静态文件服务:Nginx 可以高效地处理大量的静态文件请求,例如 HTML、CSS、JavaScript、图片等。
反向代理:将客户端的请求转发到后端的Web服务器,实现负载均衡和请求过滤。
API 网关:作为 API 的入口点,处理 API 请求的路由、认证、限流等。
HTTP / HTTPS 服务器:直接作为 Web 服务器,处理 HTTP 和 HTTPS 请求。
流媒体服务:支持视频、音频等流媒体内容的传输。

windows 安装 nginx

下载地址:https://nginx.org/en/download.html

在这里插入图片描述

解压目录

在这里插入图片描述

启动 nginx 服务

启动:解压目录位置进行打开 nginx.exe 文件

在这里插入图片描述

浏览器访问:localhost

在这里插入图片描述

80 端口占用问题

[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端口被其他程序占用。

查看 80 端口占用的程序

netstat -aon | findstr :80

在这里插入图片描述
使用 taskkill 结束进程(注意:/F 参数表示强制杀死进程)

taskkill /F /PID 【PID】

nginx 服务器配置

nginx 配置文件 conf 目录下 nginx.conf(默认配置 nginx 监听端口 80)

在这里插入图片描述

当更新了 nginx 配置文件 nginx.conf 时需要执行 nginx -s reload

nginx -s reload

关闭 nginx 服务

快速停止 nginx: nginx -s stop有序停止 nginx: nginx -s quittaskkill: taskkill /f /t /im nginx.exe

nginx 配置反向代理

在 Nginx 中配置请求转发(也称为反向代理)是一种常见的技术,它允许 Nginx 将客户端的请求转发到后端服务器(如应用服务器或另一个 Nginx 实例),并将后端服务器的响应返回给客户端。

server {  listen 80; # 监听80端口  server_name yourdomain.com www.yourdomain.com; # 服务器名  location / {  proxy_pass http://backendserver.com; # 转发请求到后端服务器  proxy_set_header Host $host; # 将请求头中的Host字段转发给后端服务器  proxy_set_header X-Real-IP $remote_addr; # 转发真实IP地址  proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; # 转发X-Forwarded-For请求头  proxy_set_header X-Forwarded-Proto $scheme; # 转发协议(http或https)  # 可以添加更多的proxy_set_header指令来转发其他请求头  # 如果后端服务器需要HTTPS,确保使用proxy_pass https://...  }  # 其他location块...  
}

在这个配置中,所有对 yourdomain.com 的请求都将被转发到 http://backendserver.com。通过 proxy_pass 指令指定了后端服务器的地址。proxy_set_header 指令用于转发请求头到后端服务器,这对于后端服务器根据请求头信息(如客户端的真实 IP 地址)做出决策很重要。

配置 80 端口代理本地 8080 端口

在Nginx中配置 80 端口转发到 8080 端口,意味着你想要让 Nginx 监听 80 端口(HTTP 的标准端口),并将所有接收到的请求转发到本地(或远程)的 8080 端口上。这通常用于将 Web 应用的默认 HTTP 端口(如Tomcat 的 8080)暴露给标准的 HTTP 端口,从而用户可以直接通过 HTTP 协议访问 Web 应用,而无需指定端口号。

server {  listen 80; # 监听80端口  server_name yourdomain.com www.yourdomain.com; # 替换为你的域名  location / {  proxy_pass http://127.0.0.1:8080; # 转发请求到本地的8080端口  proxy_set_header Host $host; # 转发Host头  proxy_set_header X-Real-IP $remote_addr; # 转发真实IP  proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; # 转发X-Forwarded-For头  proxy_set_header X-Forwarded-Proto $scheme; # 转发协议(http或https)  # 如果需要处理WebSocket连接,请确保添加以下行  # proxy_http_version 1.1;  # proxy_set_header Upgrade $http_upgrade;  # proxy_set_header Connection "upgrade";  # 其他可能需要的配置...  }  # 其他location块...  
}

请注意,server_name指令应该被设置为你的域名(或IP地址,但出于SEO和安全性的考虑,建议使用域名)。如果你没有域名,或者只是想在本地测试这个配置,你可以将server_name设置为localhost或_(下划线),但这将允许Nginx处理所有未明确指定server_name的请求,这通常不推荐在生产环境中使用。

注意:配置完成后,不要忘记重新加载或重启 Nginx 以使更改生效。

重新加载 Nginx 配置

sudo nginx -s reload

使用 systemctl

sudo systemctl reload nginx

如果你遇到任何问题,确保 Nginx 正在运行,并且你的防火墙或安全组规则允许从外部访问 80 端口。如果你是在本地机器上测试这个配置,并且无法从外部访问它,那么这可能是因为你的防火墙设置或ISP(互联网服务提供商)的限制。在这种情况下,你可以尝试从同一台机器上的不同浏览器或使用 curl 命令来测试配置。

配置 ssl 证书

SSL证书(全称Secure Sockets Layer Certificate)是一种数字证书,其核心作用是在互联网通信中实现数据的安全传输。

SSL证书基本概念

SSL证书是遵守SSL协议,由受信任的数字证书颁发机构CA(Certificate Authority),在验证服务器身份后颁发的一种数字证书。它类似于驾驶证、护照和营业执照的电子副本,安装在服务器上后,也被称为SSL服务器证书。SSL证书通过在客户端(如浏览器)和服务器之间建立一条SSL安全通道(Secure Socket Layer),确保在互联网上传输的数据得到保护,防止被未经授权的第三方窃取或篡改。

nginx.conf 配置文件

server {  listen 443 ssl;  server_name 需要访问的域名; # 这里替换为实际的域名,不需要加 https://  # 注意:ssl on; 这条指令在新版 Nginx 中不需要,因为 listen 443 ssl 已经隐含了启用 SSL  ssl_certificate C:/Users/Administrator/Desktop/nginx-1.27.1/ssl/xcx.mjrate.com.pem; # 正确的证书文件路径  ssl_certificate_key C:/Users/Administrator/Desktop/nginx-1.27.1/ssl/xcx.mjrate.com.key; # 正确的私钥文件路径  ssl_session_cache shared:SSL:1m;  ssl_session_timeout 5m;  ssl_ciphers HIGH:!aNULL:!MD5; # 您可以考虑使用更现代的密码套件列表  ssl_prefer_server_ciphers on;  # HTTP 到 HTTPS 的重定向(如果需要的话,这里没有直接包含)  location / {  proxy_pass http://127.0.0.1:8080/; # 转发请求到本地的8081端口  proxy_set_header Host $host; # 转发 Host 头  proxy_set_header X-Real-IP $remote_addr; # 转发真实 IP  proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; # 转发 X-Forwarded-For 头  proxy_set_header X-Forwarded-Proto $scheme; # 注意:这里 $scheme 在 SSL 上下文中通常是 https,但如果您有特殊的反向代理配置,可能需要调整  # 还可以添加其他必要的 proxy_set_header 指令  }  # 其他 location 块或全局配置...  
}

重新加载 Nginx 配置

nginx -s reload

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

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

相关文章

C 实现植物大战僵尸(二)

C 实现植物大战僵尸(二) 前文链接,C 实现植物大战僵尸(一) 五 制作启动菜单 启动菜单函数 void startUI() {IMAGE imageBg, imgMenu1, imgMenu2;loadimage(&imageBg, "res/menu.png");loadimage(&am…

Android笔记(四十一):TabLayout内的tab不滚动问题

背景 假设二级页面是上面图片的布局,当进来时TabLayout和ViewPager2绑定完就马上调setCustomItem,跳转到最后一个tab页面时,会发现tab不滚动,手动滑一下ViewPager2时才会滚动tab到正确的位置 原因分析 调用TabLayoutMediator.at…

域内的三种委派方式

域委派:使得上游服务能使用用户凭据访问下游服务,使得下游服务根据域用户判断权限,例如: web 用户 hack ---------------访问------------------> web 服务器 ( www-data 域服务账户运行)-------------…

GEE云计算、多源遥感、高光谱遥感技术蓝碳储量估算;红树林植被指数计算及提取

大气温室气体浓度不断增加,导致气候变暖加剧,随之会引发一系列气象、生态和环境灾害。如何降低温室气体浓度和应对气候变化已成为全球关注的焦点。海洋是地球上最大的“碳库”,“蓝碳”即海洋活动以及海洋生物(特别是红树林、盐沼和海草&…

module ‘django.db.models‘ has no attribute ‘FieldDoesNotExist‘

module ‘django.db.models’ has no attribute ‘FieldDoesNotExist’ xadmin报错 原因 django与xadmin版本不匹配。 django==3.2.7 xadmin-django==3.0.2解决方案 在xadmin/view/edit.py的388行改为 from django.core import exceptions if self.request_method ==

数据结构(哈希表(中)纯概念版)

前言 哈希表(Hash Table)是计算机科学中的一个基础而重要的数据结构,它广泛评估各种算法和系统中,尤其是在需要快速查找、插入和删除操作的场景中。由于其O( 1)的平均时间复杂度,存储表在性能要求较高的应用中表现得非…

计算机网络 (12)物理层下面的传输媒体

前言 计算机网络物理层下面的传输媒体是计算机网络设备之间的物理通路,也称为传输介质或传输媒介,并不包含在计算机网络体系结构中,而是处于物理层之下。 一、传输媒体的分类 导向型媒体:电磁波被导引沿着固体媒体传播。常见的导向…

PPT画图——如何设置导致图片为600dpi

winr,输入regedit打开注册表 按路径找,HKEY_CURRENT_USER\Software\Microsoft\Office\XX.0\PowerPoint\Options(xx为版本号,16.0 or 15.0或则其他)。名称命名:ExportBitmapResolution 保存即可,…

接口测试的原则、用例与流程

🍅 点击文末小卡片,免费获取软件测试全套资料,资料在手,涨薪更快 一、接口的介绍 软件测试中,常说的接口有两种:图形用户接口(GUI,人与程序的接口)、应用程序编程接口…

Oracle 11G还有新BUG?ORACLE 表空间迷案!

前段时间遇到一个奇葩的问题,在开了SR和oracle support追踪两周以后才算是有了不算完美的结果,在这里整理出来给大家分享。 1.问题描述 12/13我司某基地MES全厂停线,系统卡死不可用,通知到我排查,查看alert log看到是…

测试冰淇淋模型

测试领域的冰淇淋模型(Ice Cream Cone Model)是一个相对于传统的测试金字塔模型的反转,是一种与经典金字塔模型相对的测试策略。在这种模型中,测试的分布和重点与传统金字塔模型相反。以下是冰淇淋模型的主要特点和原因&#xff1…

Quartz任务调度框架实现任务动态执行

说明:之前使用Quartz,都是写好Job,指定一个时间点,到点执行。最近有个需求,需要根据前端用户设置的时间点去执行,也就是说任务执行的时间点是动态变化的。本文介绍如何用Quartz任务调度框架实现任务动态执行…

HarmonyOS Next 实现登录注册页面(ARKTS) 并使用Springboot作为后端提供接口

1. HarmonyOS next ArkTS ArkTS围绕应用开发在 TypeScript (简称TS)生态基础上做了进一步扩展,继承了TS的所有特性,是TS的超集 ArkTS在TS的基础上扩展了struct和很多的装饰器以达到描述UI和状态管理的目的 以下代码是一个基于…

基于 Ragflow 搭建知识库-初步实践

基于 Ragflow 搭建知识库-初步实践 一、简介 Ragflow 是一个强大的工具,可用于构建知识库,实现高效的知识检索和查询功能。本文介绍如何利用 Ragflow 搭建知识库,包括环境准备、安装步骤、配置过程以及基本使用方法。 二、环境准备 硬件要…

加载Tokenizer和基础模型的解析及文件介绍:from_pretrained到底加载了什么?

加载Tokenizer和基础模型的解析及文件介绍 在使用Hugging Face的transformers库加载Tokenizer和基础模型时,涉及到许多文件的调用和解析。这篇博客将详细介绍这些文件的功能和它们在加载过程中的作用,同时结合代码片段进行解析。 下图是我本地下载好模…

链式二叉树的基本操作,前序、中序以及后序遍历(递归实现,非递归实现)【有图解】

文章目录 结点设置二叉树的遍历前序、中序以及后序遍历 递归实现前序、中序以及后序遍历 非递归实现层序遍历 结点的个数叶子结点的个数第k层结点的个数值为x的结点树的最大深度二叉树的销毁 结点设置 既然是链式二叉树,那必须得有自己的结点类型,以下是…

使用 Docker 搭建 Hadoop 集群

1.1. 启用 WSL 与虚拟机平台 1.1.1. 启用功能 启用 WSL并使用 Moba 连接-CSDN博客 1.2 安装 Docker Desktop 最新版本链接:Docker Desktop: The #1 Containerization Tool for Developers | Docker 指定版本链接:Docker Desktop release notes | Do…

3.若依前端项目拉取、部署、访问

因为默认RuoYi-Vue是使用的Vue2,所以需要另外去下载vue3来部署。 拉取代码 git clone https://gitee.com/ys-gitee/RuoYi-Vue3.git 安装node才能执行npm相关的命令 执行命令npm install 如果npm install比较慢的话,需要添加上国内镜像 npm install --registrhttp…

Docker安装体验kuboard-k8s多集群管理工具

文章目录 1.kuboard是什么?2.docker安装命令2.1 Linux上docker环境安装命令2.2 Windows上docker环境安装命令 3.登录访问3.1首页访问地址3.2 默认账号密码3.3 登录页3.4 首页 4总结 1.kuboard是什么? 参看官网: https://kuboard.cn/gitHub项目地址&…

重学设计模式-责任链模式

责任链模式(Chain of Responsibility Pattern)是一种行为设计模式,它通过将请求沿着链传递,使多个对象都有机会处理该请求,从而避免了请求的发送者与接收者之间的耦合关系。本文将详细介绍责任链模式的定义、优缺点、应…