Nginx使用

news2024/11/13 3:59:26

说明:Nginx是静态资源服务器,可以部署静态资源,并对请求进行策略分发。

下载

第一步:可在官网(http://nginx.org/en/download.html)下载,建议安装稳定版本(Stable version)

在这里插入图片描述

第二步:将文件解压到一个没有中文的路径下,我这里解压到D盘x86文件夹下

在这里插入图片描述

第三步:双击nginx.exe程序,会出现黑色的窗口一闪而过,在任务管理器中可以看到两个Nginx程序(只有一个表示程序启动错误,有四个或成对多于四个表示双击执行了多次nginx.exe,也会错误)

在这里插入图片描述

第四步:打开浏览器,输入http://localhost/(Nginx默认端口是80,Http默认访问的端口也是80,所以不需要再指定端口号),出现Nginx的Welcome页面,表示Nginx启动成功

在这里插入图片描述

使用

需要知道的是,在Nginx目录下,html文件夹内是存放静态资源文件的,conf文件夹是存放配置,log文件夹是存放日志文件的。使用Nginx部署自己的静态资源,首先把自己的项目放到html文件夹里面,后面修改Nginx的配置文件,配置访问路径。

例如,现在我有一个项目(my-project),有一个index.html静态页面和一个js文件夹,现在把它们放在Nginx的html文件夹下

在这里插入图片描述

在配置文件中修改访问路径

在这里插入图片描述

配置完成后需要重启以下Nginx,注意需要在Nginx.exe目录下
在这里插入图片描述

配置完后,在页面输入http://localhost/,此时访问的资源就是我们部署的项目

在这里插入图片描述

分发请求

在idea中创建一个Controller接口,访问链接为:http://localhost:8080/hello/

import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;

import javax.servlet.http.HttpServletRequest;

@RestController
public class NginxController {

    @RequestMapping("/hello")
    public String hello(){
        return "Hello";
    }
}

在Nginx配置文件中配置,将请求分发到Tomcat部署的项目中来。如果链接是http://localhost/hello/,就将请求分发到:http://localhost:8080/hello(Tomcat部署的项目)
在这里插入图片描述

打开浏览器,输入http://localhost/hello/

在这里插入图片描述

这就是Nginx的分发请求用法,使用该方法,可以解决跨域问题(参考:http://t.csdn.cn/wioeK)

轮询

在Controller中创建下面这个方法,方法返回当前项目使用的端口号。

import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;

import javax.servlet.http.HttpServletRequest;

@RestController
public class NginxController {

    @RequestMapping("/hello")
    public String hello(HttpServletRequest request){
        return "Hello" + request.getLocalPort();
    }
}

开启两个窗口,一个端口号为8080,一个端口号为8081
在这里插入图片描述
在这里插入图片描述

在Nginx配置,表示http://localhost/hello/请求路径,转发给127.0.0.1:8080/hello(即http://localhost:8080/hello)或者127.0.0.1:8081/hello(http://localhost:8081/hello),默认为轮询,即轮流访问。
在这里插入图片描述

重新加载Nginx,页面输入http://localhost/hello/

在这里插入图片描述

权重

在轮询的基础上,可以对反向代理的服务设置权重,权重越高,表示访问次数越多。如下,表示127.0.0.1:8080/hello、127.0.0.1:8081/hello按照2比1的比例访问
在这里插入图片描述

重新加载Nginx配置,打开浏览器输入http://localhost/hello/,可看到两个反向代理的请求按比例接收

在这里插入图片描述

总结

Nginx是静态资源服务器,可以将前端发送的动态请求转发到后端服务器。除了分发请求,Nginx还提供了一些分发策略,除了上面介绍的轮询、权重,还有以下策略。

ip_hash:依据ip分配方式,这样每个访客可以固定访问一个后端服务;

least_conn:依据最少连接方式,把请求优先分配给连接数少的后端服务;

url_hash:依据url分配方式,这样相同的url会被分配到同一个后端服务;

fair:据响应时间方式,响应时间短的服务将会被优先分配;

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

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

相关文章

【力扣刷题 | 第十三天】

前言: 今天随机进行练习,题型上不会有什么限制,主要还是练习STL算法。 88. 合并两个有序数组 - 力扣(LeetCode) 给你两个按 非递减顺序 排列的整数数组 nums1 和 nums2,另有两个整数 m 和 n ,分…

[RocketMQ] Broker与NameServer的心跳服务源码 (四)

文章目录 1.Broker发送心跳注册请求源码1.1 发送心跳包入口1.2 registerBrokerAll注册broker信息 2.NameServer处理心跳注册请求2.1 处理心跳包入口2.2 NameServer注册broker信息2.2.1 RouteInfoManager介绍2.2.2 registerBroker注册broker 3.NameServer的心跳检测服务3.1 scan…

GIS坐标系统

最新在看GIS的理论知识,坐标系统这块比较抽象,B站上搜到到一个博主的视频,对这块讲解的比较通俗易懂,这里记录一下: 地理坐标系统 地理坐标系统是地球表面空间要素的定位参照系统。地理坐标系统是由经度和维度定义的。…

记录Unity Endless Runner要点

1. Array.IndexOf()查找数组中指定项的索引,如果没找到,就返回-1 2. 如果粒子不是循环播放的,则在粒子播放完毕之后销毁它 if (!m_ParticleSpawned.main.loop)Destroy(m_ParticleSpawned.gameObject, m_ParticleSpawned.main.duration); 3. 检…

普通单目相机标定

前言 这里我们还是以普通相机为例(非鱼眼相机)来进行后续的相关标定操作,再回顾下相机的成像模型如下所示。 已知相机内参(fx,fy,u0,v0),畸变系数[k1,k2,k3,p1,p2],相机外参[R|T]。世界坐标系中点Pw(Xw,Yw,Zw),投影至像素坐标系点p(u,v)的计算过程如下。 1)由世…

操作系统———文件管理

目录 一、初识文件管理1.文件属性2.文件内部数据组织3.文件之间组织4.操作系统向上提供的功能5.文件如何存放在外存6.其他需要由操作系统实现的文件管理功能7.总结 二、文件的逻辑结构1.无结构文件与有结构文件2.有结构文件的逻辑结构2.1顺序文件2.2索引文件2.3索引顺序文件 3.…

ChatGPT 指令知识要点

ChatGPT从入门到精通,一站式掌握办公自动化/爬虫/数据分析和可视化图表制作 全面AI时代就在转角 道路已经铺好了 “局外人”or“先行者” 就在此刻 等你决定1、ChatGPT从入门到精通,一站式掌握办公自动化/爬虫/数据分析和可视( 点击观看完整版本 )https…

Linux下MySQL的安装

文章目录 下载1.选择合适的yum源2.将yum源上传到Linux服务器中 安装1.安装yum源2.使用yum源一键安装MySQL3.安装时常见的问题4.检查安装 启动MySQL登录MySQL方案一方案二 下载 1.选择合适的yum源 在Linux学习阶段我们已经得知,在Linux环境下要安装应用程序必须要通…

【吴恩达deeplearning.ai】基于LangChain开发大语言应用模型(上)

以下内容均整理来自deeplearning.ai的同名课程 Location 课程访问地址 DLAI - Learning Platform Beta (deeplearning.ai) 一、什么是LangChain 1、LangChain介绍 LangChain是一个框架,用于开发由大语言模型驱动的应用程序。开发者相信,最强大的、差异…

面试大数据方向必问的问题:HDFS的读写流程

HDFS读写流程 这个问题是面试大数据分析师必不可少的问题,有不少面试者不能完整的说出 来,所以请务必记住。并且很多问题都是从 HDFS 读写流程中引申出来的。 一、HDFS读流程 Client 向 NameNode 发送 RPC 请求。请求文件 block 的位置;Na…

深入理解深度学习——BERT派生模型:扩大掩码范围SpanBERT

分类目录:《深入理解深度学习》总目录 MLM训练方法是BERT拥有自然语言理解能力的核心训练方法。然而,BERT在预训练过程中挑选掩码词的概率是独立计算的,即BERT掩码词的粒度是最小的,可能是单个词,也可能是一个词的部分…

【连载】经历了十多年的电子开发,回过头来跟大家一起,看穿单片机!

「经历了十多年的单片机开发,站在我现在的高度来回看单片机,可谓望眼欲穿。」 下面振南要介绍的是“单片机的体系架构模型”,是超脱于任何一种具体型号的单片机芯片之上的(我感觉我要成仙),它具有很强的普适…

【Django】图形验证码显示及验证

图形验证码显示及验证 开发项目时,在登陆或者注册功能中为防止脚本恶意破坏系统,故而添加图形验证码。 文章目录 图形验证码显示及验证1 安装配置2 验证码显示及正确性验证3 效果显示 1 安装配置 安装第三方库 pip install django-simple-captcha配置s…

SpringBoot+Vue 的在线考试系统(附源码,数据库,教程)

文章目录 源码下载地址第一章第二章.主要技术第三章第四章 系统设计4.1功能结构4.2 数据库设计4.2.1 数据库E/R图4.2.2 数据库表 第五章 系统功能实现5.1系统登录注册5.2管理员功能模块 源码下载地址 源码下载地址 源码下载地址https://download.csdn.net/download/u013749113…

[python][yolov8][深度学习]将yolov8实例分割成一个类几句代码完成实例分割任务

大家都知道,yolov8目前支持图像分类、目标检测、姿态估计、实例分割,而实例分割一般都是用命令行去预测图片,这个如果要引入pyqt5或着嵌入其他python模块有点麻烦,因此需要封装一个类去预测图像,这样我们可以轻松完成各种实例分割…

Redis实战案例4-缓存更新策略

1. 缓存更新策略 缓存中的数据一致性问题(数据库更新数据,而Redis存的是旧数据) 内存淘汰策略:当内存很充足时,很长时间无法淘汰数据,所以很难控制淘汰,一致性差; 超时剔除&#xff…

【教学类-36】Midjounery生成的四张图片切片成四张小图

作品展示: 把一张正方形图片的四个等大小图切割成四张图片 背景需求 最近在学习ChatGPT的绘画(midjounery AI艺术) 我想给中班孩子找卡通动物图片(黑白边框),打印下来,孩子们练习描边、涂色…

C++11-右值引用与移动语义

右值引用与移动语义 一,右值引用概念右值引用简单例子左值引用与右值引用的比较 二,右值引用的使用场景函数对于其内部局部对象的传值返回insert,push等接口左值引用与右值引用总结 三,完美转发四,新的类功能默认成员函…

【数据分享】1929-2022年全球站点的逐月平均海平面压力数据(Shp\Excel\12000个站点)

气象数据是在各项研究中都经常使用的数据,气象指标包括气温、风速、降水、能见度等指标,说到气象数据,最详细的气象数据是具体到气象监测站点的数据! 对于具体到监测站点的气象数据,之前我们分享过1929-2022年全球气象…