【Nginx 网络服务】

news2024/11/26 22:22:28

目录

  • 一、Nginx和Apache的优点和缺点
  • 二、编译安装Nginx服务
    • 1.关闭防火墙,将安装nginx所需软件包传到/opt目录下
    • 2.安装依赖包
    • 3.创建运行用户、组
    • 4.编译安装Nginx
    • 5.检查、启动、重启、停止 nqinx服务
  • 三、认识Nginx服务的主配置文件 nginx.conf
    • 1、系统文件支持数量
    • 2.全局配置
    • 3.I/O 事件配置
    • 4.HTTP 配置
  • 四、访问状态统计配置
  • 五、基于授权的访问控制
    • 1.生成用户密码认证文件
  • 六、基于域名的 Nginx 虚拟主机
    • 1.为虚拟主机提供域名解析
    • 2.为虚拟主机准备网页文档
    • 3.修改Nginx的配置文件
  • 七、安装 MySQL 服务
    • 1、安装Mysql环境依赖包
    • 2、创建运行用户
    • 3、编译安装
    • 4.创建mysql用户
    • 5.修改mysql 配置文件
    • 6、.更改mysql安装目录和配置文件的属主属组
    • 7.设置路径环境变量
    • 8.初始化数据库
    • 9.添加mysqld系统服务
    • 10.修改mysql 的登录密码
    • 11.授权远程登录
  • 八、安装配置 PHP 解析环境
    • 1、安装环境依赖包
    • 2、编译安装
    • 3、路径优化
    • 4、调整PHP配置文件
    • 5、启动php-fpm
    • 6、配置 Nginx 支持 PHP 解析
    • 7、验证PHP 测试页
    • 8、验证数据库工作是否正常
  • 九、部署 Discuz!社区论坛 Web 应用
    • 1、社区论坛
    • 2、博客论坛


一、Nginx和Apache的优点和缺点

Nginx相对于Apache的优点:

轻量级,同样是 web 服务,比Apache 占用更少的内存及资源,高并发,Nginx 处理请求是异步非塞的,而Apache 则是阻塞型的,在高并发下Nginx 能保持低资源低消耗高性能;高度模块化的设计
编写模块相对简单;社区活跃,各种高性能模块出品迅速

Apache 相对于Nginx 的优点:

rewrite,比Nginx 的rewrite强大; 模块超多,基本想到的都可以找到; 少bug,Nginx 的bug 相对较多; 超稳定存在就是理由,一般来说,需要性能的web 服务,用Nginx 。如果不需要性能只求稳定,那就Apache。Nginx处理动态请求是弱项,一般动态请求要Apache去做,Nginx只适处理静态网页或反向代理。

二、编译安装Nginx服务

1.关闭防火墙,将安装nginx所需软件包传到/opt目录下

systemctl stop firewalld
systemctl disable firewalld
setenforce 0

2.安装依赖包

#nginx的配置及运行需要pcre、zlib、openss1等软件包的支持,因此需要安装这些软件的开发包,以便提供相应的库和头文件

yum -y install pcre-devel zlib-devel openssl-devel gcc gcc-c++ make

3.创建运行用户、组

(Ngnx 服务程序默认以 obody 身份运行,建议为其创建专门的用户账号,以便更准确地控制其访问权限)

useradd -M -s /sbin/nologin nginx

4.编译安装Nginx

cd /opt
tar zxvf nginx-1.24.0.tar.gz -C /opt/
#解压文件
cd nginx-1.24.0/

cd nginx-1.12.0/
./configure \
--prefix=/usr/local/nginx \
--user=nginx \
--group=nginx \
--with-http_stub_status_module

make && make install

在这里插入图片描述

# 优化路径
In -s /usr/local/nqinx/sbin/nqinx /usr/local/sbin/

#让系统识别nginx的操作命令

5.检查、启动、重启、停止 nqinx服务

检查配置文件是否配置正确
在这里插入图片描述

开启服务

在这里插入图片描述

kill 命令来进行停止

kill -15   #默认

kill -9   #强杀

kill -3   #优雅的杀除,可以保存日志,杀除后

