使用nginx反向代理简单实现服务分发

Nginx负载均衡-将请求集中在一个服务器上的请求分发到多个服务器上 一,负载均衡概述 增加服务器的数量,将请求分发到各个服务器上。将原来请求集中在一个服务器上的请求分发到多个服务器上。将负载分发到不同的服务器上。这就是负债均衡。 二,前期准备: 1,一个nginx服务器。两台tomcat服务器,一台开启8080端口 一台开启8081端口,前文反向代理已经有详细步骤。 2,在两台tomcat webapps文件夹中建立 相同的文件夹 和测试文件 ,进行测试访问页面是否能成功访问 三:配置负债均衡 配置nginx.conf文件: (尴尬,... 阅读详情

我们在实际开发中后端其实经常会有很多的微服务,因此接口地址有很多,但是前端中只有一个api地址的配置位置。
这时我们可以使用nginx反向代理让不同的api路径分发到对应的服务器中

要使用nginx我们需要先安装到我们的电脑上,nginx有Linux版本的也有Windows版本的,Linux版的功能相对来说会更加强大一些。这里我们用Windows版做一下演示

直接到官网下载Windows版的压缩包->下载链接
下载好之后直接解压缩到电脑中,进入文件夹中输入cmd回车
在这里插入图片描述
在这里插入图片描述
输入命令nginx.exe 回车便可以启动nginx服务
nginx.exe -s stop 命令停止服务
要真正使用nginx服务需要配置conf文件夹下面的nginx.conf文件
在这里插入图片描述
配置的内容需要写在http{}之中

配置内容如下
在这里插入图片描述

把前端的BASE_API改成nginx对应的9001端口
在这里插入图片描述
这样前端发送请求时会先去访问nginx,然后nginx根据请求中对应的路径自动给我们进行服务分发

此时我们去前端发送一下请求测试一下
在这里插入图片描述
可以发现Request URL的端口号是9001而不是直接去请求后端服务器的8001端口

nginx配置同一个端口转发多个项目 阅读详情

相关推荐

安装文件预览kkfileView

1.官网 https://kkfileview.keking.cn/zh-cn/docs/production.html 2.基于OpenOffice实现文件预览 3.使用root账号 4.安装 kkfileiew。使用root账号 当报未找到命令是 赋予install.shstartup.sh shutdown.sh可执行权限 右击xxx.sh文件,打开属性———>权限——>勾选允许作为程序执行文件 $ cd /data/project/evaluate/kkfilevie..

weixin_35815479的博客 3447

nginx的upstream目前支持5种方式的分配

nginx的upstream目前支持5种方式的分配 1、轮询(默认) 每个请求按时间顺序逐一分配到不同的后端服务器,如果后端服务器down掉,能自动剔除。 2、weight 指定轮询几率,weight和访问比率成正比,用于后端服务器性能不均的情况。 例如: upstream bakend { server 192.168.0.14 weight=10; ...

White_Lee的专栏 675

Nginx反向代理

关于正向代理和反向代理,正向代理代理的对象是客户端,反向代理代理的服务端,这是两者之间最大的区别。

shujufenxishi的博客 1529

nginx常见分发算法实现

根据流量类型的不同,选择合适的均衡算法;常用的均衡算法: 轮询、加权轮询、随机、ip_hash、 url的hash分发、根据机器性能实时计算分发。

勿在浮沙筑高台 925

Android逆向实战:通过smali/baksmali动态注入DEX逻辑

本文详细介绍了在无源码条件下对Android应用进行动态逻辑注入的实战方法。通过使用smali和baksmali工具对DEX文件进行反编译、修改与重打包,实现在目标方法中插入自定义代码(如日志打印),并分享了定位目标、处理寄存器、避免常见错误的实用技巧与避坑指南。

weixin_29008691的博客 362

标签传播算法LPA:半监督学习解决标注数据不足的完整实战指南

在机器学习实际工程中,标注数据稀缺往往是制约模型性能的核心瓶颈。半监督学习提供了一条利用海量未标注数据来增强模型泛化能力的有效路径,其中标签传播算法(Label Propagation Algorithm, LPA)因其直观的图结构和优雅的数学原理而备受关注。LPA通过将样本映射为图中的节点,以相似度作为边权重,让已知标签沿着图结构不断扩散,从而实现对未知样本的预测。其背后基于聚类假设与流形假设,能在低标注率场景下显著缓解过拟合问题,提升分类准确率。该技术在文本分类、金融风控、图像识别等存在大量无标注数据的

weixin_29056781的博客 239

Nginx的反向代理与负载均衡

正向代理服务器是一个位于客户端和原始服务器(origin server)之间的服务器,为了从原始服务器取得内容

qq_49511498的博客 613

Unity URP半透明物体渲染避坑指南:双面渲染与深度写入的实战技巧

本文深入探讨了Unity URP中半透明物体自交叠渲染问题的核心根源与解决方案。针对模型自身交叠导致的排序错误,文章提供了双面渲染与深度写入两种实战技巧,详细分析了其实现原理、性能开销及适用场景,帮助开发者根据项目需求选择最优方案,有效提升玻璃、水体等材质的视觉表现。

sunny的博客 545

Nginx反向代理和负载均衡实战

访问nginx,第一次访问会打开第一台服务器的tomcat页面,第二次访问第二台tomcat页面。准备一台服务器,安装nginx,未配置时,访问nginx,打开了index.html页面。再次访问nginx,前两次请求会访问到第一台服务器,第二次请求会访问到第二台服务器。配置upstream name{}这里name随便起,为集群的名字。这里配置了两台服务器,默认是加权轮询,默认权重都是1。在location里填写proxy_pass。准备两台服务器,每台安装tomcat。修改配置,将第一台的权重改为2。

seanyang_的博客 1234

uniapp 记录运动轨迹 开发_智能手环穿戴设备APP开发解决方案

智能手环是一种穿戴式智能设备,是目前备受关注的科技产品。目前智能手环具有的功能有记录日常生活中的运动数据、移动轨迹,定位等,有些还可以进行睡眠质量的检测,并将这些数据传送至移动端如手机、平板等,可对数据进行分析,指导健康生活的作用。而智能手环开发方案就是将这些功能实现,将算法烧录到主控板上。智能手环都有哪些功能  1、记录运动数据  对于喜欢健身的用户来说,智能手环记录的运动数据功能...

weixin_39678493的博客 1764

QT串口通信控制LED上位机开发教程

串口通信是嵌入式系统与PC端交互的基础技术,通过UART协议实现设备间的数据传输。QT框架提供了跨平台的串口编程支持,结合其GUI模块可以快速开发上位机控制程序。在工业自动化和物联网领域,这种上下位机架构广泛应用于设备监控和控制场景。本案例展示了如何使用QT的SerialPort模块实现LED控制功能,包含串口参数配置、指令发送等核心功能实现,为嵌入式GUI开发提供实践参考。

weixin_42598278的博客 582

【Nginx】什么是Nginx?

文章目录什么是Nginx?正向代理和反向代理Nginx能干什么?①反向代理②负载均衡Nginx负载均衡功能的两种策略:1)内置策略① 轮询② 加权轮询③ Ip hash2)扩展策略③动静分离为什么使用Nginx? 什么是Nginx? Nginx就是一个高性能的HTTP 和 反向代理服务器。 高性能:就是响应更快、并发量更高 反向代理:就是我们希望有一个服务器帮助我们转发和控制后面其他服务器的请求; 那到底什么是反向代理? 这里我们先了解一下什么是正向代理 正向代理和反向代理 正向代理: 代理客户端 像VPN

