Nginx笔记

news/2024/12/1 0:38:33/

Nginx

Nginx是一个高性能的HTTP和反向代理服务器,也是一个IMAP/POP3/SMTP代理server。其特点是占有内存少。并发能力强,其并发能力确实在同类型的网页server中表现较好。

Nginx的作用

  • 反向代理:

正向代理

        正向代理是一个位于客户端和原始服务器之间的代理服务器,为了从原始服务器取得内容,客户端向代理服务器发送一个请求并指定目标原始服务器。然后代理服务器向原始服务器转交请求并将获得的内容返回给客户端。

        主要区别: 屏蔽客户端信息

反向代理

        客户端向反向代理的命名空间中的内容发送普通请求,接着反向代理将推断向何处(原始服务器)转交请求,并将获得的内容返回给客户端。

        主要区别: 屏蔽内网服务器信息

  • 负载均衡:

        当请求过多,单个服务器难以负荷时,我们增加服务器的数量,然后将请求分发到各个服务器上,将原先请求集中到单个服务器上的情况改为将请求分发到多个服务器上。

        

  • 动静分离:

为了加快网站的解析速度,可以吧动态页面和静态页面由不同的服务器来解析,加快解析速度,降低原来单个服务器的压力 

 Nginx的配置

# 进入nginx目录
cd /mydata/nginx/conf/

 nginx.conf  文件为主配置文件

nginx.conf配置文件结构

nginx.config文件对应的http块

 include /etc/nginx/conf.d/*.conf;

主要是配置server块

意思是 载入了 该路径下的.conf文件

所以我们需要去conf.d文件夹下新建配置

 新建gulimall.conf配置文件

修改server_name 代表 接收以gulimall.com为host头的请求

        注意 gulimall.com 映射的域名是虚拟机的ip

修改location  代表 将以gulimall.com为host头的请求转发给          http://192.168.56.1:10000(localhost) 

 整体流程

 但是之前的配置直接转发到各个微服务 需要转发给网关

在http块配置上游服务器

 代表本机的网关地址 (localhost)如果有多个网关 可以配置多个server

 将gulimall.com 为host的请求转发给上流服务器(网关)

配置网关

- id: gulimall_host_routeuri: lb://gulimall-productpredicates:- Host=**.gulimall.com

以gulimall为host的请求负载均衡给gulimall-product

但是会失败

nginx反向代理host信息丢失问题

Nginx反向代理给网关的时候 会丢失请求的host的信息(实际上不止这一个)

所以网关断言匹配不上

解决 server块新增proxy_set_header Host $host;配置

 

Nginx中负载均衡的分配方式

(1)轮询(默认)

每个请求按照时间顺序逐一分配到不同后端服务器中去,挂了的服务器会被自动剔除。

(2)weight

weight代表权重,默认为1,权重越高,被分配的客户端请求会越多。

upstream myserver{server 1.12.34.101:8080 weight=10;server 1.12.34.101:8081 weight=10;
}

(3)ip_hash

每个请求按访问ip的hash结果分配,这样每个访客固定访问一个后端服务器,可以解决session的问题。

upstream myserver{ip_hash;server 1.12.34.101:8080;server 1.12.34.101:8081;
}

(4)fair

按后端服务器的响应时间来分配请求,响应时间短的优先分配。

upstream myserver{server 1.12.34.101:8080;server 1.12.34.101:8081;fair;
}

动静分离的实现 

/static/ 开头的路径 都映射到 /usr/share/nginx/html 下的静态资源


http://www.ppmy.cn/news/626448.html

相关文章

Tensorflow 2.0 中模型构建的三种方式

序列 序列模型是layer-by-layer的,它是最简单的定义模型的方法,但是有几个不足: • 不能够共享某一层 • 不能有多个分支 • 不能有多个输入 这种结构的经典网络比如有:Lenet5,AlexNet,VGGNet #导入必备包 import tensorflow as tf#开始定义模型 def shallownet_sequen…

区块链概述

一、什么是区块链 区块链是一个信息技术领域的术语。区块链是借由密码学串接以保护内容的自增长的交易记录列表(又称区块)。每一个区块包含了前一个区块的哈希值、本区块的时间戳记以及交易数据(通常用默克尔树结构的哈希值表示)…

怎样能显示计算机的配置高低,电脑配置怎么看高低,电脑配置知识大全

电脑配置怎么看高低,电脑配置知识大全 来源:互联网/编辑:佚名/时间:2020-05-13 在手机上看 扫一扫进入手机端 对于许多新手来说,如何检查其计算机配置的质量是一个更加棘手的问题,有时仍然存在一些误解&…

windows7将整个计算机显示屏看作是,解决方案:Win7修改welcome_如何设置多屏幕输出计算机,每个屏幕独立工作...

百度知道有关Windows的计算机/网络操作系统/系统故障 预算约为10,000,并且需要三个屏幕. 我在中关村看到,华硕有一个2399元的显卡,支持4个屏幕,甚至GTX980也支持3个屏幕,但是980有点太贵了. 请给我一些建议&#xff0c…

Qt控件(按钮、单选、复选、list、tree、table)

一、布局 工具栏图标文字一起显示&#xff0c;背景透明。 二、代码 widget.ui <?xml version"1.0" encoding"UTF-8"?> <ui version"4.0"><class>Widget</class><widget class"QWidget" name"Widg…

PCL使用VoxelGrid出现Segmentation fault (core dumped)的解决办法

今天调个程序&#xff0c;需要对一个点云进行下采样处理&#xff0c;本来很简单的事情&#xff0c;但是总在函数退出的时候出现Segmentation fault&#xff0c;之前是将其独立编译为一个二进制文件&#xff0c;下采样后的点云保存后再退出。这样就算出错也没事&#xff0c;反正…

vscode python 自定义函数无法跳转到定义处,且定义处无法展示所有调用该函数的位置

问题描述 在vscode中编写python代码&#xff0c;在自定义类的forward函数中调用该类的成员函数&#xff0c;但在调用处无法通过ctrl鼠标左键直接跳转到该成员函数的定义中&#xff0c;系统显示找不到函数声明。同时&#xff0c;在该函数的定义处无法通过ctrl鼠标左键展示项目中…

FPS(CF、CS GO、PUBG、APEX、瓦罗兰) AI YOLOV5 自瞄 模型 权重

YOLOV5的各种AI自瞄权重&#xff0c;有需要的联系 联系方式 如果对上面的资源有需要&#xff0c;私聊或者留言或者进入下面项目了解详细内容 联系方式 加我时&#xff0c;请备注所需要的权重 https://gitee.com/wcx895278175/cf-ai-yolov5-self-aiming