kill -1   #重载配置文件

kill -0   #检查进程是否在运行

请添加图片描述

在这里插入图片描述

查看进程号

master process   #管理工作进程

worker process   #处理用户请求,读取配置文件

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

新版本升级:

tar -zxvf nginx-1.xx.xx.tar.gz 
#解压要更新安装包
cd nginx-1.xx.xx
./configure \
--prefix=/usr/local/nginx \
--user=nginx \
--group=nginx \
--with-http_stub_status_module
--with-http_ssl_module
make
mv /usr/local/nginx/sbin/nginx /usr/local/nginx/sbin/nginx_old
cp objs/nginx /usr/local/nginx/sbin/nginx

make upgrade 
 #要保证当前 nginx 进程是通过 /usr/local/nginx/sbin/nginx 启动的,而不是通过查找环境变量中那个 nginx 命令启动的
#或者先 killall nginx ,再/usr/local/nginx/sbin/nginx

6、添加 Nginx 系统服务

vim /lib/systemd/system/nginx.service

[Unit]
Description=nginx
After=network.target
[Service]
Type=forking
PIDFile=/usr/local/nginx/logs/nginx.pid
ExecStart=/usr/local/nginx/sbin/nginx
ExecReload=/bin/kill -s HUP $MAINPID
ExecStop=/bin/kill -s QUIT $MAINPID
PrivateTmp=true
[Install]
WantedBy=multi-user.target

加权限

chmod 754 /lib/systemd/system/nginx.service

重新启动服务,开启开机自动启动

在这里插入图片描述

三、认识Nginx服务的主配置文件 nginx.conf

1、全局块:全局配置,对全局生效;
2、events块:配置影响 Nginx 服务器与用户的网络连接;
3、http块:配置代理,缓存,日志定义等绝大多数功能和第三方模块的配置;
4、server块:配置虚拟主机的相关参数,一个 http 块中可以有多个 server 块;
5、location块:用于配置匹配的 uri ;
6、upstream:配置后端服务器具体地址,负载均衡配置不可或缺的部分。

1、系统文件支持数量

ulimit -n 60000  
#临时修改,关机重启后会恢复默认值

在这里插入图片描述

永久修改工作进程

设置完后要重启主机才能生效 reboot

vim /etc/security/limits.conf
#进入添加进程最大可以打开的文件数

在这里插入图片描述

2.全局配置

vim /usr/local/nginx/conf/nginx.conf
#user nobody; 					
#运行用户,若编译时未指定则默认为 nobody

worker_processes 1; 			
#工作进程数量,一般设置为和 CPU 核数一样;设置为auto,nginx将会自己获取这个数值

#error_log logs/error.log; 		
#错误日志文件的位置

#pid logs/nginx.pid; 			
#PID 文件的位置

worker_rlimit_nofile 60000;		
#设置所有worker进程最大可以打开的文件数,默认为1024

3.I/O 事件配置

events {
    use epoll; 					#使用 epoll I/O模型,2.6及以上版本的系统内核,建议使用epoll模型以提高性能
    worker_connections 60000; 	#每个进程处理 60000 个连接
    multi_accept on;            #是否一次性将监听到的连接全接收进来,默认为off,关闭时一次接收一条连接
    accept_mutex on;            #默认为on,开启时表示以串行方式接入新连接,否则将通报给所有worker。这可能会浪费资源并产生不可预计的后果,例如惊群问题
}

如提高每个进程的连接数还需执行“ulimit -n 65535”命令临时修改本地每个进程可以同时打开的最大文件数。

#在Linux平台上,在进行高并发TCP连接处理时,最高的并发数量都要受到系统对用户单一进程同时可打开文件数量的限制(这是因为系统为每个TCP连接都要创建一个socket句柄,每个socket句柄同时也是一个文件句柄)。

#可使用ulimit -a命令查看系统允许当前用户进程打开的文件数限制。

#epoll是Linux内核为处理大批句柄而作改进的poll,是Linux下多路复用IO接口select/poll的增强版本,它能显著的减少程序在大量并发连接中只有少量活跃的情况下的系统CPU利用率。