MS_SONG的博客 1971

RoCE Overlay

1. RoCE over vxlan 配置vxlan封装的RoCE流量,可以在PF switchdev模式下利用ovs bridge,或直接设置tc rules。下面将基于一对NIC互联的服务器介绍两种方式的使用,并分析封装后的数据包结构。 1.1. 基本配置 - VF与switchdev 首先创建VF,并为两个host设置PF的switchdev模式。使用ovs bridge或tc rules,...

sunshuying1010的博客 3058

keepalived高可用与nginx反向代理实战

1.环境 2.查看nginx与keepalived的配置 2.1查看lb-01主节点配置 2.2查看lb-02备节点配置 3.启动nginx+keepalived 4.测试nginx反向代理 4.1lb-01主节点测试nginx反向代理 4.2lb-02备节点测试nginx反向代理 5.测试keepalived 5.1关掉主节点的keepalived后,查看备节点是否接管 5.2开启主...

南风喃的博客 544

基于物联网设计的蜂箱智能监测系统设计

为解决传统养蜂业依赖人工、管理效率低下、干扰蜂群等问题,本项目设计并实现了一套基于物联网(IoT)的蜂箱智能监测系统。

679

基于ART算法和SIRT算法的超声CT反演及MATLAB代码实现

在超声CT中,反演算法起着至关重要的作用,它通过从测量数据中恢复出目标物体的内部结构。本文将介绍基于ART算法(Algebraic Reconstruction Technique)和SIRT算法(Simultaneous Iterative Reconstruction Technique)的超声CT反演方法,并提供相应的MATLAB代码实现。本文介绍了基于ART算法和SIRT算法的超声CT反演方法,并提供了相应的MATLAB代码示例。基于ART算法和SIRT算法的超声CT反演及MATLAB代码实现。

