Nginx使用—基础知识

Nginx简介

Nginx优点

高性能、高并发
支持很高的并发,在处理大量并发的情况下,比其他web服务器要高效

轻量且高扩展
功能模块少(源代码仅保留http与核心模块代码,其余不够核心代码会作为插件来安装)
代码模块化(易读,便于二次开发,支持第三方模块,对于开发人员非常友好)

高可靠性
只要不过分不会出现问题
宕机时间,99.999%
大部分web服务需要定期重启维护,nginx不需要

支持热部署
运行期间,更新迭代、代码部署

互联网公司都选择 Nginx
Nginx技术成熟, 国内公司基本大规模使用
适合当前主流架构趋势, 微服务、云架构、中间层
统一技术栈, 降低维护成本, 降低技术更新成本。

事件模型:Nginx 采用 Epoll 网络模型, Apache 采用 Select 模型
Select: 当用户发起一次请求,select模型就会进行一次遍历扫描,从而导致性能低下。
Epoll: 当用户发起请求,epoll模型会直接进行处理,效率高效,并无连接限制。

Nginx应用场景

Nginx架构原理

1.主管进程负责工作进程的配置加载、启停等操作;
2.工作进程负责处理具体请求;
3.工作进程之间都是独立的,每个工作进程处理多个连接;
4.每个连接由一个工作进程全权处理,不需要进行进程切换,不会产生进程切换引起的资源消耗问题;
5.共享内存允许多个进程访问同一个内存地址,一个进程改变了内存中的内容后,其他进程都可以使用变更后的内容。

Nginx安装

1.Yum安装

1)配置nginx.repo软件源
vim /etc/yum.repos.d/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=true2)安装
yum install -y nginx3)启动nginx服务
systemctl start nginx 
systemctl enable nginx 

2.源码包安装

1)基础环境与配置准备
1—1.安装编译需要的插件或依赖包
yum install -y gcc gcc-c++ pcre pcre-devel zlib zlib-devel openssl openssl-devel
1-2.创建用户和组,且不创建用户的家目录
groupadd nginx -g 888
useradd -u 888 -g 888 -s /sbin/nologin -M nginx2)下载nginx源码包
wget  http://nginx.org/download/nginx-1.24.0.tar.gz3)解压
mkdir -p /app
tar xf nginx-1.24.0.tar.gz -C /app/
cd /app/nginx-1.24.04)配置./configure --prefix=/app/nginx-1.24  --user=nginx --group=nginx5)编译编译安装
make && make install6)做软链接,方便后期维护
ln -s /app/nginx-1.24 /app/nginx7)配置环境变量
echo "export PATH=$PATH:/app/nginx/sbin" >> /etc/profile
source /etc/profile8)启动nginx
nginx验证nginx是否启动
查看进程
ps aux | grep [n]ginx监听端口号
ss -lntp | grep :80

Nginx配置文件

Nginx的相关命令

nginx #启动nginx。 等价于systemctl start nginx-s reopen #重启Nginx。 等价于systemctl restart nginx-s reload #重新加载Nginx配置文件,然后以优雅的方式重启Nginx。 等价于systemctl reload 
nginx-s stop #强制停止Nginx服务。 等价于systemctl stop nginx-s quit #优雅地停止Nginx服务(即处理完所有请求后再停止服务)-?,-h #打开帮助信息-v #显示版本信息并退出-V #显示版本和配置选项信息,然后退出-T #检测配置文件是否有语法错误,转储并退出-q #在检测配置文件期间屏蔽非错误信息-p prefix #设置前缀路径(默认是:/usr/share/nginx/)-c filename #设置配置文件(默认是:/etc/nginx/nginx.conf)-g directives #设置配置文件外的全局指令

Nginx配置文件介绍

