发布时间:2023-05-23 文章分类:WEB开发, 电脑百科 投稿人:王小丽 字号: 默认 | | 超大 打印

1、Nginx简介

Nginx (engine x) 是一个轻量级、高性能的HTTP和反向代理web服务器,同时也提供了IMAP/POP3/SMTP服务。几乎可以做到 7 * 24 小时不间断运行,即使运行几个月也不需要重新启动,还能在不间断服务的情况下对软件版本进行热更新。性能是 Nginx 最重要的考量,其占用内存少、并发能力强、能支持高达 5w 个并发连接数,最重要的是, Nginx 是免费的并可以商业化,配置使用也比较简单。Nginx提高了网站的响应速度,优化了用户体验,增加了网站的健壮性。

2、Nginx特点

①反向代理

在客户端与服务器端增加过渡服务器,即反向代理。客户端对代理是无感知的,客户端无需配置即可访问,客户端将请求发送至反向代理服务器,反向代理服务器根据策略选择目标服务器获取数据,再返回至客户端。而向客户端暴露的仅是反向代理服务器地址,从而隐藏真实服务器的地址。

②负载均衡

通俗的讲就是将网络压力分担在多个单元。负载均衡建立在现有网络结构之上,提供了一种廉价有效透明的方法扩展网络设备和服务器的带宽、增加吞吐量、加强网络数据处理能力、提高网络的灵活性和可用性。

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

  1. 轮询法(默认方法):

    每个请求按时间顺序逐一分配到不同的后端服务器,如果后端服务器挂掉,能自动剔除。适合服务器配置相当,无状态且短平快的服务使用。也适用于图片服务器集群和纯静态页面服务器集群。

  2. weight权重模式(加权轮询):

    指定轮询几率,weight和访问比率成正比,用于后端服务器性能不均的

    情况。这种方式比较灵活,当后端服务器性能存在差异的时候,通过配置权重,可以让服务器的性能得到充分发挥,有效利用资源。weight和访问比率成正比,用于后端服务器性能不均的情况。权重越高,在被访问的概率越大

  3. ip_hash:

    前两种方式的缺点是:在负载均衡系统中,假如用户在某台服务器上登录了,那么该用户第二次请求的时候可能会重新定位到集群中其他服务器,那么之前的登录信息将会丢失。所以可以采用ip_hash指令解决该问题,如果客户已经访问了某个服务器,当用户再次访问时,会将该请求通过哈希算法,自动定位到该服务器。每个请求按访问ip的hash结果分配,这样每个访客固定访问一个后端服务器,可以解决session的问题。

③动静分离

Nginx的静态处理能力很强,但是动态处理能力不足,因此,在企业中常用动静分离技术。动静分离技术其实是采用代理的方式,在server{}段中加入带正则匹配的location来指定匹配项针对PHP的动静分离:静态页面交给Nginx处理,动态页面交给PHP-FPM模块或Apache处理。在Nginx的配置中,是通过location配置段配合正则匹配实现静态与动态页面的不同处理方式

3、Nginx安装

①官网下载稳定版本

下载地址:http://nginx.org/en/download.html

Nginx环境搭建及前端部署教程(Windows版)

②解压到安装目录

4、Nginx启动

启动方式一:双击nginx.exe,双击后你能看见一个小黑窗口一闪而过。
启动方式二:打开cmd命令窗口,切换到nginx解压目录下,输入命令 nginx.exe ,回车即可

注意:如果安装目录是中文的情况,打开exe文件时会报错。

打开浏览器:浏览器地址栏输入网址 http://localhost:80 回车,出现以下页面说明启动成功!

Nginx环境搭建及前端部署教程(Windows版)

5、Nginx配置监听

nginx的配置文件是conf目录下的nginx.conf,默认配置的nginx监听的端口为80,如果80端口被占用可以修改为未被占用的端口即可。

当修改了nginx的配置文件nginx.conf 时,不需要关闭nginx后重新启动nginx,只需要执行命令 nginx -s reload 即可让改动生效

Nginx环境搭建及前端部署教程(Windows版)

6、Nginx关闭

方法一:(1)输入nginx命令 nginx -s stop(快速停止nginx) 或 nginx -s quit(完整有序的停止nginx),这两个命令的区别在于nginx -s stop是快速停止Nginx,而nginx -s quit是有序的停止Nginx,前者可能会导致数据没有完全保存;

方法二:(2)使用taskkill taskkill /f /t /im nginx.exe

方法三:任务管理器杀死所有Nginx进程

7、Nginx常用命令

nginx -s reopen #重启Nginx
nginx -s reload #重新加载Nginx配置文件,然后以优雅的方式重启Nginx
nginx -s stop #强制停止Nginx服务
nginx -s quit #优雅地停止Nginx服务(即处理完所有请求后再停止服务)
nginx -t #检测配置文件是否有语法错误,然后退出
nginx -?,-h #打开帮助信息
nginx -v #显示版本信息并退出
nginx -V #显示版本和配置选项信息,然后退出
nginx -t #检测配置文件是否有语法错误,然后退出
nginx -T #检测配置文件是否有语法错误,转储并退出
nginx -q #在检测配置文件期间屏蔽非错误信息
nginx -p prefix #设置前缀路径(默认是:/usr/share/nginx/)
nginx -c filename #设置配置文件(默认是:/etc/nginx/nginx.conf)
nginx -g directives #设置配置文件外的全局指令
killall nginx #杀死所有nginx进程

8、Nginx前端部署

Nginx环境搭建及前端部署教程(Windows版)

①以上面项目为例,复制前端项目路径

F:\learnany\springboot-ehr\ehr-admin

②配置nginx.conf

打开nginx文件夹下的conf文件夹下的nginx.conf文件。

找到location下的root一行,将html替换为静态网页的路径保存即可。

Nginx环境搭建及前端部署教程(Windows版)

③启动Nginx即可

浏览器访问:http://localhost:80

Nginx环境搭建及前端部署教程(Windows版)