当前位置: 首页 > news >正文

Web集群服务-Nginx

1. web服务

1. WEB服务:网站服务,部署并启动了这个服务,你就可以搭建一个网站

2. WEB中间件: 等同于WEB服务

3. 中间件:范围更加广泛,指的负载均衡之后的服务

4. 数据库中间件:数据库缓存,消息对列

2. 极速上手指南

nginx官网: nginx documentation

2.1 配置yum源

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=true

2.2 yum安装nginx

yum install -y nginx

2.3 检查安装

nginx -V

 2.4 目录结构

目录结构说明
/etc/nginx/nginx各种配置文件的目录
/etc/nginx/nginx.conf主配置文件
/etc/nginx/conf.d/子配置文件(网站)
/etc/nginx/conf.d/default.conf默认的子配置文件
/usr/sbin/nginxnginx的命令
/usr/share/nginx/html/nginx默认的站点目录,网站的根目录
/var/log/nginx/nginx日志:访问日志,错误日志,跳转日志

2.5 日常启动与管理

##创建自启动文件
systemctl  enable nginx
##启动服务
systemctl  start nginx
##查看端口
ss - lntup
##查看进程
ps -ef |grep nginx

 2.6 浏览器访问:http://10.0.0.8

2.7 命令行访问

curl  10.0.0.8
curl  -v 10.0.0.8

3. Nginx核心功能详解 

3.1 主配置文件详解(/etc/nginx/nginx.conf)

3.2 子配置文件(/etc/nginx/conf.d/default.conf)

如果删除首页文件,进行(不指定文件)访问会发生什么?

403文件首页不存在

 4 部署第1个网站

网站要求说明
域名cxk.oldboylinux.com
站点目录/app/code/cxk
代码来源cxk.zip

 4.1 配置文件

##子配置文件
vim /etc/nginx/conf.d/cxk.conf
server {listen       80;server_name  cxk.oldboylinux.cn;location / {root   /app/code/cxk;index  index.html;}
}
##检查语法
nginx -t
##热加载
systemctl  reload nginx

4.2 其他配置

##创建站点目录
mkdir -p /app/code/cxk
##解压代码
unzip cxk.zip
mv cxk /app/code/##配置linux和windows hosts解析
#win: C:\Windows\System32\drivers\etc\hosts
#windows下面win键+r 输入drivers 访问etc下的hosts
#linux: /etc/hosts
10.0.0.8 cxk.oldboylinux.cn

4.3 访问

5. Nginx处理用户请求流程

5.1 使用域名访问网站流程:

1. DNS解析:域名 ------->>IP地址

2. 连接80端口: tcp3次握手与网站的80端口建立连接

3. http请求:请求方法,URI,HOST等信息

4. nginx处理:

       4.1  http请求,http区域处理

       4.2 不同的server{} 区域(子配置文件)处理

               4.2.1 端口

               4.2.2 域名:用户请求的域名与子配置文件server_name进行匹配

               4.2.3 匹配成功,就让对应的子配置文件(server{})处理

               4.2.4 根据子配置文件的,root,location规则,index进行处理查找文件

               4.2.5 把找到的文件发回给用户

 5. http响应

 6. 客户收到文件内容,浏览器解析,进行展示

5.2 虚拟主机

5.2.1 概述与分类

虚拟主机的分类说明应用场景
基于域名的虚拟主机不同域名访问不同的站点生产环境最常用的
基于端口的虚拟主机不同端口访问不同的站点保护,设置特殊端口.1024以上 8888 18888
基于ip的虚拟主机不同ip访问不同的站点保护,用户只能通过某个ip连接进来

5.2.2 基于域名的虚拟主机

