Nginx快速入门

目录

[1. 概述](#1. 概述)

[2. 反向代理](#2. 反向代理)

[3. 负载均衡](#3. 负载均衡)

[3.1 轮询法(默认方法)](#3.1 轮询法(默认方法))

[3.2 weight权重模式(加权轮询)](#3.2 weight权重模式(加权轮询))

[3.3 ip_hash](#3.3 ip_hash)

[4. 下载安装](#4. 下载安装)

[5. 启动关闭](#5. 启动关闭)

[5.1 启动Nginx](#5.1 启动Nginx)

[5.2 配置监听](#5.2 配置监听)

[5.3 关闭Nginx](#5.3 关闭Nginx)


1. 概述

Nginx是俄罗斯人Igor Sysoev编写的一款高性能 HTTP 和反向代理服务器。Nginx选择了epoll和kqueue作为网络I/O 模型,在高连接并发的情况下,Nginx是Apache服务器不错的替代品,它能够支持高达50000个并发连接数的响应,运行稳定,且内存、CPU等系统资源消耗非常低。

2. 反向代理

首先,看一张关于正向代理和反向代理的图片

在这里,用通俗易懂的方式解释一下:

  • 正向代理: 我们平时需要访问国外的浏览器是不是很慢,比如我们要看推特,看GitHub等等。我们直接用国内的服务器无法访问国外的服务器,或者是访问很慢。所以我们需要在本地搭建一个服务器来帮助我们去访问。那这种就是正向代理。(浏览器中配置代理服务器)

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

3. 负载均衡

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

负载均衡(Load Balance)其意思就是分摊到多个操作单元上进行执行,例如Web服务器、FTP服务器、企业关键应用服务器和其它关键任务服务器等,从而共同完成工作任务。

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

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

3.1 轮询法(默认方法)

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

3.2 weight权重模式(加权轮询)

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

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

3.3 ip_hash

  • 上述方式存在一个问题就是说,在负载均衡系统中,假如用户在某台服务器上登录了,那么该用户第二次请求的时候,因为我们是负载均衡系统,每次请求都会重新定位到服务器集群中的某一个,那么已经登录某一个服务器的用户再重新定位到另一个服务器,其登录信息将会丢失,这样显然是不妥的。

  • 我们可以采用ip_hash指令解决这个问题,如果客户已经访问了某个服务器,当用户再次访问时,会将该请求通过哈希算法,自动定位到该服务器。每个请求按访问ip的hash结果分配,这样每个访客固定访问一个后端服务器,可以解决session的问题。

4. 下载安装

官网( http://nginx.org/en/ ) 下载后解压即可

5. 启动关闭

5.1 启动Nginx

  • 启动方式一:双击nginx.exe,双击后你能看见一个小黑窗口一闪而过

  • 启动方式二:打开cmd命令窗口,切换到nginx解压目录下,输入命令 nginx.exe ,回车即可

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

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

5.2 配置监听

  • nginx的配置文件是conf目录下的nginx.conf,默认配置的nginx监听的端口为80,如果80端口被占用可以修改为未被占用的端口即可。当我们修改了nginx的配置文件nginx.conf 时,不需要关闭nginx后重新启动nginx,只需要执行命令 nginx -s reload 即可让改动生效

5.3 关闭Nginx

  • 如果使用cmd命令窗口启动nginx, 关闭cmd窗口是不能结束nginx进程的,可使用两种方法关闭nginx

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

  • 方法二:使用taskkill taskkill /f /t /im nginx.exe

  • 注意:方法一必须要在Nginx的安装包目录下。否则无法找到Nginx。

相关推荐
saynaihe27 分钟前
安全地使用 Docker 和 Systemctl 部署 Kafka 的综合指南
运维·安全·docker·容器·kafka
机器之心1 小时前
图学习新突破:一个统一框架连接空域和频域
人工智能·后端
.生产的驴2 小时前
SpringBoot 对接第三方登录 手机号登录 手机号验证 微信小程序登录 结合Redis SaToken
java·spring boot·redis·后端·缓存·微信小程序·maven
zhou周大哥2 小时前
linux 安装 ffmpeg 视频转换
linux·运维·服务器
顽疲2 小时前
springboot vue 会员收银系统 含源码 开发流程
vue.js·spring boot·后端
机器之心2 小时前
AAAI 2025|时间序列演进也是种扩散过程?基于移动自回归的时序扩散预测模型
人工智能·后端
loong_XL2 小时前
服务器ip:port服务用nginx 域名代理
服务器·tcp/ip·nginx
the丶only3 小时前
单点登录平台Casdoor搭建与使用,集成gitlab同步创建删除账号
linux·运维·服务器·docker·gitlab
hanglove_lucky3 小时前
本地摄像头视频流在html中打开
前端·后端·html
ccubee3 小时前
docker 安装 ftp
运维·docker·容器