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 依据响应时间方式

相关推荐
用户0328472220703 小时前
如何搭建本地yum源(上)
运维
ping某1 天前
为什么 Nginx 明明监听了 80,转发后端时却用了 4xxxx 端口?
后端·nginx
大树883 天前
金刚石散热越强,管路越先见顶
大数据·运维·服务器·人工智能·ai
摇滚侠3 天前
Linux CentOS7 rpm 安装 MySQL 5.7
linux·运维·mysql
霸道流氓气质3 天前
领域驱动设计(DDD)在 Spring Boot 微服务中的实践指南
运维·spring boot·微服务
Inhand陈工3 天前
基于台达PLC与映翰通IG502的智慧水产养殖精准投喂与远程运维解决方案
运维·人工智能·物联网·阿里云·信息与通信
酣大智3 天前
ARP代理--工作原理
运维·网络·arp·arp代理
shushangyun_3 天前
2026年快消品B2B系统推荐:支持终端门店订货、促销政策自动化的工具?
java·运维·网络·数据库·人工智能·spring·自动化
施努卡机器视觉3 天前
SNK施努卡侧滑门锁上滑轮总成自动化装配线,从零件到组件,全流程精密制造方案
运维·自动化·制造
AC赳赳老秦3 天前
用 OpenClaw 搭建服务器故障应急响应系统,自动处理 80% 常见运维故障
android·运维·服务器·python·rxjava·deepseek·openclaw