2301_79326510的博客 566

nginx反向代理负载均衡实战

nginx负载均衡,代理服务器长连接

大勺哥的博客 310

深度学习工具包 DeepLearningToolbox

深度学习工具包Deprecation notice.-----This toolbox is outdated and no longer maintained.There are much better tools available for deep learning than this toolbox, e.g. [Theano](http://deeplearning.net/software/theano/), [torch](http://torch.ch/) or [tensorflow](http://www.tensorflow.org/)I would suggest you use one of the tools mentioned above rather than use this toolbox.Best, Rasmus.DeepLearnToolbox================A Matlab toolbox for Deep Learning.Deep Learning is a new subfield of machine learning that focuses on learning deep hierarchical models of data.It is inspired by the human brain's apparent deep (layered, hierarchical) architecture.A good overview of the theory of Deep Learning theory is[Learning Deep Architectures for AI](http://www.iro.umontreal.ca/~bengioy/papers/ftml_book.pdf)For a more informal introduction, see the following videos by Geoffrey Hinton and Andrew Ng.* [The Next Generation of Neural Networks](http://www.youtube.com/watch?v=AyzOUbkUf3M) (Hinton, 2007)* [Recent Developments in Deep Learning](http://www.youtube.com/watch?v=VdIURAu1-aU) (Hinton, 2010)* [Unsupervised Feature Learning and Deep Learning](http://www.youtube.com/watch?v=ZmNOAtZIgIk) (Ng, 2011)If you use this toolbox in your research please cite [Prediction as a candidate for learning deep hierarchical models of data](http://www2.imm.dtu.dk/pubdb/views/publication_details.php?id=6284)```@MASTERSTHESIS\{IMM2012-06284, author = "R. B. Palm", title = "Prediction as a candidate for learning deep hierarchical models of data", year = "2012",}```Contact: rasmusbergpalm at gmail dot comDirectories included in the toolbox-----------------------------------`NN/` - A library for Feedforward Backpropagation Neural Networks`CNN/` - A library for Convolutional Neural Networks`DBN/` - A library for Deep Belief Networks`SAE/` - A library for Stacked Auto-Encoders`CAE/` - A library for Convolutional Auto-Encoders`util/` - Utility functions used by the libraries`data/` - Data used by the examples`tests/` - unit tests to verify toolbox is workingFor references on each library check REFS.mdSetup-----1. Download.2. addpath(genpath('DeepLearnToolbox'));Example: Deep Belief Network---------------------```matlabfunction test_example_DBNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit RBM and visualize its weightsrand('state',0)dbn.sizes = [100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);figure; visualize(dbn.rbm{1}.W'); % Visualize the RBM weights%% ex2 train a 100-100 hidden unit DBN and use its weights to initialize a NNrand('state',0)%train dbndbn.sizes = [100 100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);%unfold dbn to nnnn = dbnunfoldtonn(dbn, 10);nn.activation_function = 'sigm';%train nnopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.10, 'Too big error');```Example: Stacked Auto-Encoders---------------------```matlabfunction test_example_SAEload mnist_uint8;train_x = double(train_x)/255;test_x = double(test_x)/255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit SDAE and use it to initialize a FFNN% Setup and train a stacked denoising autoencoder (SDAE)rand('state',0)sae = saesetup([784 100]);sae.ae{1}.activation_function = 'sigm';sae.ae{1}.learningRate = 1;sae.ae{1}.inputZeroMaskedFraction = 0.5;opts.numepochs = 1;opts.batchsize = 100;sae = saetrain(sae, train_x, opts);visualize(sae.ae{1}.W{1}(:,2:end)')% Use the SDAE to initialize a FFNNnn = nnsetup([784 100 10]);nn.activation_function = 'sigm';nn.learningRate = 1;nn.W{1} = sae.ae{1}.W{1};% Train the FFNNopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.16, 'Too big error');```Example: Convolutional Neural Nets---------------------```matlabfunction test_example_CNNload mnist_uint8;train_x = double(reshape(train_x',28,28,60000))/255;test_x = double(reshape(test_x',28,28,10000))/255;train_y = double(train_y');test_y = double(test_y');%% ex1 Train a 6c-2s-12c-2s Convolutional neural network %will run 1 epoch in about 200 second and get around 11% error. %With 100 epochs you'll get around 1.2% errorrand('state',0)cnn.layers = { struct('type', 'i') %input layer struct('type', 'c', 'outputmaps', 6, 'kernelsize', 5) %convolution layer struct('type', 's', 'scale', 2) %sub sampling layer struct('type', 'c', 'outputmaps', 12, 'kernelsize', 5) %convolution layer struct('type', 's', 'scale', 2) %subsampling layer};cnn = cnnsetup(cnn, train_x, train_y);opts.alpha = 1;opts.batchsize = 50;opts.numepochs = 1;cnn = cnntrain(cnn, train_x, train_y, opts);[er, bad] = cnntest(cnn, test_x, test_y);%plot mean squared errorfigure; plot(cnn.rL);assert(er<0.12, 'Too big error');```Example: Neural Networks---------------------```matlabfunction test_example_NNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);% normalize[train_x, mu, sigma] = zscore(train_x);test_x = normalize(test_x, mu, sigma);%% ex1 vanilla neural netrand('state',0)nn = nnsetup([784 100 10]);opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samples[nn, L] = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.08, 'Too big error');%% ex2 neural net with L2 weight decayrand('state',0)nn = nnsetup([784 100 10]);nn.weightPenaltyL2 = 1e-4; % L2 weight decayopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex3 neural net with dropoutrand('state',0)nn = nnsetup([784 100 10]);nn.dropoutFraction = 0.5; % Dropout fraction opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex4 neural net with sigmoid activation functionrand('state',0)nn = nnsetup([784 100 10]);nn.activation_function = 'sigm'; % Sigmoid activation functionnn.learningRate = 1; % Sigm require a lower learning rateopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex5 plotting functionalityrand('state',0)nn = nnsetup([784 20 10]);opts.numepochs = 5; % Number of full sweeps through datann.output = 'softmax'; % use softmax outputopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex6 neural net with sigmoid activation and plotting of validation and training error% split training data into training and validation datavx = train_x(1:10000,:);tx = train_x(10001:end,:);vy = train_y(1:10000,:);ty = train_y(10001:end,:);rand('state',0)nn = nnsetup([784 20 10]); nn.output = 'softmax'; % use softmax outputopts.numepochs = 5; % Number of full sweeps through dataopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, tx, ty, opts, vx, vy); % nntrain takes validation set as last two arguments (optionally)[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');```[![Bitdeli Badge](https://d2weczhvl823v0.cloudfront.net/rasmusbergpalm/deeplearntoolbox/trend.png)](https://bitdeli.com/free "Bitdeli Badge")

nginx+wcf负载均衡实验

准备资料 1、三台服务器,其中两台服务器(192.168.0.27、192.168.0.28)在IIS部署WCF服务,一台服务器(192.168.0.30)安装nginx; 2、http://nginx.org/en/download.html下载nginx; 3、所有的客户端Client的Hosts文件中增加映射:192.168.0.30 cluster.com. 安装配置nginx ...

weixin_34357928的博客 454

lwip-2.0.3

lwip是瑞典计算机科学院(SICS)的Adam Dunkels 开发的一个小型开源的TCP/IP协议栈。实现的重点是在保持TCP协议主要功能的基础上减少对RAM 的占用。

复分析 阿尔福斯(Ahlfors) 第三版答案 英文

答案分为十章,有部分习题没有答案,全英文复分析阿尔福斯(Ahlfors) 第三版答案

Nginx简单了解

为什么要是用 为什么要是用 nginx主要是因为三个方面 反向代理,负载均衡,动静分离 反向代理 客户端不需要任何配置就能访问,只需要将请求发送到反向代理服务器,由反向代理服务器去选择目标服务器,获取数据后再返回给客户端。对外就一个服务器,暴露的是反向代理服务器地址,隐藏了真实服务器IP地址。代理对象是服务端,不知道客户端是谁。 负载均衡 将原先请求单个服务器的情况改为将请求分发到多个服务器上,将负载分发到多个服务器上,也就是我们讲的负载均衡 动静分离 为了加快网站的解析速度,可以把动态页面

qq_44620773的博客 3055

VB摄像头监控

该VB模块可对摄像头捕获的画面进行录像等,可在创建的窗口进行控制

nginx + uwsgi+web.py

Nginx是俄罗斯人Igor Sysoev 编写的一款高性能的HTTP和反向代理服务器。其采用epoll 的机制,官方宣传可支持50000个并发。 下面介绍nginx 作为反向代理负载均衡服务器和HTTP服务器的配置用法。 下图为nginx 作为反向代理均衡服务器,和HTTP 代理服务器的简单配置用法。 upstream frontends 中列出所有服务器地址,nginx 自动均衡分发请求

fanwb1985的专栏 1406

Nginx配置——反向代理

Nginx

scorpio的博客 31万+

Nginx反向代理配置

nginx反向代理配置

weixin_42751488的博客 9万+

nginx反向代理

nginx反向代理1.正向代理与反向代理的概念nginx反向代理一对一的反向代理反向代理(访问不同路径,转发至不同的tomcat)location指令说明 1.正向代理与反向代理的概念 正向代理:客户端想要访问一个服务器,但是它可能无法直接访问这台服务器,这时候这可找一台可以访问目标服务器的另外一台服务器,而这台服务器就被当做是代理人的角色 ,称之为代理服务器,于是客户端把请求发给代理服务器,由代理服务器获得目标服务器的数据并返回给客户端。客户端是清楚目标服务器的地址的,而目标服务器是不清楚来自客户端,它只

qq_42418169的博客 1万+

Nginx-05-nginx 反向代理是什么?windows 下如何配置使用 nginx

nginx 是一种高性能的反向代理服务器软件,它支持多种协议,包括 HTTP、HTTPS、SMTP、POP3 等,可以用于代理 Web 应用、电子邮件系统、FTP 服务器等各种网络服务。此外,反向代理还可以通过负载均衡来提高服务器的性能和可靠性,将请求分发到不同的后端服务器上,避免单个服务器负载过高而导致服务不可用。综上所述,反向代理是一个非常有用的服务器架构模式,可以提高服务器的性能、可用性和安全性,并为服务器的功能扩展提供了便利。缓存:反向代理可以缓存一些经常请求的资源,从而减少后端服务器的负载。

1998

在Docker容器中使用Nginx实现反向代理

文章目录什么是代理服务器?为什么要使用代理服务器?什么是正向代理?什么是反向代理?反向代理有哪些主要应用?使用 Nginx 反向代理 Tomcat需求启动 Tomcat 容器配置 Nginx 反向代理 什么是代理服务器? 代理服务器,客户机在发送请求时,不会直接发送给目的主机,而是先发送给代理服务器,代理服务接受客户机请求之后,再向主机发出,并接收目的主机返回的数据,存放在代理服务器的硬盘中,再发...

七年蝉 4679

Nginx 反向代理

Nginx 反向代理。

mh17680313750的博客 7459
上一篇: 阿里云easy-excel的使用(springboot整合)
下一篇: Invalid bound statement (not found)解决
Kk_Chosen1
博客等级 码龄7年 15粉丝 78原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值