【Nginx基础与应用】

news2024/12/24 16:31:43

文章目录

  • Nginx基础与应用
  • 1 Nginx 概述
    • 1.1 介绍
    • 1.2 下载与安装
    • 1.3 目录结构
  • 2 Nginx 命令
  • 3 Nginx 配置文件结构
  • 4 Nginx 具体应用
    • 4.1 部署静态资源
    • 4.2 反向代理
    • 4.3 负载均衡(基于反向代理实现)

Nginx基础与应用

1 Nginx 概述

1.1 介绍

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

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

官网:https://nginx.org/

1.2 下载与安装

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

1

安装过程:

  1. 安装依赖包 yum -y install gcc pcre-devel zlib-devel openssl openssl-devel

  2. Linux中下载Nginx安装包 wget https://nginx.org/download/nginx-1.16.1.tar.gz

    若不存在wget命令需进行安装yum install wget;或者在windows系统中下载,上传到Linux系统中

  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

1.3 目录结构

重点目录/文件:

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

2

2 Nginx 命令

  • 查看版本

    在nginx/sbin目录下执行./nginx -v

  • 检查配置文件正确性

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

  • 启动与停止

    1. 启动Nginx服务使用如下命令:
      ./nginx
    2. 停止Nginx服务使用如下命令:
      ./nginx -s stop
    3. 启动完成后可以查看Nginx进程:
      ps -ef | grep nginx
  • 重新加载配置文件

    ./nginx -s reload

简化命令操作,将usr/local/nginx/sbin添加为环境变量:

-vim /etc/profile

# 追加系统路径环境变量
PATH = /uer/local/nginx/sbin:

source /etc/profile

# 之后即可在任何目录执行nginx命令
nginx -s reload

3 Nginx 配置文件结构

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

  • 全局块

    和Nginx运行相关的全局配置

  • events块

    和网络连接相关的配置

  • http块

    代理、缓存、日志记录、虚拟主机配置

    • http全局块
    • Server块(可有多个)
      • Server全局块
      • location块(可有多个)

3

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

4 Nginx 具体应用

4.1 部署静态资源

Nginx可以作为静态web服务器来部署静态资源。静态资源指在服务端真实存在并且能够直接展示的一些文件,

比如常见的html页面、css文件、js文件、图片、视频等资源。

相对于Tomcat,Nginx处理静态资源的能力更加高效,所以在生产环境下,一般都会将静态资源部署到Nginx中。

将静态资源部署到Nginx非常简单,只需要将文件复制到Nginx安装目录下的html目录中即可。

nginx.conf配置文件设置:

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

4.2 反向代理

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

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

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

    4

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

    用户不需要知道目标服务器的地址,也无须在用户端作任何设定。(多用户统一访问入口)

    5

  • 配置反向代理

    server {
    	listen 82;
    	server_name localhost;
        location / {
            proxy-pass http://192.168.138.101:8080; #反向代理配置,将请求转发到指定服务
    	}
    }
    

    6

4.3 负载均衡(基于反向代理实现)

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

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

7

配置负载均衡:

upstream targetserver{	#upstream指令可以定义一组服务器
    server 192.168.138.101:8080;
    server 192.168.138.101:8081;
}
server{
    listen 8080;
    server_name localhost; #192.168.138.100
    location / {
		proxy_pass http://targetserver;
    }
}

负载均衡策略:

名称说明
轮询默认方式,依次轮回
weight权重方式,按比例执行
ip_hash依据ip分配方式
least_conn依据最少连接方式
url_hash依据url分配方式
fair依据响应时间方式
upstream targetserver{	#upstream指令可以定义一组服务器
    # 权重
    server 192.168.138.101:8080 weight=10;
    server 192.168.138.101:8081 weight=5;
}

资料来源:黑马程序员-瑞吉外卖项目-Nginx课程

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/686418.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

如何在 Linux 中安装、设置和使用 SNMP?

概要 SNMP(Simple Network Management Protocol)是一种用于管理和监控网络设备的协议。它允许网络管理员通过远程方式收集设备的运行状态、性能数据和错误信息,以便进行故障排除和网络优化。在Linux系统中,我们可以安装、设置和使…

vue3-element-admin 项目说明文档

vue3-element-admin官方文档 | 在线预览 项目介绍 vue3-element-admin 是基于 Vue3 Vite4 TypeScript5 Element-Plus Pinia 等最新主流技术栈构建的后台管理前端模板(配套后端源码)。 项目有以下特性: 基于 vue-element-admin 升级到…

共建信创安全生态|安全狗正式加入麒麟软件安全生态联盟

5月25日,麒麟软件安全生态联盟第二次工作会议顺利举办。 作为国内云原生安全领导厂商,安全狗以安全生态联盟成员单位应邀参会并发表重要观点。 厦门服云信息科技有限公司(品牌名:安全狗)成立于2013年,致力于…

无向图G的邻接矩阵法和邻接表法以及遍历输出无向图G包括两种存储的FirstNeighbor和NextNeighbor两种基本操作

一.邻接矩阵法 将下列图G用邻接矩阵法进行存储 圆圈中的字符:是顶点的值 圆圈旁边的数字:是顶点的序号 边线上的值:是两个顶点之间的权值 1.结构体 #define MaxVertexNum 10 typedef char VerTexType;//顶点的数据类型 typedef int Edg…

prometheus + grafana + node_exporter + alertmanager 的安装部署与邮件报警

背景介绍 Prometheus是由SoundCloud开发的开源监控报警系统和时序列数据库(TSDB)。Prometheus使用Go语言开发,是Google BorgMon监控系统的开源版本。 Prometheus的特点 多维度数据模型。 灵活的查询语言。 不依赖分布式存储,单个服务器节点是自主的。 通…

