nginx部署前端项目 (Windows版)

一: nginx介绍

1.1:nginx是什么

  1. nginx 是一个高性能的HTTP和反向代理web服务器,同时也提供了IMAP/POP3/SMTP服务。
  2. nginx 是高性能的 HTTP 和反向代理的web服务器,处理高并发能力是十分强大的,能经受高负 载的考验,支持高达 50,000 个并发连接数。
  3. nginx支持热部署,启动简单,可以做到7*24不间断运行。几个月都不需要重新启动。

1.2:nginx的反向代理

比如:我们打开一个百度的时候,百度内部肯定不是只有一台服务器,它的内部有很多台服务器,那我们进行访问的时候,因为服务器中间session不共享,那我们是不是在服务器之间访问需要频繁登录,那这个时候百度搭建一个过渡服务器,对我们是没有任何影响的,我们是登录一次,但是访问所有,这种情况就是 反向代理。对我们来说,客户端对代理是无感知的,客户端不需要任何配置就可以访问,我们只需要把请求发送给反向代理服务器,由反向代理服务器去选择目标服务器获取数据后,再返回给客户端,此时反向代理服务器和目标服务器对外就是一个服务器,暴露的是代理服务器地址,隐藏了真实服务器的地址

1.3:nginx的负载均衡

现有的请求使服务器压力太大无法承受,所有我们需要搭建一个服务器集群,去分担原先一个服务器所承受的压力,那现在我们有ABCD等等多台服务器,我们需要把请求分给这些服务器,但是服务器可能大小也有自己的不同,所以怎么分?如何分配更好?又是一个问题。

nginx给出来三种关于负载均衡的方式:

  1. 轮询法(默认方法):
    每个请求按时间顺序逐一分配到不同的后端服务器,如果后端服务器down掉,能自动剔除。
    适合服务器配置相当,无状态且短平快的服务使用。也适用于图片服务器集群和纯静态页面服务器集群。
  2. weight权重模式(加权轮询):
    指定轮询几率,weight和访问比率成正比,用于后端服务器性能不均的情况。这种方式比较灵活,当后端服务器性能存在差异的时候,通过配置权重,可以让服务器的性能得到充分发挥,有效利用资源。weight和访问比率成正比,用于后端服务器性能不均的情况。权重越高,在被访问的概率越大
  3. ip_hash:
    上述方式存在一个问题就是说,在负载均衡系统中,假如用户在某台服务器上登录了,那么该用户第二次请求的时候,因为我们是负载均衡系统,每次请求都会重新定位到服务器集群中的某一个,那么已经登录某一个服务器的用户再重新定位到另一个服务器,其登录信息将会丢失,这样显然是不妥的。
    我们可以采用ip_hash指令解决这个问题,如果客户已经访问了某个服务器,当用户再次访问时,会将该请求通过哈希算法,自动定位到该服务器。每个请求按访问ip的hash结果分配,这样每个访客固定访问一个后端服务器,可以解决session的问题。

1.4:nginx的动静分离

nginx的静态处理能力很强,但是动态处理能力不足,因此,在企业中常用动静分离技术。动静分离技术其实是采用代理的方式,在server{}配置中加入带正则匹配的location来指定匹配项的动静分离:静态页面交给 nginx 处理。
将前端项目打包后的静态资源文件部署,就是动静分离的一种。

二: nginx下载

nginx-windows下载地址

在这里插入图片描述

下载解压后目录结构:

config:nginx的配置文件,其中nginx.conf是nginx主配置文件,它包含了所有全局的nginx配置项。
contrib: 提供了nginx语法支持脚本。
docs:存放 nginx 服务器的主要文档资料。
html:nginx默认静态资源路径。
logs:nginx记录访问成功与失败日志。
temp:用于缓存用户上传或代理服务器接收的数据。
nginx.exe:windows启动nginx可执行文件。

在这里插入图片描述

三: 打包vue文件

找个项目打包一下,打包后会有一个dist文件,我这里直接移动到了D盘下
npm run build

在这里插入图片描述

四: nginx.conf配置文件

# 工作进程的数量
worker_processes  1; # 与worker_connections乘积表示实际处理事件的总数
events {
    worker_connections  1024;# 每个工作进程连接数
}

http {
    include       mime.types; # 文件扩展名与文件类型映射表
    default_type  application/octet-stream; # 默认文件类型
    sendfile        on; # 开启文件传输模式
    #tcp_nopush     on;
    #keepalive_timeout  0;
    keepalive_timeout  65;
    gzip  on;  # gzip模块设置,设置是否开启gzip压缩输出
    
    server {
        listen       80; #访问端口号
        server_name  localhost;  #访问地址

        location / {
            root   D:\dist;  # 访问目录
            index  index.html index.htm;
        }
        error_page   500 502 503 504  /50x.html;
        location = /50x.html {
            root   html;
        }
    }
}

五: 启动nginx

cmd命令行输入启动服务命令 start nginx.exe;或者双击 nginx.exe 可执行文件

在这里插入图片描述

运行后是没有任何提示的,需要在 nginx/logs 目录查看是否有 nginx.pid 文件来确认是否启动成功。如果只有 error.log 文件则需要查看一下详细错误去进行解决。

在这里插入图片描述

最后通过 nginx.conf 中配置 端口号以及访问地址就可以访问到打包后的程序了。

在这里插入图片描述

六: nginx其他命令

启动服务: start nginx.exe
停止服务: nginx -s stop
完整有效停止服务: nginx -s quit
热加载: nginx -s reload

在这里插入图片描述

  • 20
    点赞
  • 17
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

狗头程序员|

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值