#worker_processes的值和work_connections的值决定了最大并发数量,最大并发数计算方式为:worker_processesworker_connections。==但在反向代理场景中计算方法不同,因为nginx既要维持和客户端的连接,又要维持和后端服务器的连接,因此处理一次连接要占用2个连接,==所以最大并发数计算方式为:worker_processesworker_connections/2

在这里插入图片描述

4.HTTP 配置

vim /usr/local/nginx/conf/nginx.conf
http {
	##文件扩展名与文件类型映射表
    include       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  logs/access.log  main;
	##开启文件传输模式
    sendfile        on;
	##只在sendfile on时有效。调用tcp_cork方法,让数据包不会马上传送出去,等到数据包最大时,一次性的传输出去,这样有助于解决网络堵塞。默认为off。
    #tcp_nopush     on;
	##连接保持超时时间,单位是秒
    #keepalive_timeout  0;
    keepalive_timeout  65;
	##gzip模块设置,设置是否开启gzip压缩输出
    #gzip  on;
	
	##Web 服务的监听配置
	server {
		##监听地址及端口
		listen 80; 
		##站点域名,可以有多个,用空格隔开
		server_name www.kgc.com;
		##网页的默认字符集
		charset utf-8;
		##根目录配置
		location / {
			##网站根目录的位置/usr/local/nginx/html
			root html;
			##默认首页文件名
			index index.html index.php;
		}
		##内部错误的反馈页面
		error_page 500 502 503 504 /50x.html;
		##错误页面配置
		location = /50x.html {
			root html;
		}
	}
}

在这里插入图片描述

日志格式设定:

$remote_addr$http_x_forwarded_for用以记录客户端的ip地址;
$remote_user:用来记录客户端用户名称;
$time_local: 用来记录访问时间与时区;
$request: 用来记录请求的url与http协议;
$status: 用来记录请求状态;成功是200,
$body_bytes_sent :记录发送给客户端文件主体内容大小;
$http_referer:用来记录从哪个页面链接访问过来的;
$http_user_agent:记录客户浏览器的相关信息;
通常web服务器放在反向代理的后面,这样就不能获取到客户的IP地址了,通过$remote_add拿到的IP地址是反向代理服务器的iP地址。反向代理服务器在转发请求的http头信息中,可以增加x_forwarded_for信息,用以记录原有客户端的IP地址和原来客户端的请求的服务器地址。
location常见配置指令,root、alias、proxy_pass
root(根路径配置):root /var/www/html
请求www.kgc.com/test/1.html,会返回文件/var/www/html/test/1.html

alias(别名配置):alias /var/www/html
请求www.kgc.com/test/1.html,会返回文件/var/www/html/1.html

proxy_pass(反向代理配置)

在这里插入图片描述

nginx.conf 里面添加一个内容
在这里插入图片描述

在这里插入图片描述

四、访问状态统计配置

1.先使用命令/usr/local/nginx/sbin/nginx -V 查看已安装的 Nginx 是否包含 HTTP_STUB_STATUS 模块

cat /opt/nginx-1.24.0/auto/options | grep YES 
#可查看 nginx 已安装的所有模块

想要关闭模块可以使用

configure  --without-http-cache

添加 stub_status 配置

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

Active connections:表示当前的活动连接数,即当前与 Nginx 服务器建立的连接数。
server accepts handled requests :表示已经处理的连接信息
三个数字依次表示服务器已接收的连接数;服务器成功处理的连接数;服务器累计处理的总请求数(在保持连接模式下,请求数量可能会大于连接数量)
Reading:表示当前正在从客户端读取数据的连接数。
Writing:表示当前正在向客户端写入数据的连接数。
Waiting:表示当前空闲并等待请求的连接数。
curl -Ls http://192.168.102.40/status 结合 awk与if 语句进行性能监控。

查看并发量
在这里插入图片描述
使用脚本自动查看并发量

#!/bin/bash
while true
do

ACTIVECONN=$(curl -Ls 192.168.102.40/status | awk '/Active connections/{print $3}')

if [ $ACTIVECONN -gt 3 ];then
     echo "告警! 当前并发连接过高! 当前并发数为:$ACTIVECONN"