##创建子配置文件
vim /etc/nginx/conf.d/bird.conf
server {listen 80;server_name bird.oldboulinux.cn; ##站点目录location /{root /app/code/bird;index index.html;}}
测试不创建站点目录:
curl -H Host:bird.oldboylinux.cn  http://10.0.0.8

测试创建站点目录,但是没有首页文件
##创建站点目录
mkdir -p /app/code/bird/
##测试
curl -H Host:bird.oldboylinux.cn  http://10.0.0.8

测试创建首页文件后访问
##创建首页文件
echo 'xzb666' >/app/code/bird/index.html
##测试
curl -H Host:bird.oldboylinux.cn  http://10.0.0.8

5.2.3 基于端口的虚拟主机

不同的端口访问不的网站
##修改live.oldboylinux.cn端口为81
server {listen 81;server_name live.oldboylinux.cn;location / {root /app/code/live;index index.html;}
}
##访问
curl -H Host:live.oldboylinux.cn http://10.0.0.8:81/index.html

5.2.4 基于ip的虚拟主机

搭建mimi网站,端口是8888,只能通过172.16.1.7内网访问
##创建配置文件
server {listen 172.16.1.8:8888;server_name mi.oldboylinux.cn;location / {root /app/code/mi;index index.html;}
}
##在首页文件写入内容
echo '只允许172.16.1.8 的8888端口访问' >/app/code/mi/index.html
##测试
curl -H Host:mi.oldboylinux.cn  http://10.0.0.8:8888
curl -H Host:mi.oldboylinux.cn  http://172.16.1.8:8888

6. Nginx日志

6.1 概述

日志使用建议定义使用
错误日志发生故障的时候可以查看,4xx,5xx通过错误级别指定error_log
访问日志记录着用户什么时候访问 网站哪些页面,客户端信息通过log_format定义访问日志的格式error_log

 6.2 错误日志

1. 指定错误日志的位置和错误级别

2. 错误日志级别:debug, info, notice, warn, error, crit, alert, or emerg左到右,越来越粗糙

3. debug: 未来用于调试使用,短时间开启,网站访问量较大别开

给每个虚拟主机指定自己独立的错误日志
##需要先把nginx.conf里面的error_log注释
##给cxk.conf增加自己的错误日志
server {listen 80;server_name  cxk.oldboylinux.cn;error_log  /var/log/nginx/cxk.oldboylinux.cn/error.log notice;root /app/code/cxk;location / {index index.html;}}
nginx -t
systemctl  reload nginx
##创建错误日志目录和文件
mkdir -p  /var/log/nginx/cxk.oldboylinux/
touch /var/log/nginx/cxk.oldboylinux/error.log

 6.3 访问日志

1. 辅助我们进行分析,网站访问量

2. log_format指定访问日志的格式

3.log_format 格式名字 格式.....

Ngx访问日志格式(ngx内置变量)说明
$remote_addr客户端ip地址
$request请求报文的起始行
$statushttp状态码
$body_bytes_sent响应给客户的文件的大小,响应报文的主体大小(文件大小) 单位字节
$http_user_agent客户端代理(浏览器)
$http_x_forwarded_forXFF头,负载中使用,记录用户真实的ip地址
$time_local时间
$remote_user用户名

给每个虚拟主机指定自己独立的访问日志
##需要把nginx.conf里面的access_log注释
##给cxk.conf创建访问日志
server {listen       80;server_name  cxk.oldboylinux.cn;error_log    /var/log/nginx/cxk.oldboylinux/error_log notice;access_log   /var/log/nginx/cxk.oldboylinux/access-log main;location / {root   /app/code/cxk;index  index.html;}
}
nginx -t
systemctl  reload nginx

7. Location规则

7.1 概述

1. 在ngx用于匹配用户请求中的uri.ngx对用户请求中的uri进行判断

2. 如果用户请求的uri是xxxx,则做xxxx

3. URI vs URL:

URL:  https://nginx.org/en/docs/

URI:    /en/docs/  域名后面的内容

7.2 搭建大型直播购物网站

域名:buy.oldboylinux.cn

站点目录:/app/code/buy/

首页文件index.html  

后台管理页面:/app/code/buy/admin/index.html

要求后台只能内网访问:172.16.1.0/24网段

##创建buy.conf配置文件,编写配置文件
server {listen 80;server_name buy.oldboylinux.cn;location / {index index.html;root /app/code/buy;}##管理后台##uri: /admin/location /admin/{allow 172.16.1.0/24;deny all;
}
}
##准备站点目录
mkdir -p /app/code/buy/  ##首页端
echo '这是首页' >/app/code/buy/index.html
mkdir -p /app/code/buy/admin/ ##管理端
echo '这是管理端' >/app/code/buy/admin/index.html
##测试
curl -H Host:buy.oldboylinux.cn  http://10.0.0.8/admin/
curl -H Host:buy.oldboylinux.cn  http://172.16.1.8/admin/

7.3 浏览器缓存

