web集群-nginx(nginx三种文件模块,nginx用户请求流程,域名访问网站,虚拟主机,搭建大型直播购物平台)

nginx文件模块

在这里插入图片描述

  • lineinfile
  • 未来修改配置文件使用,类似于sed -i ‘sg’ 和sed ‘cai’

掌握file模块:创建文件,目录,创建软链接,修改权限和所有者,删除文件目录

服务管理systemd

systemctl相当于linux systemctl命令

name:指定服务名称

enabled:yes开机自启动

state:表示服务开,关,重启

​         state=started开启

​         state= stopped关闭

​         state=reloaded重读配置文件(服务支持)

​         state=restarted重启(关闭再开启)

daemon-reload yes是否重新加载对应的服务的管理配置文件

案例:开启crond服务并且设置开机自启动

[root@m01 ~]#ansible all -m systemd -a 'name=crond enabled=yes state=started'

在这里插入图片描述

案例:关闭防火墙并设置开机自启动

[root@m01 ~]#ansible all -m systemd -a 'name=firewalld enabled=no state=started'

在这里插入图片描述

yum模块

yum模块并不支持只是yum命令,包括yum、apt命令

name 软件包名字,可以指定多个,逗号进行分割

state    installed 安装(也可以写多个写为present)(默认)

​           removed 删除(也可以写为absent)

​           lastest安装或更新

update_cache 可以设置为no加加速,表示不更新本地yum缓存,实际应用建议开启
[root@m01 ~]#ansible all -m yum -a 'name=htop,tree,lrzsz update_cache=yes state=present'

在这里插入图片描述

get_url 模块

相当于是wget命令,所有主机能访问网络才行

推荐在管理节点下载好,使用copy仅仅分发即可

实践

部署hs.wulinlinux.cn网站

域名:hs.wulinlinux.cn

站点目录:/app/code/wulin

代码来源:自己前端茶叶项目.zip

配置yum源:

