Nginx快速入门:Nginx应用场景、安装与部署(一)

1. Nginx简介

Nginx 是一个高性能的 HTTP 和反向代理服务器,也是一个非常流行的开源 Web 服务器软件。它是由俄罗斯程序员 Igor Sysoev 开发的,最初是为了解决在高并发场景下的C10k 问题(即一个服务器进程只能处理 10,000 个并发连接)的限制。Nginx 以其高性能、稳定性、丰富的功能集、简单的配置以及低资源消耗而被广泛使用。

nginx为什么能支持大并发?
Nginx 使用一个事件驱动的异步非阻塞 I/O 模型,默认使用 epoll 模型,这使得它在处理大量并发连接时表现非常出色。此外,Nginx 还支持worker进程,可以有效地分配资源并提高性能。

nginx的市场占用率
https://w3techs.com/technologies/cross/web_server/ranking
在这里插入图片描述

nginx官网
http://nginx.org

2. Nginx的应用场景

在企业生产中,nginx的主要应用场景在四个方面:

  • 静态资源服务

用来部署图片、css、html等静态资源

  • 代理服务

作为统一入口或代理入口,进行服务转发、负载均衡等

  • 安全控制

做多个服务的入口,将入口部署ssl证书,以此实现服务的加密控制,而不用在每个后台服务部署证书

  • 代理缓存

将动态请求的资源在nginx中进行缓存,下次请求时直接从nginx获取,就不用再走后台服务,以此提高用户的访问速度

后续我们从上述4个方面对nginx的应用进行逐步学习,如果对nginx有兴趣的同学,可以关注专栏,以及时接收到更新通知。

3. Nginx安装

nginx支持2种部署方式:

  • yum工具安装
  • 安装包安装

以下我们分别讲解

3.1 yum工具安装

1、设置nginx yum源
在官网:https://nginx.org/en/linux_packages.html#RHEL/CentOS中有关于yum源的说明
在这里插入图片描述

所以我们可以创建nginx.repo文件,设置官方yum源,也可以用国内厂商,如阿里云的yum源,这里以官网yum源为例

创建nginx.repo文件:

cd /etc/yum.repos.d/
vim nginx.repo

内容

[nginx-stable]
name=nginx stable repo
baseurl=http://nginx.org/packages/centos/$releasever/$basearch/
gpgcheck=1
enabled=1
gpgkey=https://nginx.org/keys/nginx_signing.key
module_hotfixes=true[nginx-mainline]
name=nginx mainline repo
baseurl=http://nginx.org/packages/mainline/centos/$releasever/$basearch/
gpgcheck=1
enabled=0
gpgkey=https://nginx.org/keys/nginx_signing.key
module_hotfixes=true

如果是mac m1,需要配置arm架构的镜像源,直接执行如下指令即可,就不用再创建nginx.repo了:

wget http://mirrors.aliyun.com/repo/Centos-altarch-7.repo -O /etc/yum.repos.d/CentOS-Base.repo

2、检查yum源配置完成

yum makecache
yum repolist

这里我以mac m1的执行效果为例,可以看到更新了nginx的yum源
在这里插入图片描述

3、安装nginx

yum install nginx -y

在这里插入图片描述
4、查看nginx版本

nginx -V

在这里插入图片描述

5、启动nginx

nginx

关闭nginx指令

# 强制退出,不管有没有正在处理的请求
nginx -s stop
# 优雅退出,等待正在执行的转发执行完成后再退出
nginx -s quit
# 重启
nginx -s reload

通过yum安装的nginx的默认安装路径为:/etc/nginx,日志文件默认路径为:/var/log/nginx

在这里插入图片描述

3.2 安装包安装

1、准备源码包:https://nginx.org/en/download.html

选择对应的版本下载即可
在这里插入图片描述

2、上传到服务器,并解压

tar xf nginx-1.19.7.tar.gz

3、准备依赖环境

yum install -y openssl-devel pcre-devel gcc

4、添加nginx用户

useradd nginx -m -s /sbin/nologin

5、预编译,在nginx目录下执行

