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。

相关推荐
烦躁的大鼻嘎4 分钟前
【Linux】深入理解GCC/G++编译流程及库文件管理
linux·运维·服务器
乐大师4 分钟前
Deepin登录后提示“解锁登陆密钥环里的密码不匹配”
运维·服务器
ac.char11 分钟前
在 Ubuntu 上安装 Yarn 环境
linux·运维·服务器·ubuntu
敲上瘾11 分钟前
操作系统的理解
linux·运维·服务器·c++·大模型·操作系统·aigc
Iced_Sheep1 小时前
干掉 if else 之策略模式
后端·设计模式
传而习乎1 小时前
Linux:CentOS 7 解压 7zip 压缩的文件
linux·运维·centos
XINGTECODE1 小时前
海盗王集成网关和商城服务端功能golang版
开发语言·后端·golang
soulteary1 小时前
突破内存限制:Mac Mini M2 服务器化实践指南
运维·服务器·redis·macos·arm·pika
程序猿进阶1 小时前
堆外内存泄露排查经历
java·jvm·后端·面试·性能优化·oom·内存泄露
FIN技术铺1 小时前
Spring Boot框架Starter组件整理
java·spring boot·后端