Nginx

Nginx 配置详解 | 菜鸟教程 (runoob.com)

nginx: download

Neinx是一款轻量级的web 服务器/反向代理服务器及电子邮件(IMAP/ POP3) 代理服务器。其特点是占有内存少,并 发能力强,事实上nginx的井发能力在同类型的网页服务器中表现较好

Nginx下载安装

linux下载安装nginx

安装过程:

  • 1、安装依赖包 yum -y instal1 gcc pcre-devel Z1ib-devel openss1 openss1-deve1
  • 2、下载Nginx安装包wget https://nginx.org/ download/nginx-1.16.1.tar.gz
  • 3、解压 tar -zxvf nginx-1.16.1.tar.gz
  • 4、cd nginx-1.16.1
  • 5、./configure –prefix=/usr/local/nginx 下载安装的位置可以提前自己创建该文件夹
  • 6、make && make install make进行编译或者安装

宝塔面板的nginx配置文章存放在/www/server/nginx

Nginx配置文件

重点目录/文件:

  • conf/nginx.conf nginx配置文件
  • html 存放静态文件 (html、css. Js等)
  • logs 日志目录,存放日志文件 二进制文件
  • sbin/nginx 用于启动、停止Nginx服务

Nginx常用命令

查看nginx版本

nginx -v

检查nginx配置文件的正确性

在启动nginx服务之前执行这个命令查看文件配置的正确性

nginx -t

nginx服务 启动和停止

启动nginx

nginx

停止nginx服务

nginx -s stop

启动完成后可以查看nginx进程

ps -ef | grep nginx

重新加载配置文件

nginx -s reload

Nginx配置文件结构

Nginx配置文件(conf/nginx.conf)整体分为三部分:

  • 全局块 和Nainx运行相关的全局配置
  • events块 和网络连接相关的配置
  • http块 代理,缓存,日志记录,虚拟主机配置
    • http全局块
    • Server块
      • Server全局块
      • location块

注意:http块中可以配置多个server块,每个server块中可以配置多个location块

  • 1、全局块:配置影响nginx全局的指令。一般有运行nginx服务器的用户组,nginx进程pid存放路径,日志存放路径,配置文件引入,允许生成worker process数等。
  • 2、events块:配置影响nginx服务器或与用户的网络连接。有每个进程的最大连接数,选取哪种事件驱动模型处理连接请求,是否允许同时接受多个网路连接,开启多个网络连接序列化等。
  • 3、http块:可以嵌套多个server,配置代理,缓存,日志定义等绝大多数功能和第三方模块的配置。如文件引入,mime-type定义,日志自定义,是否使用sendfile传输文件,连接超时时间,单连接请求数等。
  • 4、server块:配置虚拟主机的相关参数,一个http中可以有多个server。
  • 5、location块:配置请求的路由,以及各种页面的处理情况。

Nginx 具体应用

部署静态资源

Nginx可以作为静态web服务器来部署静态资源。静态资源指在服务端真实存在并且能够直接展示的一些文件,比如 常见的html页面、css文件、j5文件、因片、视频等资源。

相对于Tomcat,Nginx处理静态资源的能力更加高效,所以在生产环境下,一般都会将静志资源部署到Nginx中, 将静志资源部署到Nginx非第简单,只需要将文件复制到Nginx安装目录下的html目录中即可.

1
2
3
4
5
6
7
8
server{
listen 80; #监听端口
server_name localhost; #服务器名称
location /{ #匹配客户端请求url
root html; #指定静态资源目录
index index.html #指定默认首页
}
}

代理

Nginx正反向代理_飞着的雪人的博客-CSDN博客_nginx 正向代理配置

正向代理

一个位于客户端和原始服务器(origin server)之间的服务器,为了从原始服务器取得内容,客户端向代理发送一个 请求井指定目标(原始服务器),然后代理向 原始服务器转交请求井將获得的内容返回给客户端。

正向代理的典型用途是为在防火墙内的局城网客户端提供访问Internet的途径。

正向代理一般是在客户端设置代理服务器,通过代理服务器转发请求,最终访问到目标服务器。

客户端请求直发

反向代理

反向代理服务器位于用户与目标服务器之间,但是对于用户而言,反向代理服务器就相当于目标服务器,即用户直接 访问反向代理服务器就可以获得目标服务器的资源,反向代理服务器负贵將请求转发给目标服务器。 用户不需要知道目标服务器的地址,也无须在用户端作任何设定。

反向代理

配置反向代理

客户端直接访问反向代理服务器,反向代理服务器再去访问目标资源服务器

在反向代理服务器配置server

1
2
3
4
5
6
7
server{
listen 80; #监听端口 将客户端访问80的端口转发到目标资源服务器
server_name localhost; #服务器名称
location /{ #匹配客户端请求url
proxy_pass http://192.168.138.101:8080; #反向代理配置,将请求转发到指定服务
}
}

image-20220817201639871

负载均衡

早期的网站流量和业务功能都比较简单,单台服务器就可以满足基本需求,但是随着互联网的发展,业务流量越来越 大井且业务逻辑也越来越复杂,单台服务器的性能及单点故障问题就凸显出来了,因此需要多台服务器组成应用集群,进行性能的水平扩展以及避免单点故障出现。

  • 应用集群:将同一应用部署到多台机器上,组成应用集群,接收负载均街器分发的请求,进行业务处理并返回的应 数据
  • 负载均街器:将用户请求根据对应的负载均衡算法分发到应用集群中的一台服务器进行处理

负载均衡模式

配置负载均衡

1
2
3
4
5
6
7
8
9
10
11
12
upstream targetserver{           #upstream指令可以定义一组服务器
# 配置weight 权重越大分发到它的几率越大 默认值为1
server 192.168.138.101:8080 weight=10; #真正环境下使用的是不同的服务器 ip不同
server 192.168.138.101:8081 weight=5; #使用负载均衡算法进行服务分发 不配置weight默认为轮询
}
server{
listen 8080; #监听端口 将客户端访问8080的端口转发到目标资源服务器
server_name localhost; #服务器名称
location /{ #匹配客户端请求url
proxy_pass http://targetserver; #反向代理配置,将请求转发到指定服务
}
}

负载均衡策略

依据ip分发:同ip分发到的概率相同

依据最少连接方式:观察现在哪台服务器连接少,就转发给它进行处理

依据url分配方式:如果请求的url地址相同,则分发到同一台服务器进行处理.

依据响应时间方式:优先分发给响应时间短的服务器进行处理

名称 说明
轮询 默认方式
weight 权重方式
ip_hash 依据ip分配方式
least_conn 依据最少连接方式
url_hash 依据url分配方式
fair 依据响应时间方式