/etc/nginx/nginx.conf 主配置文件 
[root@web02 ~]# cat /etc/nginx/nginx.conf 
#全局配置模块
user  nginx;    # nginx 程序用户  
worker_processes  auto;  #工作进程的数量  根据cpu内核数量去进行生成工作进程数error_log  /var/log/nginx/error.log notice;  #错误日志存放的位置 notice 错误日志的一种格式
pid        /var/run/nginx.pid;   #进程ID的文件
#事件处理模块
events {worker_connections  1024;
}
#http的核心模块
http {include       /etc/nginx/mime.types;  #include引入配置文件  mime.type传输文件的文件类型default_type  application/octet-stream; #指定默认的文件的类型log_format  main  '$remote_addr - $remote_user [$time_local] "$request" ''$status $body_bytes_sent "$http_referer" ''"$http_user_agent" "$http_x_forwarded_for"';  #日志文件的格式access_log  /var/log/nginx/access.log  main; #运行日志sendfile        on;   #程序不需要通过内存 而直接给到用户#tcp_nopush     on;keepalive_timeout  65;  #长连接超时时间#gzip  on;   #对传输的http的超文本文件进行压缩#引入虚拟主机配置文件include /etc/nginx/conf.d/*.conf;	
}虚拟主机的配置文件
/etc/nginx/conf.d/default.conf
虚拟主机 
server {listen       80;server_name  localhost;   #主机名称 localhost本地 -> 10.0.0.8#域名nierenjun.com#access_log  /var/log/nginx/host.access.log  main;  #运行日志location / {root   /usr/share/nginx/html;  #页面代码文件的主要目录index  index.html index.htm;   #默认索引页}#error_page  404              /404.html;  #错误页面# redirect server error pages to the static page /50x.html#error_page   500 502 503 504 404 /50x.html;location = /50x.html {root   /usr/share/nginx/html;}
}

Nginx案例

需求:
输入zjh.game.com/maliao打开马里奥游戏
输入zjh.game.com/h5game打开h5小游戏1.将两个小游戏的压缩包传到主机上
[root@web03 ~]# ls
anaconda-ks.cfg  h5game.zip  html5-mario.zip2.创建/web目录存放解压后的两个小游戏
mkdir -p /web
unzip h5game.zip 
mv h5game /web/
unzip html5-mario.zip 
mv html5-mario /web/maliao3.让/etc/nginx/conf.d目录下的default.conf
cd /etc/nginx/conf.d
rename .conf .conf.bak *.conf4.编写新的虚拟主机配置文件
vim /etc/nginx/conf.d/game.conf
server {listen 80;server_name zjh.game.com; root /web;location /maliao {index index.html;}location /h5game {index index.html;}
}5.检查配置文件是否有错误
nginx -t6.重启nginx服务
systemctl restart nginx7.修改本地dns的地址
7-1.win+R 输入C:\Windows\System32\drivers\etc
7-2.将本地dns的所有权限放开
7-3.在hosts文件里面添加10.0.0.9 zjh.game.com并保存8.验证
浏览器输入zjh.game.com/maliao
浏览器输入zjh.game.com/h5game

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

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

相关文章

C语言:qsort的使用方法

目录 1. qsort是什么? 2. 为什么要使用qsort 3. qsort的使用 3.1 qsort的返回值和参数 3.2 qsort的compare函数参数 3.3 int类型数组的qsort完整代码 4. qsort完整代码 1. qsort是什么? qsort中的q在英语中是quick,快速的意思了&#…

C++基础2:C++基本数据类型和控制结构

此专栏为移动机器人知识体系下的编程语言中的 C {\rm C} C从入门到深入的专栏,参考书籍:《深入浅出 C {\rm C} C》(马晓锐)和《从 C {\rm C} C到 C {\rm C} C精通面向对象编程》(曾凡锋等)。 2.C基本数据类型和控制结构 2.1 C基本数据类型 程序是由算法…

C# 中 Replace 字符串操作方法

在 C# 中,Replace 是一个字符串操作方法,用于替换字符串中的指定字符或子字符串。它接受两个参数:要查找和替换的字符串。Replace 方法在源字符串中查找所有匹配的字符或子字符串,并用指定的替换字符串进行替换。 下面是 Replace…

【论文精读】Mask R-CNN

摘要 基于Faster RCNN,做出如下改变: 添加了用于预测每个感兴趣区域(RoI)上的分割掩码分支,与用于分类和边界框回归的分支并行。mask分支是一个应用于每个RoI的FCN,以像素到像素的方式预测分割掩码,只增加了很小的计…

鸿蒙Harmony应用开发—ArkTS声明式开发(通用属性:点击回弹效果)

设置组件点击时回弹效果。 说明: 从API Version 10开始支持。后续版本如有新增内容,则采用上角标单独标记该内容的起始版本。 clickEffect clickEffect(value: ClickEffect | null) 设置当前组件点击回弹效果。 系统能力: SystemCapabilit…

表达式和语句

本文参考C Primer Plus进行C语言学习 文章目录 表达式语句 副作用和序列点复合语句(块)类型转换 1.表达式 表达式由运算符和运算对象组成。下面是一些表达式: 4 -6 421 a*(bc/d)/20 q5*2 xq%3 q>3 每个表达式都有一…

软件测试零基础新手入门必看

软件测试:使用技术手段验证软件是否满足使用需求 目的:减少缺陷,保证质量 一、测试主流技能: 1.功能测试 测试主要验证程序的功能是否满足需求 2.自动化测试 使用工具或代码代替手工,对项目进行测试 3.接口测试 …