fi

sleep 10  #每10秒进行查看并发量
done

在这里插入图片描述

五、基于授权的访问控制

1.生成用户密码认证文件

yum install -y httpd-tools

htpasswd -c /usr/local/nginx/userlist zhangsan
chown nginx /usr/local/nginx/passwd.db
chmod 400 /usr/local/nginx/passwd.db

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

 location /status {
             stub_status on;
             access_log off;
             auth_basic "hellow world";
             auth_basic_user_file /usr/local/nginx/userlist;
             allow 192.168.102.40;     ##允许访问的客户端 IP
             deny all;                 #拒绝其它IP客户端访问    
        }

六、基于域名的 Nginx 虚拟主机

1.为虚拟主机提供域名解析

echo "192.168.102.40 www.dznb.com www.benet.com" >> /etc/hosts

在这里插入图片描述

2.为虚拟主机准备网页文档

在这里插入图片描述

3.修改Nginx的配置文件

vim /usr/local/nginx/conf/nginx.conf
http {
......
	server {
		listen 80;
		server_name www.dznb.com;					#设置域名www.kgc.com
		charset utf-8;
		access_log logs/www.dznb.access.log; 		#设置日志名
		location / {
			root /var/www/html/dznb;					#设置www.kgc.com 的工作目录
			index index.html index.php;
		}
		error_page 500 502 503 504 /50x.html;
		location = 50x.html{
			root html;
		}
	}
	
	server {
		listen 80;
		server_name www.benet.com;					#设置域名www.benet.com
		charset utf-8;
		access_log logs/www.benet.access.log; 
		location / {
			root /var/www/html/benet;
			index index.html index.php;
		}
		error_page 500 502 503 504 /50x.html;
		location = 50x.html{
			root html;
		}
	}	
}

修改后重新启动服务
在这里插入图片描述

七、安装 MySQL 服务

1、安装Mysql环境依赖包

yum -y install \
ncurses \
ncurses-devel \
bison \
cmake \
openssl openssl-devel

2、创建运行用户

useradd -M -s /sbin/nologin  mysql

3、编译安装

cd /opt/mysql-5.7.41/
cmake \
-DCMAKE_INSTALL_PREFIX=/usr/local/mysql \
-DMYSQL_UNIX_ADDR=/usr/local/mysql/mysql.sock \
-DSYSCONFDIR=/etc \
-DSYSTEMD_PID_DIR=/usr/local/mysql \
-DDEFAULT_CHARSET=utf8  \
-DDEFAULT_COLLATION=utf8_general_ci \
-DWITH_EXTRA_CHARSETS=all \
-DWITH_INNOBASE_STORAGE_ENGINE=1 \
-DWITH_ARCHIVE_STORAGE_ENGINE=1 \
-DWITH_BLACKHOLE_STORAGE_ENGINE=1 \
-DWITH_PERFSCHEMA_STORAGE_ENGINE=1 \
-DMYSQL_DATADIR=/usr/local/mysql/data \
-DWITH_BOOST=boost \
-DWITH_SYSTEMD=1
make && make install

注意:如果在CMAKE的过程中有报错,当报错解决后,需要把源码目录中的CMakeCache.txt文件删除,然后再重新CMAKE,否则错误依旧

4.创建mysql用户

useradd -M -s /sbin/nologin  mysql

5.修改mysql 配置文件

vim /etc/my.cnf								#删除原配置项,再重新添加下面内容
[client]									#客户端设置
port = 3306
socket = /usr/local/mysql/mysql.sock			

[mysql]										#服务端设置
port = 3306
socket = /usr/local/mysql/mysql.sock
auto-rehash									#开启自动补全功能

