nginx服务以及实验举例

目录

Nginx简介

概述

Nginx和Apache 的比较

nginx相对于apache的优点

apache相对于nginx的优点

Nginx作为web服务器与Apache比较

Linux 中的 I/O

磁盘 I/O buff/cache的区别

同步/异步

阻塞/非阻塞

异步非阻塞 I/O模型

nginx 实验操作举例,优先将防火墙和安全终端全部关闭

编译安装 nginx

添加 nginx服务脚本

nginx平滑升级的步骤

临时/永久修改最大并发

修改配置文件最大文件打开数

nginx 的 root和alias 指定路径的区别

nginx 访问状态统计

nginx 授权访问控制

基于域名的 Nginx 虚拟主机

基于IP 的 Nginx 虚拟主机

基于端口的 Nginx 虚拟主机

nginx 客户端访问控制


Nginx简介

概述
  • Nginx是一个高性能的HTTP和反向代理服务器。

  • 是一款轻量级的高性能的web服务器/反向代理服务器/电子邮件(IMAP/POP3)代理服务器

  • 单台物理服务器可支持30 000~50 000个并发请求。

Nginx和Apache 的比较

nginx相对于apache的优点
  • 轻量级,同样起web服务,比apache占用更少的内存及资源

  • 抗并发,nginx处理请求是异步非阻塞的,而apache是阻塞型的在高并发下,nginx能保持低资

  • 源低消耗高性能

  • 高度模块化的设计,编写模块相对简

apache相对于nginx的优点
  • Rewrite比nginx的rewrite强大 (rewrite的主要功能就是实现统一资源定位符URL的跳转)

  • 模块多,基本想到的都可以找到

  • 少bug, nginx的bug相对较多

  • 超稳定

—— 存在的理由:一般来说,需要性能的web服务,用nginx;若不需要性能只求稳定,就选用apache

Nginx作为web服务器与Apache比较

相比apache,nginx使用更少的资源,支持更多的并发连接,体现更高的效率

  • Nginx 作为负载均衡服务器:nginx既可以在内部直接支持 rails和php 程序对外进行服务,也可以支持http代理服务器对外进行服务

  • Nginx 采用 C进行编写,不论是系统资源开销还是 CPU使用效率都比较好

  • 作为邮件代理服务器:最早开发这个产品的目的之一也是作为邮件代理服务器

  • apache 是同步多进程模型,一个连接对应一个进程,nginx是异步的,多个连接可以对应一个进程

  • Nginx 处理静态文件好,耗费内存少,只适合静态和反向

  • Apache 在处理动态有优势

  • nginx 并发性比较好,CPU占用内存低,如果 rewrite频繁,选用 apache最佳

  • 总的来说,apache依然是大部分公司的首选


Linux 中的 I/O

—— I/O在计算机中指 Input/Output,lOPS (Input/Output Per Second)即每秒的输入输出量(或读写次数),是衡量磁盘性能的主要指标之一。IOPS是指单位时间内系统能处理的I/O请求数量,一般以每秒处理的 I/O请求数量为单位,I/O请求通常为读或写数据操作请求

—— 一次完整的 I/O是用户空间的进程数据与内核空间的内核数据的报文的完整交换,但是由于内核空间与用户空间是严格隔离的,所以其数据交换过程中不能由用户空间的进程直接调用内核空间的内存数据,而是需要经历一次从内核空间中的内存数据 copy到用户空间的进程内存当中,所以简单说 I/O就是把数据从内核空间中的内存数据复制到用户空间中进程的内存当中

磁盘 I/O buff/cache的区别

—— 网络 I/O:一切皆文件,本质为对 socket文件的读写 ——

获取请求数据,客户端与服务器建立连接发出请求,服务器接受请求(1-3)
构建响应,当服务器接收完请求,并在用户空间处理客户端的请求,直到构建响应完成(4)
返回数据,服务器将已构建好的响应再通过内核空间的网络I/0发还给客户端(5-7)

同步/异步