Golang 开发实战day02 - Print Formatting

Golang 教程02 - Print,Formatting Strings Go语言提供了丰富的格式化字符串功能,用于将数据格式化为特定格式的字符串。本课程将详细介绍Go语言中Print和Formatting Strings的用法,并提供代码示例供大家参考。 Print 类型及使用 1.Print …

QEMU设备直通pass through的地址映射转换

[内核:HVA]->[QEMU:HVA]的mmap地址映射 $ sudo cat /proc/2047239/maps | grep -i vfio address perms offset dev inode pathname 7f4b5444a000-7f4b5445a000 rw-s 9da50000 00:0e 13037 anon_inode:[vfi…

计算机网络 网络原理之Http

目录 1 前言2 什么是http的一次交互?3 理解“协议”二字4 认识URL4.1 简介4.2 URL的编码和解码(urlencode和urldecode) 5 抓包工具 fiddler6 http和https的区别7 http 头8 HTTP 状态码9 常见的 Http 服务器 1 前言 为什么要了解Http原理呢?因为http原理…

基于SSM SpringBoot vue个人博客网站

基于SSM SpringBoot vue个人博客网站 系统功能 首页 图片轮播 博客文章 搜索 登录注册 论坛 留言板 个人中心 我的收藏 后台管理 登录 个人中心 博客分类管理 博客文章管理 论坛管理 系统管理 管理员管理 注册用户管理 开发环境和技术 开发语言:Java 使用框架:…

实战经验分享:如何优化即时通讯应用的性能?

在当今移动互联网时代,即时通讯应用如雨后春笋般涌现,用户对即时通讯应用的性能和体验要求也越来越高。作为即时通讯开发领域的专家,我将分享一些优化即时通讯应用性能的实战经验,帮助开发者提升应用质量和用户满意度。 1. 优化网…

【Leetcode每日一刷】贪心算法| 45.跳跃游戏 II

1、45.跳跃游戏 II 🦄解题思路: 这题还是比【55.跳跃游戏】难一些的。第一个版本只是说,求跳跃的范围,覆盖到了终点即可。这题则是,能保证覆盖范围到达终点,求的是最少跳几次,跳到终点。 这题…

289页初中级前端题助你拿下Offer,终局之战

HTML、CSS、JS三大部分都起什么作用? HTML内容层,它的作用是表示一个HTML标签在页面里是个什么角色;CSS样式层,它的作用是表示一块内容以什么样的样式(字体、大小、颜色、宽高等)显示;JS行为层…

Redis缓存【重点】

参考链接 https://xiaolincoding.com/redis/cluster/cache_problem.html#%E7%BC%93%E5%AD%98%E9%9B%AA%E5%B4%A9 目录 缓存雪崩大量数据同时过期Redis 故障宕机 缓存击穿第一种方案,非法请求的限制第二种方案,缓存空值或者默认值第三种方案,使…

01、MongoDB -- 下载、安装、配置文件等配置 及 副本集配置

目录 MongoDB -- 下载、安装、配置 及 副本集配置启动命令启动 mongodb 的服务器(单机和副本集)启动单机模式的 mongodb 服务器启动副本集的 3 个副本节点(mongodb 服务器) 启动 mongodb 的客户端 MongoDB 下载MongoDB 安装1、解压…

App自动化测试笔记(一):搭建环境

一、三个环境 1、android模拟器:模拟安卓手机 2、androidSDK:android SDK给你提供开发测试所必须android API类库 3、java:android底层是c、c语言,应用层是java语言 二、java环境搭建 java安装 安装jdk-8u151-windows-x64.exe 配置环境变量…

JAVA的学习日记DAY1

JAVA的学习日记(2024.3.1)(b站韩顺平老师课程学习笔记版) ps:捡起忘光光的Java语言 Sublime //1. public是公有,class是类 //2. public class Hello表示Hello是一个类,是一个public公有的类 //3. Hello{…

【Redis | 第二篇】Redis的五种数据类型和相关命令

文章目录 2.Redis的数据类型和相关命令2.1常用数据类型2.2特性和用途2.2.1字符串(String)2.2.2哈希(Hash)2.2.3列表(List)2.2.4集合(Set)2.2.5有序集合(Sorted Set&#…

SwiftUI中stroke属性的使用

在 SwiftUI 中,可以使用 stroke 属性来绘制形状的轮廓线。stroke 属性接受一个 Color 类型的参数,指定轮廓线的颜色。 以下是一个示例代码,演示如何在 SwiftUI 中使用 stroke 属性绘制矩形的轮廓线: import SwiftUIstruct Conte…