Nginx从安装到使用,反向代理,负载均衡

什么是Nginx?

文章目录

1、Nginx概述

1.1、Nginx介绍

Nginx是一款轻量级的web服务器/反向代理服务器及电子邮件(IMAP/POP3)代理服务器。其特点是占有内存少,并发能力强,事实上nginx的并发能力在同类型的网页服务器中表现较好,中国大陆使用nginx的网站有:百度、京东、新浪、网易、腾讯、淘宝等。

Nginx是由伊戈尔·赛索耶夫为俄罗斯访问量第二的Rambler.ru站点(俄文: Paw6nep)开发的,第一个公开版本0.1.0发布于2004年10月4日。

官网: https://nginx.org/

1.2、Nginx下载和安装

  • 下载:

可以到Nginx官方网站下载Nginx的安装包,地址为: https://nginx.org/en/download.html

  • 安装:

    安装过程:
    1、安装依赖包:yum -y install gcc pcre-devel zlib-devel openssl openssl-devel
    2、下载Nginx安装包:wget https://nginx.org/download/nginx-1.16.1.tar.gz(也可以在Windows中下载之后进行上传)
    3、解压:tar -zxvf nginx-1.16.1.tar.gz
    4、进入解压目录:cd nginx-1.16.1
    5、指定安装路径,并进行检查和配置:./configure --prefix=/usr/local/nginx
    (提前创建/usr/local/nginx目录:mkdir -p /usr/local/nginx)
    6、正式安装:make && make install

1.3、Nginx目录结构

重点目录/文件:

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

树形结构展示nginx目录:

2、Nginx命令

2.1、查看版本

shell 复制代码
./nginx -v

使用上述命令的时候要切换到sbin目录下。

2.2、检查配置文件正确性

在启动Nginx服务之前,可以先检查一下conf/nginx.conf文件配置的是否有错误,命令如下:

shell 复制代码
./nginx -t

2.3、启动和停止

启动Nginx服务使用如下命令:

shell 复制代码
./nginx

停止Nginx服务使用如下命令:

shell 复制代码
./nginx -s stop

启动完成后可以查看Nginx进程:

shell 复制代码
ps -ef| grep nginx

2.4、重新加载配置文件

当修改Nginx配置文件后,需要重新加载才能生效,可以使用下面命令重新加载配置文件:

shell 复制代码
./nginx -s reload

2.5、环境变量的配置

在/etc/profile配置文件下追加下面的路径:

3、Nginx配置文件结构

整体结构:

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

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

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

4、Nginx具体应用

4.1、部署静态资源

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

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

端口等设置的简介如下:

4.2、反向代理

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

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

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

  • 反向代理
    反向代理服务器位于用户与目标服务器之间,但是对于用户而言,反向代理服务器就相当于目标服务器,即用户直接访问反向代理服务器就可以获得目标服务器的资源,反向代理服务器负责将请求转发给目标服务器

用户不需要知道目标服务器的地址,也无须在用户端作任何设定。(无感知,而正向是知道服务器在哪的)

  • 反向代理的配置

如上图设置反向代理之后,在本机82端口中的请求会被代理到192.168.138.101:8080的服务器中。

4.3、负载均衡

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

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

负载均衡的策略:

名称 说明
轮询 默认方式
weight 权重方式(数值越大分发到的几率越大)
ip_hash 依据ip分配方式
least_conn 依据最少连接方式
url_hash 依据url分配方式
fair 依据响应时间方式

相关推荐
小白爱电脑1 小时前
什么是2.5G交换机?
运维·网络·5g·千兆宽带
?ccc?1 小时前
容器技术技术入门与 Docker 环境部署
运维·docker·容器
时时刻刻看着自己的心1 小时前
docker启动报错
运维·docker·容器
我科绝伦(Huanhuan Zhou)2 小时前
华为泰山服务器重启后出现 XFS 文件系统磁盘“不识别”(无法挂载或访问),但挂载点目录仍在且无数据
运维·服务器·华为
匆匆那年9672 小时前
Docker容器中安装MongoDB,导入数据
运维·docker·容器
望获linux2 小时前
【Linux基础知识系列】第四十三篇 - 基础正则表达式与 grep/sed
linux·运维·服务器·开发语言·前端·操作系统·嵌入式软件
万米商云3 小时前
企业物资集采平台解决方案:跨地域、多仓库、百部门——大型企业如何用一套系统管好百万级物资?
大数据·运维·人工智能
挑战者6668884 小时前
CentOS 系统高效部署 Dify 全攻略
linux·运维·centos
网硕互联的小客服5 小时前
服务器经常出现蓝屏是什么原因导致的?如何排查和修复?
运维·服务器·stm32·单片机·网络安全
喜欢吃豆5 小时前
从零构建MCP服务器:FastMCP实战指南
运维·服务器·人工智能·python·大模型·mcp