关注的是消息通信机制,即调用者在等待一件事情的处理结果时,被调用者是否提供完成状态的通知。

—— 同步:synchronous,被调用者并不提供事件的处理结果相关的通知消息,需要调用者主动询问事情是否处理完成

—— 异步:asynchronous,被调用者通过状态、通知或回调机制主动通知调用者被调用者的运行状态

阻塞/非阻塞

关注调用者在等待结果返回之前所处的状态

—— 阻塞:blocking,指 IO操作需要彻底完成后才返回到用户空间,调用结果返回之前,调用者被挂起,干不了别的事情。

—— 非阻塞:nonblocking,指 IO操作被调用后立即返回给用户一个状态值,而无需等到 IO操作彻底完成,在最终的调用结果返回之前,调用者不会被挂起,可以去做别的事情

异步非阻塞 I/O模型


nginx 实验操作举例,优先将防火墙和安全终端全部关闭

编译安装 nginx

#从官网中下载 nginx安装包
[root@localhost opt]# ls
nginx-1.24.0.tar.gz

#解压安装包
[root@localhost opt]# tar xf nginx-1.24.0.tar.gz 
[root@localhost opt]# ls
nginx-1.24.0  nginx-1.24.0.tar.gz

#yum安装编译环境
[root@localhost opt]# yum -y install pcre-devel zlib-devel openssl-devel gcc gcc-c++ make

#新建程序用户
[root@localhost opt]# useradd -M -s /sbin/nologin nginx

#创建文件夹
[root@localhost opt]# mkdir -p /apps/nginx 

#cd到 nginx-1.24.0目录,并进行编译安装
[root@localhost opt]# cd nginx-1.24.0/
[root@localhost nginx-1.24.0]# ./configure --prefix=/usr/local/nginx --user=nginx --group=nginx --with-http_stub_status_module
[root@localhost nginx-1.24.0]# make -j 4 && make install

#给 nginx建立软链接
[root@localhost nginx-1.24.0]# ln -s /usr/local/nginx/sbin/nginx /usr/local/sbin/

#检查 nginx配置文件是否正确
[root@localhost nginx-1.24.0]# nginx -t
nginx: the configuration file /usr/local/nginx/conf/nginx.conf syntax is ok
nginx: configuration file /usr/local/nginx/conf/nginx.conf test is successful

#开启 nginx服务,并查看 nginx服务是否开启以及 nginx的PID号 
[root@localhost nginx-1.24.0]# nginx
[root@localhost nginx-1.24.0]# ss -natp|grep nginx
LISTEN     0      128          *:80                       *:*                   users:(("nginx",pid=46089,fd=6),("nginx",pid=46088,fd=6))
 


添加 nginx服务脚本

#进入目录编写脚本
[root@localhost nginx-1.24.0]# vim /etc/init.d/nginx

#添加脚本
#!/bin/bash
#chkconfig: - 99 20
#description:Nginx Service Control Script
COM="/usr/local/nginx/sbin/nginx"
PID="/usr/local/nginx/logs/nginx.pid"
case "$1" in
start)
  $COM
;;

stop)
  kill -s QUIT $(cat $PID)
;;

restart)
  $0 stop
  $0 start
;;

reload)
  kill -s HUP $(cat $PID)
;;

*)
echo "Usage: $0 {start|stop|restart|reload}"
exit 1

esac
exit 0

#赋予服务运行权限
[root@localhost nginx-1.24.0]# chmod +x /etc/init.d/nginx 

#将 nginx服务添加到系统的服务
[root@localhost nginx-1.24.0]# chkconfig --add nginx

#重启 nginx服务
[root@localhost nginx-1.24.0]# systemctl restart nginx

#查看 nginx服务是否开启
[root@localhost nginx-1.24.0]# systemctl status nginx
● nginx.service - SYSV: Nginx Service Control Script
   Loaded: loaded (/etc/rc.d/init.d/nginx; bad; vendor preset: disabled)
   Active: active (exited) since 日 2023-12-10 14:40:52 CST; 35s ago
     Docs: man:systemd-sysv-generator(8)
  Process: 46199 ExecStart=/etc/rc.d/init.d/nginx start (code=exited, status=0/SUCCESS)