–prefix 指定nginx目录
–sbin-path 指定nginx运行目录
–user 运行程序的用户
–group 运行程序的用户组
–with 需要添加的nginx模块

./configure --prefix=/usr/local/nginx --sbin-path=/bin/ --user=nginx --group=nginx --withhttp_ssl_module --withhttp_stub_status_module --withhttp_gzip_static_module

检查是否安装成功

# 检查上一条命令执行结果,如果是0则执行成功,如果不是0则说明执行失败
echo $?

6、安装nginx

make && make install

7、检查nginx版本

./bin/nginx -V

8、启动nginx

./bin/nginx

9、检查nginx端口

netstat -lntup | grep nginx

在这里插入图片描述

4. nginx访问

nginx的默认端口是80, 如果是虚拟机安装的,记得开通虚拟机的80端口,或者关闭防火墙

# 查询22端口是否开放
firewall-cmd --query-port=80/tcp
# 开启端口
firewall-cmd --add-port=80/tcp --permanent
# 开启后重新加载
firewall-cmd --reload

访问虚拟机ip:80端口即可访问到nginx, 因为http默认80端口,所以可以省略端口访问:

在这里插入图片描述

5. 总结

下一节我们将来学习nginx的目录结构及各类配置文件的作用,并配置一个简单的转发带大家先感受下nginx的使用

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

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

相关文章

嵌入式中串口输入