[mysqld]									#服务全局设置
user = mysql       							#设置管理用户
basedir=/usr/local/mysql					#指定数据库的安装目录
datadir=/usr/local/mysql/data				#指定数据库文件的存储路径
port = 3306									#指定端口
character-set-server=utf8					#设置服务器字符集编码格式为utf8
pid-file = /usr/local/mysql/mysqld.pid		#指定pid 进程文件路径
socket=/usr/local/mysql/mysql.sock			#指定数据库连接文件
bind-address = 0.0.0.0						#设置监听地址,0.0.0.0代表允许所有,如允许多个IP需空格隔开
skip-name-resolve							#禁用DNS解析
max_connections=2048						#设置mysql的最大连接数
default-storage-engine=INNODB				#指定默认存储引擎
max_allowed_packet=16M						#设置数据库接收的数据包大小的最大值
server-id = 1								#指定服务ID号

sql_mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES,NO_AUTO_CREATE_USER,NO_AUTO_VALUE_ON_ZERO,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,PIPES_AS_CONCAT,ANSI_QUOTES

[client]
port = 3306
socket=/usr/local/mysql/mysql.sock

[mysql]
port = 3306
socket = /usr/local/mysql/mysql.sock
auto-rehash

[mysqld]
user = mysql
basedir=/usr/local/mysql
datadir=/usr/local/mysql/data
port = 3306
character-set-server=utf8
pid-file = /usr/local/mysql/mysqld.pid
socket=/usr/local/mysql/mysql.sock
bind-address = 0.0.0.0
skip-name-resolve
max_connections=2048
default-storage-engine=INNODB
max_allowed_packet=16M
server-id = 1

sql_mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES,NO_AUTO_CREATE_USER,NO_AUTO_VALUE_ON_ZERO,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,PIPES_AS_CONCAT,ANSI_QUOTES

6、.更改mysql安装目录和配置文件的属主属组

chown -R mysql:mysql /usr/local/mysql/
chown mysql:mysql /etc/my.cnf

7.设置路径环境变量

echo 'export PATH=/usr/local/mysql/bin:/usr/local/mysql/lib:$PATH' >> /etc/profile	

source /etc/profile  #重新加载环境变量

在这里插入图片描述

8.初始化数据库

cd /usr/local/mysql/bin/

./mysqld \
--initialize-insecure \				#生成初始化密码为空
--user=mysql \                      #指定管理用户
--basedir=/usr/local/mysql \        #指定数据库的安装目录
--datadir=/usr/local/mysql/data		#指定数据库文件的存储路径
----------------------------------------------------------------------------------------------------------
./mysqld \
--initialize-insecure \
--user=mysql \
--basedir=/usr/local/mysql \
--datadir=/usr/local/mysql/data

9.添加mysqld系统服务

cp /usr/local/mysql/usr/lib/systemd/system/mysqld.service /usr/lib/systemd/system/		#用于systemctl服务管理
systemctl daemon-reload         #刷新识别     
systemctl start mysqld.service  #开启服务
systemctl enable mysqld         #开机自启动
netstat -anpt | grep 3306       #查看端口

在这里插入图片描述

10.修改mysql 的登录密码

mysqladmin -u root password "abc123" 	#给root账号设置密码为abc123,原始密码为空

11.授权远程登录

mysql -u root -p
grant all privileges on *.* to 'root'@'%' identified by 'abc123';
#授予root用户可以在所有终端远程登录,使用的密码是abc123,并对所有数据库和所有表有操作权限

show databases;			#查看当前已有的数据库

在这里插入图片描述

八、安装配置 PHP 解析环境

1、安装环境依赖包

在这里插入图片描述

2、编译安装

字号4

cd /opt
tar jxvf php-7.1.10.tar.bz2
cd php-7.1.10
./configure \
--prefix=/usr/local/php \
--with-mysql-sock=/usr/local/mysql/mysql.sock \
--with-mysqli \
--with-zlib \
--with-curl \
--with-gd \
--with-jpeg-dir \
--with-png-dir \
--with-freetype-dir \
--with-openssl \
--enable-fpm \
--enable-mbstring \
--enable-xml \
--enable-session \
--enable-ftp \
--enable-pdo \
--enable-tokenizer \
--enable-zip

make && make install

3、路径优化

