Nginx反向代理的使用场景

Nginx

Vue使用npm命令打包:npm run build

Nginx的定位:主要用于做反向代理,一般都是用它来做前端页面的服务器,动态资源代理到后端服务器。这样做的好处是可以避免跨域请求带来的不便。

我们知道,在前端我们开发的时候,进行了反向代理配置,但那只是开发环境,我们部署的时候,不可能去启动一个webstorm。webstrom是IDE,仅仅是一个开发工具,跟部署没有半点关系。那么我们要解决在开发的时候使用反向代理配置,就只能选择一个具备这种功能服务器进行部署。Nginx就具备这样的功能。

1. Nginx是什么

Nginx是一个高性能的基于HTTP的反向代理的服务器、也是一个基于SMTP和POP3的邮件服务器
其主要功能就类似于Tomcat,对外提供资源共享

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

反向代理(Reverse Proxy)是指以代理服务器来接收客户端请求,然后将请求转发给内部网络上的服务器,并将从服务器上得到的结果返回给客户端

反向代理的作用:

  • 保证内网的安全,阻止web攻击,因为客户端是无法感知真正做事的服务器的存在

  • 负载均衡:代理服务器将接收的请求均分给被代理的服务器

2. Nginx能干什么

Nginx既然是服务器,那么其能做的事就是数据共享,具体体现如下:

  • 虚拟主机

    虚拟主机就是虚拟服务器,就跟Java虚拟机差不多,Java虚拟机虽然是虚拟的,但也具备计算机的功能,也能运行。虚拟主机也一样,虽然不存在,但Nginx可以虚拟出来,对外提供服务

  • 反向代理

    前面已经介绍过

  • 负载均衡

    负载就是服务器承载的负荷,所谓均衡指的是多个服务器之间的负荷对比,单个服务器没有均衡的说法。负载均衡就是指多个服务器之间处理的请求数量要大致相同

  • 动静分离

    动指的是资源会变化,比如从服务器获取的数据。

    静指的就是资源不会变化,比如从服务器获取的html、css、js、图片等。

    动静分离指的是动态资源放在服务器上处理,静态资源放在nginx上处理。

3. Nginx的安装及目录说明

演示

4. Nginx配置

nginx的学习也就是配置文件的学习

4.1 虚拟主机配置
server {
       listen   8888;
       server_name localhost;
       location /{ 
         root d:/demo;
         index index.html;
       }
}
4.2 反向代理配置
# 以/electronic/开始的请求会被代理到另外的服务器访问
location /electronic/ {
   proxy_pass  http://localhost:9000/;
}
4.3 负载均衡配置
upstream electronicServer {
    server localhost:9000;
    server localhost:9001;
}
# 以/electronic/开始的请求会被代理到另外的服务器访问
location /electronic/ {
	proxy_pass  http://electronicServer/;
}
  • 负载均衡—轮询

    upstream electronicServer {
        server localhost:9000;
        server localhost:9001;
    }
    
  • 负载均衡—权重

    upstream electronicServer {
        server localhost:9000 weight=2; #权重越大,被分配处理的请求越多
        server localhost:9001 weight=1;
    }
    
  • 负载均衡—ip_hash

    ip_hash就是通过请求的ip地址,使用hash算法,算出来应该访问那一台服务器,如果是ip地址没变,那么这个请求的服务器 就永远都不会变

    upstream electronicServer {
        ip_hash; # 负载均衡规则
        server localhost:9000;
        server localhost:9001;
    }
    
4.4 动静分离

5. 附录: 匹配规则

  • =

    = 开头表示精确匹配

  • ^~

    ^~ 开头 表示uri以某个常规字符串开头,理解为匹配 url路径即可。nginx不对url做编码,因此请求为/static/20%/aa,可以被规则^~ /static/ /aa匹配到(注意是空格)。

  • ~
    开头表示区分大小写的正则匹配
  • ~*

    ~* 开头表示不区分大小写的正则匹配

  • !~

    !~开头表示区分大小写不匹配

  • !~*

    !~*开头表示不区分大小写不匹配

  • /

    / 通用匹配,任何请求都会匹配到。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值