nginx平滑升级的步骤

#查看 nginx服务的当前版本
[root@localhost ~]# nginx -v
nginx version: nginx/1.24.0
​
#从官网中下载 1.25.3的版本,并解压
[root@localhost opt]# ls
nginx-1.24.0  nginx-1.24.0.tar.gz  nginx-1.25.3.tar.gz
[root@localhost opt]# tar xf nginx-1.25.3.tar.gz 
[root@localhost opt]# ls
nginx-1.24.0  nginx-1.24.0.tar.gz  nginx-1.25.3  nginx-1.25.3.tar.gz
​
#cd到 nginx-1.25.3目录,并进行编译安装
[root@localhost opt]# cd nginx-1.25.3/
[root@localhost nginx-1.25.3]# ./configure --prefix=/usr/local/nginx --user=nginx --group=nginx --with-http_stub_status_module
[root@localhost nginx-1.25.3]# make -j 4
​
#将旧版本改名
[root@localhost nginx-1.25.3]# mv /usr/local/nginx/sbin/nginx /usr/local/nginx/sbin/nginx_old
​
#将新版本 nginx复制到之前的 nginx下
[root@localhost nginx-1.25.3]# cp objs/nginx /usr/local/nginx/sbin/nginx
​
#要保证当前 nginx 进程是通过 /usr/local/nginx/sbin/nginx 启动的,而不是通过查找环境变量中那个 nginx 命令启动的
[root@localhost nginx-1.25.3]# make upgrade
/usr/local/nginx/sbin/nginx -t
nginx: the configuration file /usr/local/nginx/conf/nginx.conf syntax is ok
nginx: configuration file /usr/local/nginx/conf/nginx.conf test is successful
kill -USR2 `cat /usr/local/nginx/logs/nginx.pid`
sleep 1
test -f /usr/local/nginx/logs/nginx.pid.oldbin
​
#查看版本是否更新成功
[root@localhost nginx-1.25.3]# nginx -v
nginx version: nginx/1.25.3
​

临时/永久修改最大并发

#临时修改,重启虚拟机就会恢复默认
#查看当前最大并发
[root@localhost ~]# ulimit -a
core file size          (blocks, -c) 0
data seg size           (kbytes, -d) unlimited
scheduling priority             (-e) 0
file size               (blocks, -f) unlimited
pending signals                 (-i) 14974
max locked memory       (kbytes, -l) 64
max memory size         (kbytes, -m) unlimited
open files                      (-n) 1024    #默认为1024
pipe size            (512 bytes, -p) 8
POSIX message queues     (bytes, -q) 819200
real-time priority              (-r) 0
stack size              (kbytes, -s) 8192
cpu time               (seconds, -t) unlimited
max user processes              (-u) 14974
virtual memory          (kbytes, -v) unlimited
file locks                      (-x) unlimited
#临时修改最大并发为 6000
[root@localhost ~]# ulimit -n 6000
[root@localhost ~]# ulimit -a
core file size          (blocks, -c) 0
data seg size           (kbytes, -d) unlimited
scheduling priority             (-e) 0
file size               (blocks, -f) unlimited
pending signals                 (-i) 14974
max locked memory       (kbytes, -l) 64
max memory size         (kbytes, -m) unlimited
open files                      (-n) 6000    #修改成功
pipe size            (512 bytes, -p) 8
POSIX message queues     (bytes, -q) 819200
real-time priority              (-r) 0
stack size              (kbytes, -s) 8192
cpu time               (seconds, -t) unlimited
max user processes              (-u) 14974
virtual memory          (kbytes, -v) unlimited
file locks                      (-x) unlimited
​
#永久修改
#进入配置文件永久修改
[root@localhost ~]# vim /etc/security/limits.conf 
#在文件的最后一行添加两行
#硬限制最大并发
*            hard      nofile        65535
#软限制最大并发
*            soft      nofile        65535
​
#重启虚拟机
[root@localhost ~]# reboot
​
#查看
[root@localhost ~]# ulimit -a
core file size          (blocks, -c) 0
data seg size           (kbytes, -d) unlimited
scheduling priority             (-e) 0
file size               (blocks, -f) unlimited
pending signals                 (-i) 14974
max locked memory       (kbytes, -l) 64
max memory size         (kbytes, -m) unlimited
open files                      (-n) 65535   #修改成功
pipe size            (512 bytes, -p) 8
POSIX message queues     (bytes, -q) 819200
real-time priority              (-r) 0
stack size              (kbytes, -s) 8192
cpu time               (seconds, -t) unlimited
max user processes              (-u) 14974
virtual memory          (kbytes, -v) unlimited
file locks                      (-x) unlimited
​