[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

检查安装:

[root@web01 ~]#rpm -ql nginx
/etc/logrotate.d/nginx
/etc/nginx
/etc/nginx/conf.d
/etc/nginx/conf.d/default.conf
/etc/nginx/fastcgi_params
/etc/nginx/mime.types
/etc/nginx/modules
/etc/nginx/nginx.conf
/etc/nginx/scgi_params
/etc/nginx/uwsgi_params
/usr/lib/systemd/system/nginx-debug.service
/usr/lib/systemd/system/nginx.service
/usr/lib64/nginx
/usr/lib64/nginx/modules
/usr/libexec/initscripts/legacy-actions/nginx
/usr/libexec/initscripts/legacy-actions/nginx/check-reload
/usr/libexec/initscripts/legacy-actions/nginx/upgrade
/usr/sbin/nginx
/usr/sbin/nginx-debug
/usr/share/doc/nginx-1.26.0
/usr/share/doc/nginx-1.26.0/COPYRIGHT
/usr/share/man/man8/nginx.8.gz
/usr/share/nginx
/usr/share/nginx/html
/usr/share/nginx/html/50x.html
/usr/share/nginx/html/index.html
/var/cache/nginx
/var/log/nginx

目录结构:
nginx不同的安装方法,目录,文件会有区别:

/etc/nginx/ nginx各种配置目录

/etc/nginx/nginx.conf 主配置文件

/etc/nginx/conf.d/ 子配置文件(网站)

/etc/nginx/conf.d/default.conf 默认的子配置文件

/usr/sbin/nginx nginx命令

/usr/share/nginx/html/ nginx默认的站点目录,网站的根目录

/var/log/nginx/ 访问日志,错误日志

/etc/logrotate.d/nginx 日志切割(防止文件过大)

/etc/nginx/mime.types 媒体类型

/etc/nginx/uwsgi_params nginx+php

/etc/nginx/uwsgi_params ngx+python

/usr/lib/systemd/system/nginx.service systemctl配置文件

/var/cache/nginx/ 缓存目录

启动与管理

[root@web01 ~]#systemctl enable nginx
Created symlink from /etc/systemd/system/multi-user.target.wants/nginx.service to /usr/lib/systemd/system/nginx.service.
启动
[root@web01 ~]#systemctl start nginx
查看状态
[root@web01 ~]#systemctl status nginx
● nginx.service - nginx - high performance web server
   Loaded: loaded (/usr/lib/systemd/system/nginx.service; enabled; vendor preset: disabled)
   Active: active (running) since 二 2024-05-21 14:21:50 CST; 13s ago
     Docs: http://nginx.org/en/docs/
  Process: 41390 ExecStart=/usr/sbin/nginx -c /etc/nginx/nginx.conf (code=exited, status=0/S)
 Main PID: 41391 (nginx)
   CGroup: /system.slice/nginx.service
           ├─41391 nginx: master process /usr/sbin/nginx -c /etc/nginx/nginx.conf
           └─41392 nginx: worker process

查看端口
[root@web01 ~]#ss -lntup |grep nginx
tcp    LISTEN     0      511       *:80                    *:*                   users:(("nginx",pid=41392,fd=6),("nginx",pid=41391,fd=6))

查看进程信息
[root@web01 ~]#ps -ef |grep nginx
root      41391      1  0 14:21 ?        00:00:00 nginx: master process /usr/sbin/nginx -c /etc/nginx/nginx.conf
nginx     41392  41391  0 14:21 ?        00:00:00 nginx: worker process
root      41507  37912  0 14:26 pts/0    00:00:00 grep --color=auto nginx

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
命令行访问:

[root@web01 ~]#curl 192.168.28.7
[root@web01 ~]#curl -v 192.168.28.7
[root@web01 ~]#curl 192.168.28.7
wulin linux jiagou of nginx page---2025/5/21
[root@web01 ~]#curl -v 192.168.28.7
 * About to connect() to 192.168.28.7 port 80 (#0)
 *   Trying 192.168.28.7...
 * Connected to 192.168.28.7 (192.168.28.7) port 80 (#0)
> GET / HTTP/1.1
> User-Agent: curl/7.29.0
> Host: 192.168.28.7
> Accept: */*
> 
< HTTP/1.1 200 OK
< Server: nginx/1.26.0
< Date: Tue, 21 May 2024 06:42:32 GMT
< Content-Type: text/html
< Content-Length: 45
< Last-Modified: Tue, 21 May 2024 06:40:26 GMT
< Connection: keep-alive
< ETag: "664c41da-2d"
< Accept-Ranges: bytes
< 
wulin linux jiagou of nginx page---2025/5/21
 * Connection #0 to host 192.168.28.7 left intact

nginx主配置文件

  • nginx每一行结尾要加上;
  • 如果有{}或()时候不加

  • uesr 叫nginx指令

  • server {#
    区域server
    }

[root@web01 ~]#vim /etc/nginx/nginx.conf 

核心配置区域:

user  nginx;  指定所属用户(虚拟用户)
worker_processes  auto;(工具人进程数量,处理用户请求的进程,当前数量是自动)

error_log  /var/log/nginx/error.log notice;(nginx错误日志记录及位置)
pid        /var/run/nginx.pid; (pid文件)



user  nginx; ()
worker_processes  auto;

error_log  /var/log/nginx/error.log notice;
pid        /var/run/nginx.pid;

events区域

events {
    worker_connections  1024;((工具人进程可以处理多个连接--每个工具人进程最大的连接数)
}

http区域(7层区域网站上的配置各种层都在这里)

http {
    include       /etc/nginx/mime.types;(引用的媒体类型)
    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;(提高nginx性能)

    keepalive_timeout  65;

    #gzip  on;

    include /etc/nginx/conf.d/*.conf;(文件包含或引用nginx配置文件中获取其他文件引用nginx子配置文件)
}

vim /etc/nginx/mimetypes

egrep -v ‘^$|#’ /etc/nginx/conf.d/default.conf
在这里插入图片描述

[root@web01 /etc/nginx]#cd /etc/nginx/conf.d
[root@web01 /etc/nginx/conf.d]#vim hs.wulin.cn.conf

在这里插入图片描述

[root@web01 /etc/nginx/conf.d]#nginx -t
nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
nginx: configuration file /etc/nginx/nginx.conf test is successful
[root@web01 /etc/nginx/conf.d]#systemctl reload nginx

创建放置代码目录

mkdir -p /app/code/hswulin
这里是部署hswulin网站,不推荐直接传输到web服务器(安全隐患)

在这里插入图片描述
解压

[root@web01 ~]#unzip -t  hswulin网易云案例.zip

在这里插入图片描述
解压到当前目录

[root@web01 ~]#unzip   hswulin网易云案例.zip -d /app/code/wulin/
Archive:  hswulin网易云案例.zip

在这里插入图片描述
在这里插入图片描述

配置linux和windows hosts解析

#win:C:\Windows\System32\drivers\etc\hosts

windows下面win+r

#linux: /etc/hosts

保存域名:
在这里插入图片描述
然后在浏览器访问:hs.wulinlinux.cn
在这里插入图片描述

nginx处理用户请求流程

上面搭建的hs.wulinlinux.cn网站,使用域名或者ip访问进行了成功

那么将liulan.hs.wulinlinux.cn.conf使用域名或者ip访问?

结果:

  • 域名访问网站没有任何的问题
  • 使用ip访问则是静态页面,另外的一个网站

使用域名访问网站流程

  1. DNS解析:域名-》ip地址
  2. tcp3次握手与网站的80端口建立连接
  3. http请求报文:请求方法,URL,HOST
  • GET /index.html

  • HOST :hs.wulinlinux.cn

  • User-angent:chrom/xxx

  1. nginx处理:
  • http请求,http区域

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

  • 端口

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

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

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

  1. http响应报文:
  • 状态码:200 ok
  • server信息
  • 其他信息
  • 文件内容
  1. 客户收到文件内容,浏览器进行解析,进行展示

不管你是进行域名访问还是,ip访问我们只需再nginx下的default.conf设置

设置default_server
看看是否默认server处理

  • 如果没有则对应的server{}
  • 如果没有则安装配置文件顺序第一个进行处理
    在这里插入图片描述

虚拟主机(网站)

  • 再nginx中通过server{}区域进行实现

  • nginx中虚拟主机有不同的类型(配置不同)

域名的虚拟主机-不同域名访问的不同网站—生产环境使用

端口虚拟主机-----不同端口访问不同的站点------保护设置特殊端口

基于IP的虚拟主机—不同ip访问不同的站点----保护,用户只能通过某个ip连接进来,用来限制网站只能通过ip进行访问指定ip访问内网的IP

在这里插入图片描述
在这里插入图片描述
nginx日志
在这里插入图片描述
如何给每个虚拟主机指定独立的错误日志/访问日志

错误日志:发生故障 通过错误级别指定 error_log

访问日志 : 记录用户什么时候进行访问,网站那些页面及客户端信息–通过log_format定义访问日志格式

access_log

搭建大型直播购物平台

域名:buy

[root@web01 /etc/nginx/conf.d]#vim buy.wulinlinux.cn.conf
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
[root@web01 /etc/nginx/conf.d]#systemctl reload nginx

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

[stm32]温湿度采集与OLED显示

一、I2C总线协议 I2C&#xff08;Inter-integrated circuit &#xff09;是一种允许从不同的芯片或电路与不同的主芯片通信的协议。它仅用于短距离通信&#xff0c;是一种用于两个或多个设备之间进行数据传输的串行总线技术&#xff0c;它可以让你在微处理器、传感器、存储器、…

UE5开发游戏Tutorial

文章目录 PlayerStart 初始化设置默认 LevelBP_Character 初始化BP_Character 添加动画BP_Character 攻击BP_Enemy 初始化 以及 AI 运动Camera Collision 相机碰撞BP_Character 生命以及伤害Wave Spawner 波生成UI 初始化以及 Damage Screen指定位置随机生成添加声音环境 Envir…

使用SpringCache实现Redis缓存

目录 一 什么是Spring Cache 二 Spring Cache 各注解作用 ①EnableCaching ②Cacheable ③CachePut ④CacheEvict 三实现步骤 ①导入spring cache依赖和Redis依赖 ②配置Redis连接信息 ③在启动类上加上开启spring cache的注解 ④ 在对应的方法上加上需要的注解 一 什么…

PINN解偏微分方程实例4

PINN解偏微分方程实例4 一、正问题1. Diffusion equation2. Burgers’ equation3. Allen–Cahn equation4. Wave equation 二、反问题1. Burgers’ equation3. 部分代码示例 本文使用 PINN解偏微分方程实例1中展示的代码求解了以四个具体的偏微分方程&#xff0c;包括Diffusio…

长亭谛听教程部署和详细教程

PPT 图片先挂着 挺概念的 谛听的能力 hw的时候可能会问你用过的安全产品能力能加分挺重要 溯源反制 反制很重要感觉很厉害 取证分析 诱捕牵制 其实就是蜜罐 有模板直接爬取某些网页模板进行伪装 部署要求 挺低的 对linux内核版本有要求 需要root 还有系统配置也要修改 …

论文阅读--Efficient Hybrid Zoom using Camera Fusion on Mobile Phones

这是谷歌影像团队 2023 年发表在 Siggraph Asia 上的一篇文章&#xff0c;主要介绍的是利用多摄融合的思路进行变焦。 单反相机因为卓越的硬件性能&#xff0c;可以非常方便的实现光学变焦。不过目前的智能手机&#xff0c;受制于物理空间的限制&#xff0c;还不能做到像单反一…

long long ago

一、long 众所周知&#xff0c;英文单词 long&#xff0c;表示长,长的。 但是&#xff0c;还有很多你不知道到的东西&#xff0c;根据英文单词首字母象形原则&#xff0c;我们可以做一下单词long结构分析&#xff1a; long l长 ong长 什么意思&#xff1f;就是说首字线 l…

Maven的依赖传递、依赖管理、依赖作用域

在Maven项目中通常会引入大量依赖&#xff0c;但依赖管理不当&#xff0c;会造成版本混乱冲突或者目标包臃肿。因此&#xff0c;我们以SpringBoot为例&#xff0c;从三方面探索依赖的使用规则。 1、 依赖传递 依赖是会传递的&#xff0c;依赖的依赖也会连带引入。例如在项目中…

AI大模型企业应用实战(14)-langchain的Embedding

1 安装依赖 ! pip install --upgrade langchain ! pip install --upgrade openai0.27.8 ! pip install -U langchain-openai ! pip show openai ! pip show langchain ! pip show langchain-openai 2 Embed_documents # 1. 导入所需的库 from langchain_openai import Open…

poi生成的excel,输入数字后变成1.11111111111111E+23

poi版本4.1.2 生成excel后&#xff0c;单元格输入数字&#xff0c;过长的话变成这样 解决&#xff1a;生成的时候设置单元格格式为文本格式 import org.apache.poi.ss.usermodel.*; import org.apache.poi.xssf.usermodel.XSSFWorkbook;import java.io.FileOutputStream; imp…

解析PDF文件中的图片为文本

解析PDF文件中的图片为文本 1 介绍 解析PDF文件中的图片&#xff0c;由两种思路&#xff0c;一种是自己读取PDF文件中的图片&#xff0c;然后用OCR解析&#xff0c;例如&#xff1a;使用PyMuPDF读取pdf文件&#xff0c;再用PaddleOCR或者Tesseract-OCR识别文字。另一种使用第…

使用matlab的大坑,复数向量转置!!!!!变量区“转置变量“功能(共轭转置)、矩阵转置(默认也是共轭转置)、点转置

近期用verilog去做FFT相关的项目&#xff0c;需要用到matlab进行仿真然后和verilog出来的结果来做对比&#xff0c;然后计算误差。近期使用matlab犯了一个错误&#xff0c;极大的拖慢了项目进展&#xff0c;给我人都整emo了&#xff0c;因为怎么做仿真结果都不对&#xff0c;还…

clean code-代码整洁之道 阅读笔记(第十一章)

第十一章 系统 “复杂要人命,它消磨开发者的生命&#xff0c;让产品难以规划、构建和测试。” --RayOzzie&#xff0c;微软公司首席技术官 11.1 如何建造一个城市 每个城市都有一组组人管理不同的部分&#xff0c;有些人负责全局&#xff0c;其他人负责细节。 城市能运转&#…

【git】gitee仓库本地克隆失败可能的一种解决办法

出错点&#xff1a; 在 gitee 克隆远程仓库到 本地时&#xff0c;可能会出现以下报错情况&#xff0c;无法成功克隆 正常流程&#xff1a;&#xff08;熟悉正常克隆流程的可以直接跳到下面的【解决办法】&#xff09; 我们一般复制仓库地址是在下面红线框框的位置&#xff0c…

虚拟现实环境下的远程教育和智能评估系统(十二)

接下来&#xff0c;把实时注视点位置、语音文本知识点、帧知识点区域进行匹配&#xff1b; 首先&#xff0c;第一步是匹配语音文本知识点和帧知识点区域&#xff0c;我们知道教师所说的每句话对应的知识点&#xff0c;然后寻找当前时间段内&#xff0c;知识点对应的ppt中的区域…

线程C++

#include <thread> #include <chrono> #include <cmath> #include <mutex> #include <iostream> using namespace std;mutex mtx; void threadCommunicat() {int ans 0;while (ans<3){mtx.lock();//上锁cout << "ans" <…

C++初学者指南第一步---14.函数调用机制

C初学者指南第一步—14.函数调用机制 文章目录 C初学者指南第一步---14.函数调用机制1.记住&#xff1a;内存的结构2.函数调用是如何工作的3. 不要引用局部变量4. 常见编译器优化5. Inlining内联 1.记住&#xff1a;内存的结构 堆&#xff08;自由存储&#xff09; 用于动态存…

Cesium如何高性能的实现上万条道路的流光穿梭效果

大家好&#xff0c;我是日拱一卒的攻城师不浪&#xff0c;专注可视化、数字孪生、前端、nodejs、AI学习、GIS等学习沉淀&#xff0c;这是2024年输出的第20/100篇文章&#xff1b; 前言 在智慧城市的项目中&#xff0c;经常会碰到这样一个需求&#xff1a;领导要求将全市的道路…

PADS学习笔记

1.PADS设计PCB流程 封装库&#xff08;layout&#xff09;&#xff0c;原理图库&#xff08;logic&#xff09;的准备原件封装的匹配&#xff08;logic&#xff09;原理图的绘制&#xff08;logic&#xff09;导网表操作&#xff08;logic&#xff09;导入结构&#xff08;lay…

SpringBoot + 虚拟线程,鸟枪换大炮!

“虚拟”线程&#xff0c;望文生义&#xff0c;它是“假”的&#xff0c;它不直接调度操作系统的线程&#xff0c;而是由JVM再提供一层线程的接口抽象&#xff0c;由普通线程调度&#xff0c;即一个普通的操作系统线程可以调度成千上万个虚拟线程。 虚拟线程比普通线程的消耗要…