学习目标 掌握串口初始化流程掌握串口接收逻辑了解中断接收逻辑熟练掌握串口开发流程学习内容 需求 串口接收PC机发送的数据。 串口数据接收 串口初始化 static void USART_config() {uint32_t usartx_tx_rcu = RCU_GPIOA;uint32_t usartx_tx_port = GPIOA;uint32_t usartx…

Leetcode 376 摆动序列

题意理解: 如果连续数字之间的差严格地在正数和负数之间交替,则数字序列称为 摆动序列 如果是摆动序列,前后差值呈正负交替出现 为保证摆动序列尽可能的长,我们可以尽可能的保留峰值,,删除上下坡的中间值&…

Mongodb复制集架构

目录 复制集架构 复制集优点 复制集模式 复制集搭建 复制集常用命令 复制集增删节点 复制集选举 复制集同步 oplog分析 什么是oplog 查看oplog oplog大小 复制集架构 复制集优点 数据复制: 数据在Primary节点上进行写入,然后异步地复制到Secondary节点&a…

14 v-model绑定输入框

概述 v-model用于实现双向数据绑定,使用v-model绑定输入框是Vue3中最常见的用法之一。 比如,在制作登录界面的时候,我们会使用v-model绑定用户名和密码,这里的用户名和密码都是输入框。 基本用法 我们创建src/components/Demo…

cleanmymacX安全吗?有用吗

苹果电脑以其流畅的操作系统和卓越的性能而备受用户喜爱。然而,随着时间的推移,系统可能会积累大量垃圾文件,影响性能。本文将介绍苹果电脑怎么清理垃圾文件的各种方法,以提升系统运行效率。 CleanMyMac X是一款专业的Mac清理软件…

Android Studio问题解决:Gradle Download 下载超时 Connect reset

文章目录 一、遇到问题二、解决办法 一、遇到问题 Gradle Download下载超时Sync了很多次,一直失败 二、解决办法 手动通过gradle网站下载 https://gradle.org/releases/可能也会出现超时,最好开个VPN软件会比较快。 下载好的软件,放到本机的…

工业缺陷检测新时代!OpenCV4六种方法助你轻松应对生产难题!

OpenCV4工业缺陷检测的六种方法 机器视觉缺陷检测好书推荐工业上常见缺陷检测方法方法一:方法二:方法三:方法四:方法五:方法六: 写在末尾: 主页传送门:📀 传送 送书系列…

hive企业级调优策略之分组聚合优化

测试用表准备 hive企业级调优策略测试数据 (阿里网盘下载链接):https://www.alipan.com/s/xsqK6971Mrs 订单表(2000w条数据) 表结构 建表语句 drop table if exists order_detail; create table order_detail(id string comment 订单id,user_id …

clangd:Couldn‘t build compiler instance

在使用vscode clangd 搭建RK3588 5.10版本linux内核代码开发环境时,使用bear生成 compile_commands.json时,clangd生成标签失败代码无法跳转,查看clangd日志,发现标签生成失败,失败原因:Couldnt build comp…

C++ OJ题测试—排序算法效率

目录 OJ链接 一、直接插入排序 二、希尔排序 三、直接选择排序 常规: 第二种: 四、 堆排序 五、冒泡排序 六、快速排序 常规: 三路划分优化效率 七、归并排序 八、计数排序 OJ链接 ​ 一、直接插入排序 class Solution { pub…

CentOS 7 部署 Nacos-2.3.0 (单机版)

CentOS 7 部署 Nacos-2.3.0 (单机版) 1. 下载 Nacos 安装包 历史版本:https://github.com/alibaba/nacos/releases/ 我选的是 2.3.0 版本,https://github.com/alibaba/nacos/releases/download/2.3.0/nacos-server-2.3.0.tar.g…

等保二级和三级的区别

等保二级和三级定级标准有什么区别?定级原则和方法介绍 网络安全等级保护,简称等保,是我国为了保障信息系统的安全运行,防止信息泄露、篡改、破坏等威胁,制定的一套信息安全管理制度。根据《信息安全技术网络安全等级保…

MIT18.06线性代数 笔记1

文章目录 方程组的几何解释矩阵消元乘法和逆矩阵A的LU分解转置-置换-向量空间R列空间和零空间求解Ax0主变量 特解求解Axb可解性和解的结构线性相关性、基、维数四个基本子空间矩阵空间、秩1矩阵和小世界图图和网络复习一 方程组的几何解释 线性组合: 找到合适的x和…

【小沐学Python】Python实现语音识别(vosk)

文章目录 1、简介1.1 vosk简介1.2 vosk模型1.3 vosk服务 2、安装3、测试3.1 命令行测试3.2 代码测试 结语 1、简介 https://alphacephei.com/vosk/index.zh.html Vosk 是一个语音识别工具包。 1.1 vosk简介 支持二十种语言 - 中文,英语,印度英语&#…

ansible模块 (7-13)

模块 7、hostname模块: 远程主机名管理模块 ansible 192.168.10.202 -m hostname -a nameliu 8、copy模块: 用于复制指定的主机文件到远程主机的模块 常用参数: dest: 指出要复制的文件在哪,必须使用绝对路径。如果源目标是…

Ubuntu18.04.6下samba服务的安装及配置

目录 01 安装samba服务: 03 重启samba服务 04 设置samba登录密码 05 测试 前言 从本章开始我们将要学习嵌入式音视频的学习了 ,使用的瑞芯微的开发板 🎬 个人主页:ChenPi 🐻推荐专栏1: 《C_ChenPi的博客-CSDN博…

JavaWeb笔记之JavaWeb JDBC

//Author 流云 //Version 1.0 一. 引言 1.1 如何操作数据库 使用客户端工具访问数据库,需要手工建立连接,输入用户名和密码登录,编写 SQL 语句,点击执行,查看操作结果(结果集或受影响行数)。…

HarmonyOS应用开发-手写板(二)

在前一篇手写板的文章中(HarmonyOS应用开发-手写板-CSDN博客),我们通过使用Path实现了一个基本的手写板,但遗憾的是,无法保存所绘制的图像。在本文中,我们将采用canvas和Path2D来重新构建手写板应用。依然只…

java中基本类型之间的转换

基本类型容量 java中的 8 种基本数据类型,以及它们的占内存的容量大小和表示的范围 byte:字节型,占内存容量为 1 个字节(8 位),表示范围为 -128(-2^7)到 127(2^7-1&…

关于MQ,你了解多少?(干货分享之一)

导语 本文梳理笔者 MQ 知识,从消息中间件的基础知识讲起,在有了基础知识后,对市面上各主流的消息中间件进行详细的解析,包括 RabbitMQ、RocketMQ、Kafka、Pulsar,最后再横向对比这几款主流的消息中间件。 消息中间件…