修改配置文件最大文件打开数

#进入配置文件并进行修改添加
[root@localhost nginx-1.25.3]# vim /usr/local/nginx/conf/nginx.conf

#检查配置文件语法是否有误
[root@localhost nginx-1.25.3]# nginx -t
nginx: the configuration file /usr/local/nginx/conf/nginx.conf syntax is ok
nginx: configuration file /usr/local/nginx/conf/nginx.conf test is successful
 


nginx 的 root和alias 指定路径的区别

#进入 nginx配置文件,并进行添加修改
[root@localhost ~]# vim /usr/local/nginx/conf/nginx.conf

#重新加载 nginx
[root@localhost ~]# systemctl reload nginx

#进入目录 var
[root@localhost ~]# cd /var

#递归创建目录
[root@localhost var]# mkdir -p /var/www/wx
[root@localhost var]# mkdir -p /var/web

#进入目录 www
[root@localhost var]# cd www
[root@localhost www]# ls
wx

#往目录 www/wx中添加文件 1.html并自定义内容
[root@localhost www]# echo 'this is wx' > wx/1.html

#进入目录 web
[root@localhost www]# cd /var/web

#往目录 web中添加文件 1.html并自定义内容
[root@localhost web]# echo 'this is alias' > 1.html
[root@localhost web]# ls
1.html  
 

—— 实验结果 ——


nginx 访问状态统计

#查看 nginx是否有--with-http_stub_status_module模块,若没有重新编译此模块
[root@localhost ~]# nginx -V
nginx version: nginx/1.25.3
built by gcc 4.8.5 20150623 (Red Hat 4.8.5-44) (GCC) 
configure arguments: --prefix=/usr/local/nginx --user=nginx --group=nginx --with-http_stub_status_module
​
#进入配置文件
[root@localhost ~]# vim /usr/local/nginx/conf/nginx.conf
​

#重新加载 nginx
[root@localhost ~]# systemctl reload nginx
 

—— 实验结果 ——

注释

  • Active connections :表示当前的活动连接数,即当前与 Nginx 服务器建立的连接数。

  • server accepts handled requests :表示已经处理的连接信息

  • 三个数字依次表示服务器已接收的连接数;服务器成功处理的连接数;服务器累计处理的总请求数(在保持连接模式下,请求数量可能会大于连接数量)

  • Reading :表示当前正在从客户端读取数据的连接数

  • Writing :表示当前正在向客户端写入数据的连接数

  • Waiting :表示当前空闲并等待请求的连接数


nginx 授权访问控制

#安装密码认证文件
[root@localhost ~]# yum install -y httpd-tools 
​
#添加自定义用户
[root@localhost ~]# htpasswd -c /usr/local/nginx/passwd.db wx
New password:#输入密码 
Re-type new password:#确认密码 
Adding password for user wx
​
#设置密码文件所属
[root@localhost ~]# chown nginx /usr/local/nginx/passwd.db
​
#赋权
[root@localhost ~]# chmod 400 /usr/local/nginx/passwd.db
​
#进入配置文件
[root@localhost ~]# vim /usr/local/nginx/conf/nginx.conf
​