给cxk网站加速,设置缓存,网站中html,js,css结尾的文件缓存1天,图片缓存1小时
##给cxk.conf设置缓存
server {listen       80;server_name  cxk.oldboylinux.cn;error_log    /var/log/nginx/cxk.oldboylinux/error_log notice;access_log   /var/log/nginx/cxk.oldboylinux/access-log main;root   /app/code/cxk;location / {index  index.html;}## uri包含.html或者.js或者.css缓存一天location ~* \.(html|js|css)$ {expires 1d;}location ~* \.(jpg|jpeg|png|gif|bmp)$ {expires 1h;}
}

7.4 location 规则小结

location规则说明
location / {xxxx}默认规则,保底,location规则在进行匹配的时候,其他的规则都匹配失败了,这时候匹 配默认的规则
location /admin/ {}

用于匹配请求的uri

buy.oldboylinux.cn/admin/

location ~ \. (jpg|jpeg)$ {}支持正则,区分大小写 cxk.oldboylinux.cn/lidao/lidao.jpg
 location ~* \. (jpg|jpeg)$ {}支持正则,不区分大小写 cxk.oldboylinux.cn/lidao/lidao.jpg

相关文章:

Web集群服务-Nginx

1. web服务 1. WEB服务:网站服务,部署并启动了这个服务,你就可以搭建一个网站 2. WEB中间件: 等同于WEB服务 3. 中间件:范围更加广泛,指的负载均衡之后的服务 4. 数据库中间件:数据库缓存,消息对列 2. 极速上手指南 nginx官网: nginx documentation 2.1 配置yum源 vim /etc/…...

获取时隔半个钟的三天

摘要&#xff1a; 今天遇到需求是配送时间&#xff0c;时隔半个钟的排线&#xff01;所以需要拼接时间&#xff01;例如2024-10-08 14&#xff1a;30&#xff0c;2024-10-08 15&#xff1a;00&#xff0c;2024-10-08 15&#xff1a;30 <el-form-item label"配送时间&a…...

构建可以ssh连接的容器镜像

构建可以ssh连接的容器镜像 构建可以通过ssh进行连接容器镜像&#xff0c;实现远程登录容器的目的。 ubuntu ssh容器镜像 你可以使用以下Dockerfile来构建一个可以SSH的容器镜像&#xff1a; FROM ubuntu:20.04MAINTAINER lldhsds# 配置apt国内源 COPY sources.list /etc/a…...

数据库中JOIN的用法?

在数据库中&#xff0c;JOIN 操作用于结合来自两个或多个表的数据&#xff0c;基于它们之间的相关列。JOIN 是关系数据库查询中一个非常重要的功能&#xff0c;允许你从多个表中提取相关的数据。以下是几种常见的 JOIN 类型及其用法&#xff1a; INNER JOIN: 返回两个表中匹配的…...

java项目之纺织品企业财务管理系统源码(springboot+vue+mysql)

风定落花生&#xff0c;歌声逐流水&#xff0c;大家好我是风歌&#xff0c;混迹在java圈的辛苦码农。今天要和大家聊的是一款基于springboot的纺织品企业财务管理系统。项目源码以及部署相关请联系风歌&#xff0c;文末附上联系信息 。 项目简介&#xff1a; 基于spring boot…...

C语言 编程练习:解决五个有趣的问题

文章目录 编程练习&#xff1a;解决五个有趣的问题1. 出租车费用计算器1. 1 代码code 2. 成绩转换统计2. 1 代码code 3. 交错序列求和3. 1 代码code 4. 阶乘序列求和4. 1 代码code 5. 输出星号图案5. 1 代码code 编程练习&#xff1a;解决五个有趣的问题 在编程的世界里&#…...

二、安装vmtools

1、 介绍 vmtools 安装后&#xff0c;可以让我们在 windows 下更好的管理 vm 虚拟机。可以设置 windows 和 centos 的共享文件夹 当时当我们发现安装虚拟机工具位置是灰色的 右击打开终端 在终端输入命令 yum list installed | grep open-vm-*yum list installed 命令会列出…...

用echarts画天气预报