二值化的mask生成yolov5-7.0的实例分割训练标签

背景:要用yolov5-7.0训练分割,这里使用自己的数据,mask是二值化的数据,要先转换成COCO格式,这里用imantics实现。 详见:https://zhuanlan.zhihu.com/p/427096258 截取部分代码如下图,读取image图…

C++之引用、指针引用、常引用

引用 引用的概念引用的定义引用的使用引用的应用引用的本质(就是C内部的一个常指针(type * const 名))指针引用(其类型还是指针type *)常引用(采用const修饰的引用) 引用的概念 1、通常我们说的引用指的是…

和鲸社区数据分析每周挑战【第九十五期:奈飞股价预测分析】

和鲸社区数据分析每周挑战【第九十五期:奈飞股价预测分析】 文章目录 和鲸社区数据分析每周挑战【第九十五期:奈飞股价预测分析】一、前言1、背景描述2、数据说明3、数据集预览 二、数据读取和数据预处理三、历史股价数据可视化四、利用sklearn中LinearR…

Linux 系统下的df、du、fdisk、lsblk指令

文章目录 1 查看磁盘与目录容量(df、du)2 查看磁盘分区(fdisk、lsblk)3 df、du、fdisk、lsblk的区别 1 查看磁盘与目录容量(df、du) df -h //列出文件系统的整体磁盘使用量在显示的结果中要特别留意根目录…

安洵杯2023 部分pwn复现

1. harde_pwn 漏洞点: 覆盖printf的返回地址 from pwn import * from LibcSearcher import LibcSearcher from sys import argv from Crypto.Util.number import bytes_to_long import os def ret2libc(leak, func, path):if path :libc LibcSearcher(func, leak…

二级Python考试环境安装教程

二级Python考试环境 Python3.5.3至Python3.9.10版。为方便考生学习与考点备考,现提供二级Python应用软件的网络下载,广大考生和考点管理员可以下载使用 软件包下载(62.18 MB) https://www.123pan.com/s/y4HrVv-0S0lA.html 安装…

在windows11环境下安装CUDA11.6+Anaconda3+pyToach1.13搭建炼丹炉

0.电脑环境 系统:win11 显卡:NVIDIA GTX1650 还有一个pyCharm,其他也用不到了,需要的文章中会进行说明 1.安装CUDA11.6 目前2023.03出来的pyToach2.0是用不到了,因为最低版本支持CUDA11.7。我的显卡是1650&#xff0c…

leetcode数据库题第八弹(免费题刷完了)

leetcode数据库题第八弹(免费题刷完了) 1757. 可回收且低脂的产品1789. 员工的直属部门1795. 每个产品在不同商店的价格1873. 计算特殊奖金1890. 2020年最后一次登录1907. 按分类统计薪水1934. 确认率1965. 丢失信息的雇员1978. 上级经理已离职的公司员工…

WebRTC音视频会议底层支撑技术

WebRTC允许应用使用P2P通信。WebRTC是一个广泛的话题,在本文中,我们将重点讨以下问题。 为什么Web RTC 如此受欢迎? 在P2P连接过程中会发生什么 信号传递 NATs和ICE STUN & TURN服务器 VP9视频编解码器 WebRTC APIs 安全 1.为什…

科技资讯|苹果新专利曝光:手势增强用户的交互体验

根据美国商标和专利局(USPTO)公示的最新清单,苹果公司获得了一项编号为 US 20230195237 A1 的专利,展示了使用手势导航用户界面的交互体验。 苹果这项专利涉及 iPhone、iPad、Apple Watch 和 Mac,使用屏幕生成组件和…

Typora的安装和授权(2023)

文章目录 1. 文章引言2. Typora的下载3. Typora的安装4. Typora的授权 1. 文章引言 我们在开发的过程中,不可或缺地要使用到markdown文本,支持markdown文本的编辑器有很多,其中Typora便是一款不错的编辑器。 不过,Typora是收费的…

知行之桥EDI系统QA第二期:AS2专题

随着使用知行之桥EDI系统的用户群体日益壮大,在使用过程中,用户可能对系统的工作原理、功能模块和实施过程有一些疑问。近期整理了有关 AS2 的四个常见问题: 1.知行之桥 EDI系统支持AS2 协议的 AES_GCM 算法吗?2.AS2发送文件后收…

C++不知算法系列之计数排序算法的计数之巧

1. 前言 计数排序是较简单的排序算法,其基本思想是利用数组索引号有序的原理。 如对如下的原始数组中的数据(元素)排序: //原始数组 int nums[5]{9,1,7,6,8};使用计数排序的基本思路如下: 创建一个排序数组。数组的大小由原始数组的最大值…

ActiveMQ消息队列的核心概念

文章目录 ActiveMQ消息队列的核心概念1.什么是MQ消息队列2.为什么要使用MQ消息队列3.MQ消息队列的应用场景3.1.异步处理3.2.应用解耦3.3.流量削锋 4.常见的MQ消息队列产品对比 ActiveMQ消息队列的核心概念 1.什么是MQ消息队列 Message Queue消息队列简称MQ,消息队…

NXP i.MX 6ULL工业开发板规格书( ARM Cortex-A7,主频792MHz)

1 评估板简介 创龙科技TLIMX6U-EVM是一款基于NXP i.MX 6ULL的ARM Cortex-A7高性能低功耗处理器设计的评估板,由核心板和评估底板组成。核心板经过专业的PCB Layout和高低温测试验证,稳定可靠,可满足各种工业应用环境。 评估板接口资源丰富&…