#重启服务
[root@localhost ~]# systemctl restart nginx

#检查文件格式是否有误
[root@localhost ~]# nginx -t
nginx: the configuration file /usr/local/nginx/conf/nginx.conf syntax is ok
nginx: configuration file /usr/local/nginx/conf/nginx.conf test is successful
 

—— 实验结果 ——

—— 浏览器搜索 http://192.168.88.20 出现以下界面实验成功

基于域名的 Nginx 虚拟主机
为虚拟主机提供域名解析
echo "192.168.80.10 www.kgc.com www.benet.com" >> /etc/hosts
​
为虚拟主机准备网页文档
mkdir -p /var/www/html/benet
mkdir -p /var/www/html/kgc
echo "<h1>www.kgc.com</h1>" > /var/www/html/kgc/index.html
echo "<h1>www.benet.com</h1>" > /var/www/html/benet/index.html
​
修改Nginx的配置文件
vim /usr/local/nginx/conf/nginx.conf
http {
......server {listen 80;server_name www.kgc.com;                    #设置域名www.kgc.comcharset utf-8;access_log logs/www.kgc.access.log;         #设置日志名location / {root /var/www/html/kgc;                 #设置www.kgc.com 的工作目录index index.html index.php;}server {listen 80;server_name www.benet.com;                 #设置域名www.benet.comcharset utf-8;access_log logs/www.benet.access.log; location / {root /var/www/html/benet;index index.html index.php;}重启服务,访问测试
systemctl restart nginx
​
浏览器访问
http://www.kgc.com
http://www.benet.com
​

基于IP 的 Nginx 虚拟主机

ifconfig ens33:0 192.168.80.11 netmask 255.255.255.0 

修改Nginx的配置文件
vim /usr/local/nginx/conf/nginx.conf
http {
......
    server {
        listen 192.168.80.10:80;                    #设置监听地址192.168.80.10
        server_name www.kgc.com;
        charset utf-8;
        access_log logs/www.kgc.access.log; 
        location / {
            root /var/www/html/kgc;
            index index.html index.php;
        }

    server {
        listen 192.168.80.11:80;                    #设置监听地址192.168.80.11
        server_name www.benet.com;
        charset utf-8;
        access_log logs/www.benet.access.log; 
        location / {
            root /var/www/html/benet;
            index index.html index.php;
        }

重启服务,访问测试
systemctl restart nginx

浏览器访问
http://192.168.80.10
http://192.168.80.11

基于端口的 Nginx 虚拟主机
修改Nginx的配置文件
vim /usr/local/nginx/conf/nginx.conf
http {
......server {listen 192.168.80.10:8080;                  #设置监听 8080 端口server_name www.kgc.com;charset utf-8;access_log logs/www.kgc.access.log; location / {root /var/www/html/kgc;index index.html index.php;}
​server {listen 192.168.80.10:8888;                  #设置监听 8888 端口server_name www.benet.com;charset utf-8;access_log logs/www.benet.access.log; location / {root /var/www/html/benet;index index.html index.php;}
​
重启服务,访问测试
systemctl restart nginx
​
浏览器访问
http://192.168.80.11:8080
http://192.168.80.11:8888

nginx 客户端访问控制

—— 规则从上往下执行,如匹配则停止,不再往下匹配

  • deny IP/IP 段 :拒绝某个 IP 或 IP 段的客户端访问

  • allow IP/IP 段 :允许某个 IP 或 IP 段的客户端访问

#进入配置文件
[root@localhost ~]# vim /usr/local/nginx/conf/nginx.conf
 

#重启服务
[root@localhost ~]# systemctl restart nginx

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

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

相关文章

K-means算法通俗原理及Python与R语言的分别实现

K均值聚类方法是一种划分聚类方法&#xff0c;它是将数据分成互不相交的K类。K均值法先指定聚类数&#xff0c;目标是使每个数据到数据点所属聚类中心的总距离变异平方和最小&#xff0c;规定聚类中心时则是以该类数据点的平均值作为聚类中心。 01K均值法原理与步骤 对于有N个…

定时补偿方案

1&#xff1a;需求描述 支持NVR升级后通道数变更&#xff0c;完成升级后&#xff0c;设备SDK上报通道数量给A平台&#xff0c;A平台将NVR通道数量同步给B平台&#xff0c;B平台自动调用C平台接口&#xff0c;同步通道数量给C平台&#xff0c;C平台重新生成通道序列号&#xff…

SuperMap iObject.NET三维场景拖拽框选实现详解及完整源代码(一)——环境准备及项目配置

作者&#xff1a;超图研究院技术支持中心-于丁1 SuperMap iObject.NET三维场景拖拽框选实现详解及完整源代码&#xff08;一&#xff09;——环境准备及项目配置   三维场景框选是一种在三维空间中进行选择和操作的功能&#xff0c;它可以让使用者通过鼠标拖动来创建一个矩形…

【Azure 架构师学习笔记】- Azure Databricks (2) -集群

本文属于【Azure 架构师学习笔记】系列。 本文属于【Azure Databricks】系列。 接上文 【Azure 架构师学习笔记】- Azure Databricks (1) - 环境搭建 前言 在上文中提到了ADB 的其中一个核心就是集群&#xff0c;所以这里专门研究一下ADB 的集群。 ADB 集群 首先了解一下ADB…

golang学习笔记——go流水线示例

range与数组、切片、集合 Go 语言中 range 关键字用于 for 循环中迭代数组(array)、切片(slice)、通道(channel)或集合(map)的元素。在数组和切片中它返回元素的索引和索引对应的值&#xff0c;在集合中返回 key-value 对。 for 循环的 range 格式可以对 slice、map、数组、字…

SVN的下载的文件/文件夹,绿色图标没出来的解决办法

文章目录 一、适用情况示例二、SVN中文件左下角图标消失的解决步骤1. 图标消失的原因2.打开注册表3.svn相关设置4.重启生效 一、适用情况示例 SVN 下载&#xff1a; 如下图&#xff0c;左侧绿/红色图标没出来&#xff1a; 二、SVN中文件左下角图标消失的解决步骤 1. 图标消失…

html通过CDN引入Vue组件抽出复用

html通过CDN引入Vue组件抽出复用 近期遇到个需求&#xff0c;就是需要在.net MVC的项目中&#xff0c;对已有的项目的首页进行优化&#xff0c;也就是写原生html和js。但是咱是一个写前端的&#xff0c;写html还可以&#xff0c;.net的话&#xff0c;开发也不方便&#xff0c;还…

Redis 五大经典业务问题

一 缓存穿透 缓存穿透是指当请求的数据既不在缓存中也不存在于数据库中时&#xff0c;请求会直接穿透缓存层&#xff0c;到达数据库层。这通常是由于恶意攻击或者程序错误造成的&#xff0c;比如攻击者故意请求不存在的大量数据&#xff0c;导致缓存不命中&#xff0c;所有的请…

Servlet学习笔记

简介 浏览器请求处理流程&#xff1a;浏览器发请求 > 服务器tomcat( > 应用程序 ( > servlet) ) Servlet应用的三大作用域&#xff1a;request&#xff0c;session&#xff0c;application tomcat存放项目的层级结构 注释&#xff1a;servlet原引用包名 javax.serv…

机场信息集成系统系列介绍(2):机场航班报文处理系统

本文介绍机场航班报文处理系统。#机场##sita##AFTN##航空# 一、定义 机场航班报文处理系统是一种基于计算机技术的自动化处理系统&#xff0c;用于接收、解析、处理和传递与航班相关的报文信息。这些报文可能包括航班计划、航班状态更新、旅客信息等&#xff0c;通常来源于航…

(C++)只出现一次的数字I--异或

个人主页&#xff1a;Lei宝啊 愿所有美好如期而遇 力扣&#xff08;LeetCode&#xff09;官网 - 全球极客挚爱的技术成长平台备战技术面试&#xff1f;力扣提供海量技术面试资源&#xff0c;帮助你高效提升编程技能&#xff0c;轻松拿下世界 IT 名企 Dream Offer。https://le…

〖大前端 - 基础入门三大核心之JS篇㊿〗- 面向对象之对象的方法、遍历、深浅克隆

说明&#xff1a;该文属于 大前端全栈架构白宝书专栏&#xff0c;目前阶段免费&#xff0c;如需要项目实战或者是体系化资源&#xff0c;文末名片加V&#xff01;作者&#xff1a;哈哥撩编程&#xff0c;十余年工作经验, 从事过全栈研发、产品经理等工作&#xff0c;目前在公司…

【Linux】进程间通信之共享内存/消息队列/信号量

文章目录 一、共享内存的概念及原理二、共享内存相关接口说明1.shmget函数2.ftok函数3.shmat函数4.shmdt函数5.shmctl函数 三、用共享内存实现server&client通信1.shm_server.cc2.shm_client.cc3.comm.hpp4.查看ipc资源及其特征5.共享内存的优缺点6.共享内存的数据结构 四、…

【GIS】JDK版本升级到17后,GeoServer的图层无法通过openLayer预览

JDK版本升级到17后&#xff0c;图层无法通过openLayer预览 1. 错误图示 终端输出的错误 网页端无法显示图层&#xff0c;并且输出错误提示 2.原因猜测 估计可能是由于java17的模块化&#xff0c;Java被分成了多个独立部署和运行的模块&#xff0c;这使得Java应用能够更快…

Wireshark添加自定义协议解析

最终效果如下&#xff1a; 参考文档&#xff1a;https://mika-s.github.io/topics/ 此参考文档中7个例子教我们如何编写lua脚本去识别我们自定义的协议 安装Wireshark https://www.wireshark.org/上下载安装包安装即可。我的安装路径是D:\Install\Wireshark&#xff0c;在W…

kafka学习笔记--基础知识概述

本文内容来自尚硅谷B站公开教学视频&#xff0c;仅做个人总结、学习、复习使用&#xff0c;任何对此文章的引用&#xff0c;应当说明源出处为尚硅谷&#xff0c;不得用于商业用途。 如有侵权、联系速删 视频教程链接&#xff1a;【尚硅谷】Kafka3.x教程&#xff08;从入门到调优…

IT新闻资讯系统,使用mysql作为后台数据库,此系统具有显示数据库中的所有信息和删除两大功能。

表的准备&#xff1a; -- MySQL Administrator dump 1.4 -- -- ------------------------------------------------------ -- Server version 5.1.40-community /*!40101 SET OLD_CHARACTER_SET_CLIENTCHARACTER_SET_CLIENT */; /*!40101 SET OLD_CHARACTER_SET_RESULTSCHAR…

nodejs+vue+微信小程序+python+PHP个性化服装搭配系统APP-计算机毕业设计推荐 android

考虑到实际生活中在个性化服装搭配方面的需要以及对该系统认真的分析,将app权限按管理员和用户这两类涉及用户划分。 (a) 管理员&#xff1b;管理员使用本系统涉到的功能主要有个人中心、用户管理、个性穿搭管理、我的衣橱管理、服饰分类管理、我的收藏管理、系统管理等功能。 …

Unity使用打成图集的Sprite作为模型贴图使用的问题

大家好&#xff0c;我是阿赵。   有时候用Unity引擎做项目的时候&#xff0c;会遇到这样的需求&#xff0c;美术做了一些模型或者特效&#xff0c;然后策划想在游戏运行的时候&#xff0c;读取一些游戏图标放在特效或者模型上面当做贴图使用。   这个需求实现起来很简单&am…

【Hive】启动beeline连接hive报错解决

1、解决报错2、在datagrip上连接hive 1、解决报错 刚开始一直报错&#xff1a;启动不起来 hive-site.xml需要配置hiveserver2相关的 在hive-site.xml文件中添加如下配置信息 <!-- 指定hiveserver2连接的host --> <property><name>hive.server2.thrift.bin…