ln -s /usr/local/php/bin/* /usr/local/bin/

ln -s /usr/local/php/sbin/* /usr/local/sbin/

在这里插入图片描述

4、调整PHP配置文件

php有三个配置文件: 
php.ini			主配置文件  
php-fpm.conf	进程服务配置文件 
www.conf		扩展配置文件

#调整主配置文件:

cp /opt/php-7.1.10/php.ini-development /usr/local/php/lib/php.ini	
vim /usr/local/php/lib/php.ini
--1170行--修改
mysqli.default_socket = /usr/local/mysql/mysql.sock
--939行--取消注释,修改
date.timezone = Asia/Shanghai

php -m 					#验证安装的模块

在这里插入图片描述

调整进程服务配置文件:

cd /usr/local/php/etc/
cp  php-fpm.conf.default php-fpm.conf
vim php-fpm.conf
--17行--去掉";"注释
pid = run/php-fpm.pid

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

调整扩展配置文件:

cd /usr/local/php/etc/php-fpm.d/
cp www.conf.default www.conf

在这里插入图片描述

5、启动php-fpm

/usr/local/php/sbin/php-fpm -c /usr/local/php/lib/php.ini
netstat -anpt | grep 9000

#PHP-FPM(FastCGI Process Manager:FastCGI 进程管理器)是一个 PHPFastCGI 管理器, 由于Nginx服务器不能处理动态页面,需要由 Nginx 把动态请求交给 php-fpm 进程进行解析。
cd /opt/php-7.1.10/sapi/fpm

cp php-fpm.service /usr/lib/systemd/system/php-fpm.service

systemctl restart php-fpm.service
systemctl enable php-fpm.service 
#进行开机自动启动

查看端口有没有打开
在这里插入图片描述

6、配置 Nginx 支持 PHP 解析

vim /usr/local/nginx/conf/nginx.conf
--65行--取消注释,修改
location ~ \.php$ {
	root           html;
	fastcgi_pass   192.168.102.40:9000;
	fastcgi_index  index.php;
	fastcgi_param  SCRIPT_FILENAME  /usr/local/nginx/html$fastcgi_script_name;	
	#将 /scripts 修改为nginx的工作目录
   #fastcgi_param  SCRIPT_FILENAME $document_root$fastcgi_script_name;  #$document_root 代表当前请求在root指令中指定的值
	include        fastcgi_params;
}

systemctl restart nginx.service

在这里插入图片描述

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

7、验证PHP 测试页

vim /usr/local/nginx/html/index.php
<?php
phpinfo();
?>

在这里插入图片描述

使用浏览器来验证
在这里插入图片描述

8、验证数据库工作是否正常

mysql -u root -p
CREATE DATABASE bbs;

GRANT all ON bbs.* TO 'bbsuser'@'%' IDENTIFIED BY 'admin123';

GRANT all ON bbs.* TO 'bbsuser'@'localhost' IDENTIFIED BY 'admin123';

flush privileges;

在这里插入图片描述

vim /usr/local/nginx/html/index.php      		#替换原来的测试页内容
<?php
$link=mysqli_connect('192.168.102.40','bbsadmin','admin123');
if($link) echo "<h1>Success!!</h1>";
else echo "Fail!!";
?>

浏览器访问

在这里插入图片描述

九、部署 Discuz!社区论坛 Web 应用

1、社区论坛

cd /opt
unzip Discuz_X3.4_SC_UTF8.zip  -d /opt/dis
#解压文件
cd /opt/dis/dir_SC_UTF8/
cp -r upload/ /usr/local/nginx/html/bbs/

在这里插入图片描述

使用浏览器访问
在这里插入图片描述

出现这个问题要加入权限
在这里插入图片描述
增加权限

chown -R nginx data/ config/ uc_*

在这里插入图片描述

使用全新安装
在这里插入图片描述

设置数据的密码和管理员密码
在这里插入图片描述

论坛安装完成
在这里插入图片描述

2、博客论坛

解压和加入权限
在这里插入图片描述

创建新的数据库
在这里插入图片描述

使用浏览器查看
在这里插入图片描述

使用之前创建的账户和密码
在这里插入图片描述

创建成功
在这里插入图片描述

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

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

相关文章

商场内怎么导航?商场导航图怎么画?

商场内怎么导航&#xff1f;大型购物商场是目前一二线城市最常见的购物场所&#xff0c;占地面积较大&#xff0c;布局错综复杂&#xff0c;商品比较齐全&#xff0c;如果没有商场地图导航&#xff0c;会导致新顾客难以找到想要的商品&#xff0c;那么大型购物商场商场地图怎么…

索引特性.

目录 没有索引&#xff0c;可能会有什么问题认识磁盘MySQL与存储先来研究一下磁盘在看看磁盘中一个盘片扇区定位扇区结论磁盘随机访问(Random Access)与连续访问(Sequential Access) MySQL 与磁盘交互基本单位建立共识索引的理解建立测试表插入多条记录查看插入结果中断一下---…

打跑个人开源转角的“拦路虎”——我的开源之路

从参与Apache 开源项目&#xff0c;到凭借业务需求独自开发个人开源项目&#xff1b;从项目开源出来无人问津到至今500star&#xff0c;多个企业级用户&#xff0c;在开源过程中&#xff0c;我也从走过低谷&#xff0c;一度想过放弃&#xff0c;但仍然选择坚持至今日。 这一路…

Data Distillation: A Survey

本文是蒸馏学习综述系列的第二篇文章&#xff0c;Data Distillation: A Survey的一个翻译 数据蒸馏&#xff1a;综述 摘要1 引言2 数据蒸馏框架2.1 元模型匹配的数据蒸馏2.2 梯度匹配的数据蒸馏2.3 轨迹匹配的数据蒸馏2.4 分布匹配的数据蒸馏2.5 因式分解的数据蒸馏 3 数据模态…

深度探索:Qt CMake工程编译后的自动打包策略

深度探索&#xff1a;Qt CMake工程编译后的自动打包策略 1. 引言&#xff08;Introduction&#xff09;1.1 Qt和CMake的基本概念&#xff08;Basic Concepts of Qt and CMake&#xff09;1.2 自动打包的重要性&#xff08;Importance of Automatic Packaging&#xff09; 2. Qt…

ELK +Filebeat日志分析系统

一、 ELK日志分析系统概述 1、ELK简介 ELK是三个开源软件的缩写&#xff0c;分别表示&#xff1a;Elasticsearch , Logstash, Kibana , 它们都是开源软件。新增了一个FileBeat&#xff0c;它是一个轻量级的日志收集处理工具(Agent)&#xff0c;Filebeat占用资源少&#xff0c…

我是如何将家里的台式机改成服务器的

大家好,我是雄雄,欢迎关注微信公众号:雄雄的小课堂 文章目录 前言准备工作电脑宽带公网ip光猫给成桥接方式设置路由器设置服务器静态ip地址前言 搞研发的伙伴们,都知道服务器是个什么东西,以及服务器的作用、费用,相信都一清二楚。一般,我们用服务器说的简单点就是放一…

自动驾驶车载MCU开发修炼秘籍

目录 车载MCU开发修炼秘籍1、恩智浦 S32K1XX系列2、英飞凌 AURIX TC3XX3、嵌入式实时操作系统-FreeRTOS4、车载实时操作系统-AUTOSAR 车载MCU开发修炼秘籍 1、恩智浦 S32K1XX系列 S32K14X学习笔记&#xff08;一&#xff09;–S32K汽车MCU资源总结 S32K14X学习笔记&#xff1a…

启用Windows防火墙后,FTP传输非常慢

我们有一个计划任务&#xff0c;该任务使用Windows命令行FTP程序在两个Windows服务器之间传输大文件&#xff08;〜130 MB&#xff09;。速度很慢&#xff08;大约需要30分钟&#xff09;&#xff0c;有时会在传输完成之前终止。服务器是2003年&#xff08;发送&#xff09;和2…

chatgpt赋能python:Python主题设置——让你的网页更吸引人的秘诀

Python主题设置——让你的网页更吸引人的秘诀 近年来&#xff0c;Python在网页开发中的应用越来越广泛。不仅仅用于后端开发&#xff0c;Python也可以帮助我们设置网页主题&#xff0c;使得网页更加美观、易读、易用。本文将介绍Python主题设置的几个方面&#xff0c;帮助您让…

Redis学习手册(实例代码)

在下面的代码示例中&#xff0c;将给出两种最为常用的Redis命令操作方式&#xff0c;既普通调用方式和基于管线的调用方式。 注&#xff1a;在阅读代码时请留意注释。 1 #include <stdio.h>2 #include <stdlib.h>3 #include <stddef.h>4 #include <st…

git合并代码后,目录被删除了

问题&#xff1a; 同事x在a分支使用git checkout b -- test.md命令抽取b的文件&#xff0c;然后把代码合并到merge-c。 同事y在merge-c分支&#xff0c;合并了自己的分支b&#xff0c;然后拉取同事x的分支&#xff0c;发现产生了冲突&#xff0c;解决了冲突后提交。 最后发现自…

独立成分分析ICA

独立成分分析 ICA 1. 算法原理简介2.源信号与混合信号的差异2.1 独立性 Independence2.2 高斯性 Normality2.3 复杂性 Complexity 3.非高斯性的度量3.1 峭度 Kurtosis 参考文献 blind source separation (BSS) 1. 算法原理简介 mixing得到signal mixture过程&#xff1a; x 1…

如何开发背包扩容功能?

UE5 插件开发指南 前言0 数据结构1 数据读取2 事件流程3 小结前言 在背包系统中有个扩容功能,可以增加背包的负重和容量,之前没有细讲,这里针对这个问题进行补充,而快捷栏扩容和背包扩容是同样的思路,所以就不去额外解析快捷栏扩容了。如果大家可以理解背包系统,那么快捷…

【MySQL索引】提高查询速度和效率

1、认识索引 假设现在大家要去 MySQL 书中找索引的内容&#xff0c;大家应该不会拿着 MySQL 的书一张一张去找&#xff0c;而是会看MySQL 书的目录&#xff0c;然后通过目录找到索引对应的页码&#xff0c;再去对应的页码中查看索引的内容 索引的优点&#xff1a; 索引就相当于…

文本三剑客

目录 文本三剑客 grep grep和egrep grep命令格式 grep命令格式 grep运用示例 正则表达式 基本正则表达式 拓展正则表达式 sed 使用sed sed用法示例 常用选项options示例 地址界定示例 编辑命令示例 sed高级编辑命令 awk awk的使用 printf命令 操作符 awk …

【嵌入式烧录/刷写文件】-2.7-将一个文本文件转换为Intel hex文件

案例背景(共5页精讲)&#xff1a; 有如下两个文本文件&#xff08;*.txt&#xff0c;*.ini&#xff0c;*.asc…&#xff09;转换为Intel hex文件。常用于Key密钥&#xff0c;signature签名…的导入&#xff0c;或对一段数据计算出hex记录的最后一个字节的校验值&#xff0c;接…

Text-to-Table: A New Way of Information Extraction

原文链接&#xff1a; https://aclanthology.org/2022.acl-long.180.pdf ACL 2022 介绍 作者受到table-to-text任务&#xff08;用于生成描述给定表格的文本语言&#xff09;的启发&#xff0c;提出了text-to-table的新任务&#xff0c;根据给定的文本&#xff0c;来生成用于文…

分布式基础概念

分布式基础概念 1. 微服务2. 集群&分布式&节点3. 远程调用4. 负载均衡5. 服务注册/发现&注册中心6. 配置中心7. 服务熔断&服务降级8. API网关 1. 微服务 微服务架构风格&#xff0c;就是把一个单体架构按照业务拆分成多个服务模块&#xff0c;每个模块之间独立…

LAMP架构搭建实操(终有弱水替沧海,再无相思寄巫山”大概意思就是,你会遇到很多人,但不会有人像我那么爱你了。)

文章目录 一、安装Nginx服务1.安装依赖包2.创建Nginx运行用户3.编译安装Nginx源码包4.优化路径便于使用5、添加 Nginx 系统服务 二、安装Mysql服务1.安装Mysql环境依赖包2.创建Mysql运行用户3.编译安装4.修改mysql配置文件5.更改mysql安装目录和配置文件的属主属组6.设置路径环…