如图 上代码 <template><div id"temp15day"></div> </template><script setup> import * as echarts from "echarts"; const initChart () > {const machart echarts.init(document.getElementById("temp15day&q…...

如果要存IP地址,用什么数据类型比较好?(java)

存储IP地址需要考虑到IPv4和IPv6的不同特点&#xff0c;以及系统的需求。我们可以从字符串、整数和二进制三种常用方式来讨论如何高效存储和处理IP地址。 1. IPv4存储 1.1 字符串存储 优点&#xff1a;直观易读&#xff0c;简单易用。缺点&#xff1a;占用更多的存储空间&am…...

LinkedList源码解读

这里写目录标题 简介源码解读基础变量构造函数LinkedList()LinkedList(Collection<? extends E> c) 总结 简介 LinkedList 是对 Java 集合框架中 List 接口的一种具体实现&#xff0c;归属于线性数据结构的范畴。其核心内部结构是通过双向链表&#xff08;double-linke…...

springboot feign-httpclient 连接池配置

在默认情况下 spring cloud feign 在进行各个子服务之间的调用时&#xff0c;http组件使用的是jdk的HttpURLConnection&#xff0c;没有使用线程池。有2种可选的线程池&#xff1a;HttpClient 和 OKHttp 在Spring Boot项目中使用Feign并配置HttpClient连接池&#xff0c;你需要…...

电汽车充电革命:充电桩的过去现在与未来

电动汽车充电革命&#xff1a;中国充电桩行业的过去、现在与未来 一、发展历程概述 中国充电桩行业的发展历程可划分为以下几个阶段&#xff1a; 1. 初始期&#xff08;2006-2008年&#xff09;&#xff1a;在此阶段&#xff0c;国家队主导市场&#xff0c;主要参与者包括国…...

windows server 2019中安装.net framework 3.5功能出错

转自金蝶云社区|财务金融企业信息化|IT精英人脉圈子-金蝶云社区官网 [故障现象] Windows server 2019系统安装net framework3.5时默认情况下会出现报错,提示错误:error 0x800F0954。 问题说明: 根据网上资料尝试了几种方式都不行: (1)离线下载net framework3.5进行安装(不…...

vscode gitlens收费破解

首先打开vscode 插件栏 搜索GitLens 找到对应插件 这里我已经安装完成&#xff0c;如果未安装的点击install 并且下载指定版本V15.1.0 不然后续操作 不生效 找到对应面板 点击查看GitLens 安装完成后&#xff0c;并不能立即使用 显示一下内容&#xff0c;需要付费 这里很关键&…...

IPv 4

IP协议 网络层主要由IP&#xff08;网际协议&#xff09;和ICMP&#xff08;控制报文协议&#xff09;构成&#xff0c;对应OSI中的网络层&#xff0c;网络层以实现逻辑层面点对点通信为目的。目前应用最广泛的IP协议为IPv4 基本概念给出 主机&#xff1a;配有IP地址但不具有路…...

SQL 注入漏洞 - 学习手册

0x01&#xff1a;SQL 注入前导知识 0x0101&#xff1a;SQL 注入 —— MySQL 数据库概述 知识速查&#xff1a;SQL 注入前导知识 SQL 注入 —— MySQL 数据库概述 获取数据库名 : select schema_name from information_schema.schemata;获取数据表名 : select table_name from …...

AVLTree 旋转笔记(根据平衡因子插入的公式,贼好理解)

平衡因子 avltree是一棵每个节点的左右子树的高度差不超过1的二叉树搜索树&#xff0c;对于avltree最重要的就是对平衡因子的控制。 对于旋转我们重点要注意的是三个节点&#xff0c;以左旋举例&#xff0c;需要注意的就是parent&#xff0c;subr&#xff0c;subrl。而旋转的方…...

STM32(十八):SPI通信

SPI通信&#xff1a; SPI&#xff08;Serial Peripheral Interface&#xff09;是由Motorola公司开发的一种通用数据总线 四根通信线&#xff1a;SCK&#xff08;Serial Clock&#xff09;、MOSI&#xff08;Master Output Slave Input&#xff09;主机输出从机输入、MISO&…...

Redis持久化机制(RDBAOF详解)

目录 一、Redis持久化介绍二、Redis持久化方式1、RDB持久化(1) 介绍(2) RDB持久化触发机制(3) RDB优点和缺点(4) RDB流程 2、AOF(append only file)持久化(1) 介绍(2) AOF优点和缺点(3) AOF文件重写(4) AOF文件重写流程 三、AOF和RDB持久化注意事项 一、Redis持久化介绍 Redis…...

蛋白质结构中pdbx_strand_id和entity_id相互转化

在蛋白质结构中,entity_id 和 pdbx_strand_id 表示的是不同的概念,涉及到不同层次的信息。 1. entity_id (实体 ID): 定义:entity_id 标识蛋白质结构中的一个“实体”(entity)。一个实体可以是一个多肽链、DNA 链、RNA 链,或者某些小分子(如辅因子、配体等)。特点:每…...

[特殊字符] 智能合约中的数据是如何在区块链中保持一致的?

&#x1f9e0; 智能合约中的数据是如何在区块链中保持一致的&#xff1f; 为什么所有区块链节点都能得出相同结果&#xff1f;合约调用这么复杂&#xff0c;状态真能保持一致吗&#xff1f;本篇带你从底层视角理解“状态一致性”的真相。 一、智能合约的数据存储在哪里&#xf…...

label-studio的使用教程(导入本地路径)

文章目录 1. 准备环境2. 脚本启动2.1 Windows2.2 Linux 3. 安装label-studio机器学习后端3.1 pip安装(推荐)3.2 GitHub仓库安装 4. 后端配置4.1 yolo环境4.2 引入后端模型4.3 修改脚本4.4 启动后端 5. 标注工程5.1 创建工程5.2 配置图片路径5.3 配置工程类型标签5.4 配置模型5.…...

在HarmonyOS ArkTS ArkUI-X 5.0及以上版本中,手势开发全攻略:

在 HarmonyOS 应用开发中&#xff0c;手势交互是连接用户与设备的核心纽带。ArkTS 框架提供了丰富的手势处理能力&#xff0c;既支持点击、长按、拖拽等基础单一手势的精细控制&#xff0c;也能通过多种绑定策略解决父子组件的手势竞争问题。本文将结合官方开发文档&#xff0c…...

[ICLR 2022]How Much Can CLIP Benefit Vision-and-Language Tasks?

论文网址&#xff1a;pdf 英文是纯手打的&#xff01;论文原文的summarizing and paraphrasing。可能会出现难以避免的拼写错误和语法错误&#xff0c;若有发现欢迎评论指正&#xff01;文章偏向于笔记&#xff0c;谨慎食用 目录 1. 心得 2. 论文逐段精读 2.1. Abstract 2…...

MVC 数据库

MVC 数据库 引言 在软件开发领域,Model-View-Controller(MVC)是一种流行的软件架构模式,它将应用程序分为三个核心组件:模型(Model)、视图(View)和控制器(Controller)。这种模式有助于提高代码的可维护性和可扩展性。本文将深入探讨MVC架构与数据库之间的关系,以…...

macOS多出来了:Google云端硬盘、YouTube、表格、幻灯片、Gmail、Google文档等应用

文章目录 问题现象问题原因解决办法 问题现象 macOS启动台&#xff08;Launchpad&#xff09;多出来了&#xff1a;Google云端硬盘、YouTube、表格、幻灯片、Gmail、Google文档等应用。 问题原因 很明显&#xff0c;都是Google家的办公全家桶。这些应用并不是通过独立安装的…...

Java-41 深入浅出 Spring - 声明式事务的支持 事务配置 XML模式 XML+注解模式

点一下关注吧&#xff01;&#xff01;&#xff01;非常感谢&#xff01;&#xff01;持续更新&#xff01;&#xff01;&#xff01; &#x1f680; AI篇持续更新中&#xff01;&#xff08;长期更新&#xff09; 目前2025年06月05日更新到&#xff1a; AI炼丹日志-28 - Aud…...

【从零学习JVM|第三篇】类的生命周期(高频面试题)

前言&#xff1a; 在Java编程中&#xff0c;类的生命周期是指类从被加载到内存中开始&#xff0c;到被卸载出内存为止的整个过程。了解类的生命周期对于理解Java程序的运行机制以及性能优化非常重要。本文会深入探寻类的生命周期&#xff0c;让读者对此有深刻印象。 目录 ​…...

【JavaSE】多线程基础学习笔记

多线程基础 -线程相关概念 程序&#xff08;Program&#xff09; 是为完成特定任务、用某种语言编写的一组指令的集合简单的说:就是我们写的代码 进程 进程是指运行中的程序&#xff0c;比如我们使用QQ&#xff0c;就启动了一个进程&#xff0c;操作系统就会为该进程分配内存…...

[ACTF2020 新生赛]Include 1(php://filter伪协议)

题目 做法 启动靶机&#xff0c;点进去 点进去 查看URL&#xff0c;有 ?fileflag.php说明存在文件包含&#xff0c;原理是php://filter 协议 当它与包含函数结合时&#xff0c;php://filter流会被当作php文件执行。 用php://filter加编码&#xff0c;能让PHP把文件内容…...