banner
NEWS LETTER

Nginx服务器

Scroll down

Nginx

Nginx简介

  • Nginx是一个高性能的开源web服务器,也可以用作反向代理、负载均衡和HTTP缓存

  • 其具有占用内存少、处理并发能力强等特点

  • Nginx还可以作为反向代理和负载均衡器,将请求分配给多个后端服务器,从而实现高可用性和可扩展性。

安装Nginx

1
2
3
4
5
6
7
8
9
10
11
12
/*安装依赖包*/
yum -y install gcc pcre-devel zlib-devel openssl openssl-devel
/*下载Nginx安装包*/
wget https://nginx.org/download/nginx-1.16.1.tar.gz
/*解压*/
tar -zxvf nginx-1.16.1.tar.gz

cd nginx-1.16.1

./configure --prefix=/usr/local/nginx

make && make install

Nginx目录结构

重点目录/文件:

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

Nginx命令

  • 查看版本

    1
    ./nginx -v
  • 开启nginx

    在nginx中的sbin文件夹运行

    1
    ./Nginx
  • 关闭nginx

    在nginx中的sbin文件夹运行

    1
    ./nginx -s stop
  • 启动后查看Nginx进程

    1
    ps -ef|grep nginx

Nginx配置文件结构

整体结构介绍

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

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

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

image-20230425102149478

·全局块 ·events块 ·http块 ·上面为http全局块,下面为server块

Nginx具体应用

部署静态资源

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

相对于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.conf文件中配置

1
2
3
4
5
6
7
server {
listen 82;
server_name localhost;
location / {
proxy_pass http://192.168.138.101:8080;#反向代理配置,将请求转发到指定服务
}
}

image-20230425112248794

客户端向反向代理服务器发送请求,由反向代理服务器代替客户端向web服务器发送请求。并把获取到的数据返回给客户端。整个过程中web服务器对于客户端不可见

负载均衡

负载均衡是指将网络负载分担到多个服务器或计算机集群上,以达到更好的性能、稳定性和可靠性。负载均衡器(Load Balancer)是实现负载均衡的关键部件之一,它能够自动监控网络流量并将请求分发到不同的服务器上,从而避免单点故障、提高吞吐量和响应速度

image-20230425121313152

1
2
3
4
5
6
7
8
9
10
11
12
#配置负载均衡:
upstream targetserver{ #upstream指令可以定义一组服务器
server 192.168.138.101:8080 weight=10;
server 192.168.138.101:8081 weight=5;
}
server {
listen 8080;
server_name localhost;
location / {
proxy_pass http://targetserver;
}
}

负载均衡策略:

image-20230425121701505

Other Articles
cover
微服务
  • 23/09/24
  • 15:54
  • 8.7k
  • 37
cover
MySql数据库
  • 23/09/18
  • 18:15
  • 2.4k
  • 9