分布式 - 服务器Nginx:一小时入门系列之静态网页配置
文章目录
- 1. 静态文件配置
- 2. nginx listen 命令解析
- 3. nginx server_name 命令解析
- 4. nginx server 端口重复
- 5. nginx location 命令
1. 静态文件配置
在 /home 文件下配置一个静态的AdminLTE后台管理系统:
[root@nginx-dev conf.d]# cd /home
[root@nginx-dev home]# ls
AdminLTE-3.2.0 apache-tomcat-8.5.81 apps sql
[root@nginx-dev home]# cd AdminLTE-3.2.0/
[root@nginx-dev AdminLTE-3.2.0]# ll
total 1412
drwxr-xr-x. 6 root root 53 Feb 8 2022 build
-rwxr-xr-x. 1 root root 3173 Feb 8 2022 CODE_OF_CONDUCT.md
-rwxr-xr-x. 1 root root 469 Feb 8 2022 composer.json
drwxr-xr-x. 5 root root 38 Feb 8 2022 dist
-rwxr-xr-x. 1 root root 169 Feb 8 2022 docker-compose.yml
-rwxr-xr-x. 1 root root 171 Feb 8 2022 Dockerfile
drwxr-xr-x. 7 root root 4096 Feb 8 2022 docs
-rwxr-xr-x. 1 root root 31161 Feb 8 2022 iframe-dark.html
-rwxr-xr-x. 1 root root 31521 Feb 8 2022 iframe.html
-rwxr-xr-x. 1 root root 72974 Feb 8 2022 index2.html
-rwxr-xr-x. 1 root root 43689 Feb 8 2022 index3.html
-rwxr-xr-x. 1 root root 61756 Feb 8 2022 index.html
-rwxr-xr-x. 1 root root 1082 Feb 8 2022 LICENSE
-rwxr-xr-x. 1 root root 6778 Feb 8 2022 package.json
-rwxr-xr-x. 1 root root 1134163 Feb 8 2022 package-lock.json
drwxr-xr-x. 10 root root 196 Feb 8 2022 pages
drwxr-xr-x. 62 root root 4096 Feb 8 2022 plugins
-rwxr-xr-x. 1 root root 6716 Feb 8 2022 README.md
-rwxr-xr-x. 1 root root 13336 Feb 8 2022 starter.html
① 下面将其配置成一个web服务:nginx 配置文件位于 /etc/nginx/nginx.conf 中,其中 include 命令会引用 /etc/nginx/conf.d 目录下所有的 .conf 文件,因次可以在conf.d文件下新建一个配置文件 8000.conf
[root@nginx-dev home]# cd /etc/nginx/conf.d/
[root@nginx-dev conf.d]# ls
admin-8000.conf default.conf
[root@nginx-dev conf.d]# vi 8000.conf
[root@nginx-dev conf.d]# nginx -s reload
其中 8000.conf 配置文件的内容为:
server{listen 8000;server_name localhost;location / {root /home/AdminLTE-3.2.0;index index.html index2.html index3.html;}
}
它监听本地的 8000 端口,并将所有请求都定向到 /home/AdminLTE-3.2.0 目录下的文件。如果请求的 URL 路径是 /,则会尝试返回 index.html、index2.html 或 index3.html 中的一个作为响应。这个配置文件的作用是将本地的 AdminLTE-3.2.0 网页项目部署到 Nginx 服务器上,以便通过浏览器访问。
② 在浏览器访问8000端口:http://192.168.1.9:8000/

2. nginx listen 命令解析
nginx 是一款高性能的 Web 服务器和反向代理服务器,listen 是 nginx 配置文件中用于指定监听地址和端口的指令。
listen 指令的语法如下:
listen address[:port] [parameters];
其中,address 表示要监听的 IP 地址,可以是一个具体的 IP 地址,也可以是一个通配符,如 * 表示监听所有可用的 IP 地址。port 表示要监听的端口号,如果不指定,则默认为 80。
listen 指令还可以带有一些可选的参数,如下所示:
① default_server:指定该监听地址和端口为默认服务器,当客户端请求的域名在 nginx 中没有匹配的虚拟主机时,会使用该默认服务器处理请求。
② ssl:指定该监听地址和端口使用 SSL/TLS 加密协议进行通信。
③ http2:指定该监听地址和端口使用 HTTP/2 协议进行通信。
④ reuseport:启用 SO_REUSEPORT 选项,允许多个进程或线程同时监听同一个地址和端口,提高并发处理能力。
例如,以下配置指定 nginx 监听 192.168.1.100 的 80 端口,并启用 default_server 参数:
listen 192.168.1.100:80 default_server;
监听可以配置成IP或端口或IP+端口 :
listen 127.0.0.1:8000; 指定Nginx监听127.0.0.1的8000端口。
listen 127.0.0.1; 指定Nginx监听127.0.0.1的80端口(因为端口号未指定,默认为80)。
listen 8000; 指定Nginx监听所有可用IP地址的8000端口。
listen *:8000; 指定Nginx监听所有可用IP地址的8000端口。
listen localhost:8000; 指定Nginx监听本地主机名localhost的8000端口。
3. nginx server_name 命令解析
server_name 是 Nginx 配置文件中用于指定虚拟主机的域名或 IP 地址的指令。它用于告诉 Nginx 哪些请求应该被转发到该虚拟主机,主要用于区分,可以随便起。也可以使用变量$hostname配置成主机名。
server_name 指令可以在 http、server 和 location 块中使用。在 http 块中使用 server_name 指令可以设置默认的虚拟主机,而在 server 块中使用 server_name 指令可以设置特定的虚拟主机。
server_name 指令可以指定一个或多个域名或 IP 地址,多个域名或 IP 地址之间用空格或逗号分隔。例如:
server {listen 80;server_name example.com www.example.com;...
}
或者配置成域名:example.org www.example.org *.example.org
上面的配置指定了两个域名 example.com 和 www.example.com,当请求的主机名为这两个域名之一时,Nginx 将会将请求转发到该虚拟主机。
4. nginx server 端口重复
如果多个server的端口重复,那么根据域名或者主机名去匹配 server_name 进行选择。
① 查看 /etc/nginx/conf.d 目录下的 default.conf 文件,可以看到,配置文件监听80端口,服务器名为localhost
[root@nginx-dev conf.d]# cat /etc/nginx/conf.d/default.conf
server {listen 80;server_name localhost;location / {root /usr/share/nginx/html;index index.html index.htm;}error_page 500 502 503 504 /50x.html;location = /50x.html {root /usr/share/nginx/html;}
}
② 修改 /etc/nginx/conf.d 目录下的 8000.conf 文件,将监听端口页修改为80,重启 nginx 会提醒 conflicting server name “localhost” on 0.0.0.0:80, ignored
[root@nginx-dev conf.d]# vi /etc/nginx/conf.d/8000.conf
server{listen 80;server_name localhost;location / {root /home/AdminLTE-3.2.0;index index.html index2.html index3.html;}
}
[root@nginx-dev conf.d]# nginx -s reload
nginx: [warn] conflicting server name "localhost" on 0.0.0.0:80, ignored
③ 重新修改 /etc/nginx/conf.d 目录下的 8000.conf 文件,将 server_name 修改为 nginx-dev
[root@nginx-dev conf.d]# vi /etc/nginx/conf.d/8000.conf
server{listen 80;server_name nginx-dev;location / {root /home/AdminLTE-3.2.0;index index.html index2.html index3.html;}
}
④ 如果访问 curl http://localhost:80,那么响应的是 /usr/share/nginx/html 目录下的首页文件:
# [root@nginx-dev conf.d]# curl localhost:80 会访问这个
server {listen 80;server_name localhost;location / {root /usr/share/nginx/html;index index.html index.htm;}
}
⑤ 如果访问 curl http://nginx-dev:80,那么响应的是 /home/AdminLTE-3.2.0 目录下的首页文件:
# [root@nginx-dev html]# curl http://nginx-dev:80 会访问这个
server{listen 80;server_name nginx-dev;#主机名location / {root /home/AdminLTE-3.2.0;index index.html index2.html index3.html;}
}
5. nginx location 命令
/请求指向 root 目录,location 总是从/目录开始匹配,如果有子目录,例如/css,他会指向/static/css
location /css {root /static;
}
① 修改 /etc/nginx/conf.d 目录下的 8000.conf 文件:
[root@nginx-dev html]# nginx -s reload
[root@nginx-dev html]# cat /etc/nginx/conf.d/8000.conf
server{listen 8000;server_name localhost;location /admin {root /home/AdminLTE-3.2.0;index index.html index2.html index3.html;}
}
/请求总是指向 root 目录,/admin 目录则指向的是root目录下的admin目录,即为 /home/AdminLTE-3.2.0/admin。
在浏览器访问 http://192.168.1.9:8000/admin :报错404

查看nginx错误日志:
[root@nginx-dev nginx]# tail -f /var/log/nginx/*.log
==> /var/log/nginx/access.log <==
192.168.1.10 - - [06/Aug/2023:22:40:38 +0800] "GET /dist/img/user1-128x128.jpg HTTP/1.1" 200 2750 "http://192.168.1.9:8000/" "Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:109.0) Gecko/20100101 Firefox/115.0" "-"
192.168.1.10 - - [06/Aug/2023:22:40:38 +0800] "GET /plugins/fontawesome-free/webfonts/fa-solid-900.woff2 HTTP/1.1" 200 78268 "http://192.168.1.9:8000/plugins/fontawesome-free/css/all.min.css" "Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:109.0) Gecko/20100101 Firefox/115.0" "-"
192.168.1.10 - - [06/Aug/2023:22:40:38 +0800] "GET /plugins/fontawesome-free/webfonts/fa-regular-400.woff2 HTTP/1.1" 200 13224 "http://192.168.1.9:8000/plugins/fontawesome-free/css/all.min.css" "Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:109.0) Gecko/20100101 Firefox/115.0" "-"
127.0.0.1 - - [06/Aug/2023:22:59:36 +0800] "GET / HTTP/1.1" 200 61756 "-" "curl/7.29.0" "-"
127.0.0.1 - - [06/Aug/2023:23:01:16 +0800] "GET / HTTP/1.1" 200 61756 "-" "curl/7.29.0" "-"
192.168.1.9 - - [06/Aug/2023:23:01:58 +0800] "GET / HTTP/1.1" 200 61756 "-" "curl/7.29.0" "-"
192.168.1.9 - - [06/Aug/2023:23:02:46 +0800] "GET / HTTP/1.1" 200 61756 "-" "curl/7.29.0" "-"
192.168.1.9 - - [06/Aug/2023:23:03:43 +0800] "GET / HTTP/1.1" 200 61756 "-" "curl/7.29.0" "-"
127.0.0.1 - - [06/Aug/2023:23:03:52 +0800] "GET / HTTP/1.1" 200 615 "-" "curl/7.29.0" "-"
192.168.1.10 - - [06/Aug/2023:23:15:09 +0800] "GET /admin HTTP/1.1" 404 153 "-" "Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:109.0) Gecko/20100101 Firefox/115.0" "-"==> /var/log/nginx/error.log <==
2023/08/06 23:14:21 [notice] 3869#3869: exit
2023/08/06 23:14:21 [notice] 3870#3870: exiting
2023/08/06 23:14:21 [notice] 3870#3870: exit
2023/08/06 23:14:21 [notice] 2483#2483: signal 17 (SIGCHLD) received from 3869
2023/08/06 23:14:21 [notice] 2483#2483: worker process 3869 exited with code 0
2023/08/06 23:14:21 [notice] 2483#2483: signal 29 (SIGIO) received
2023/08/06 23:14:21 [notice] 2483#2483: signal 17 (SIGCHLD) received from 3870
2023/08/06 23:14:21 [notice] 2483#2483: worker process 3870 exited with code 0
2023/08/06 23:14:21 [notice] 2483#2483: signal 29 (SIGIO) received
2023/08/06 23:15:09 [error] 3897#3897: *26 open() "/home/AdminLTE-3.2.0/admin" failed (2: No such file or directory), client: 192.168.1.10, server: localhost, request: "GET /admin HTTP/1.1", host: "192.168.1.9:8000"
可以看到报错信息为 /home/AdminLTE-3.2.0/admin 这个目录不存在。
② 修改 /etc/nginx/conf.d 目录下的 8000.conf 文件:
[root@nginx-dev nginx]# cat /etc/nginx/conf.d/8000.conf
server{listen 8000;server_name localhost;location / {root /home/AdminLTE-3.2.0;index index.html index2.html index3.html;}
}
在浏览器访问 http://192.168.1.9:8000/a。同样报错404:

查看nginx错误日志:
[root@nginx-dev nginx]# tail -f /var/log/nginx/*.log
==> /var/log/nginx/access.log <==
127.0.0.1 - - [06/Aug/2023:23:01:16 +0800] "GET / HTTP/1.1" 200 61756 "-" "curl/7.29.0" "-"
192.168.1.9 - - [06/Aug/2023:23:01:58 +0800] "GET / HTTP/1.1" 200 61756 "-" "curl/7.29.0" "-"
192.168.1.9 - - [06/Aug/2023:23:02:46 +0800] "GET / HTTP/1.1" 200 61756 "-" "curl/7.29.0" "-"
192.168.1.9 - - [06/Aug/2023:23:03:43 +0800] "GET / HTTP/1.1" 200 61756 "-" "curl/7.29.0" "-"
127.0.0.1 - - [06/Aug/2023:23:03:52 +0800] "GET / HTTP/1.1" 200 615 "-" "curl/7.29.0" "-"
192.168.1.10 - - [06/Aug/2023:23:15:09 +0800] "GET /admin HTTP/1.1" 404 153 "-" "Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:109.0) Gecko/20100101 Firefox/115.0" "-"
192.168.1.10 - - [06/Aug/2023:23:19:48 +0800] "GET /admin HTTP/1.1" 404 153 "-" "Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:109.0) Gecko/20100101 Firefox/115.0" "-"
192.168.1.10 - - [06/Aug/2023:23:19:51 +0800] "GET /admin HTTP/1.1" 404 153 "-" "Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:109.0) Gecko/20100101 Firefox/115.0" "-"
192.168.1.10 - - [06/Aug/2023:23:19:54 +0800] "GET / HTTP/1.1" 200 61756 "-" "Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:109.0) Gecko/20100101 Firefox/115.0" "-"
192.168.1.10 - - [06/Aug/2023:23:20:05 +0800] "GET /a HTTP/1.1" 404 153 "-" "Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:109.0) Gecko/20100101 Firefox/115.0" "-"==> /var/log/nginx/error.log <==
2023/08/06 23:19:44 [notice] 3897#3897: exit
2023/08/06 23:19:44 [notice] 2483#2483: signal 17 (SIGCHLD) received from 3897
2023/08/06 23:19:44 [notice] 2483#2483: worker process 3897 exited with code 0
2023/08/06 23:19:44 [notice] 2483#2483: signal 29 (SIGIO) received
2023/08/06 23:19:44 [notice] 2483#2483: signal 17 (SIGCHLD) received from 3898
2023/08/06 23:19:44 [notice] 2483#2483: worker process 3898 exited with code 0
2023/08/06 23:19:44 [notice] 2483#2483: signal 29 (SIGIO) received
2023/08/06 23:20:05 [error] 3906#3906: *28 open() "/home/AdminLTE-3.2.0/a" failed (2: No such file or directory), client: 192.168.1.10, server: localhost, request: "GET /a HTTP/1.1", host: "192.168.1.9:8000"
可以看到报错信息为 /home/AdminLTE-3.2.0/a 这个目录不存在。
相关文章:
分布式 - 服务器Nginx:一小时入门系列之静态网页配置
文章目录 1. 静态文件配置2. nginx listen 命令解析3. nginx server_name 命令解析4. nginx server 端口重复5. nginx location 命令 1. 静态文件配置 在 /home 文件下配置一个静态的AdminLTE后台管理系统: [rootnginx-dev conf.d]# cd /home [rootnginx-dev home…...
kubernetes网络之网络策略-----Network Policies - Example
创建一个Deployment并配置Service 创建一个 nginx Deployment 用于演示 Kubernetes 的 NetworkPolicy: kubectl create deployment nginx --imagenginx 输出结果 deployment.apps/nginx created通过Service暴露该Deployment kubectl expose deployment nginx --po…...
【GDI/GDI+】如何抓取屏幕保存到bitmap文件?
问题 如何抓取屏幕保存到bitmap文件? 方法 GDI 方法 1、抓取。 HBITMAP CRectChartUI::GetBitmap(HDC hDC) {HDC hMemDC;int x, y;int nWidth, nHeight;HBITMAP hBitmap, hOldBitmap;hMemDC CreateCompatibleDC(hDC);nWidth GetDeviceCaps(hDC, HORZRES);nHei…...
HDFS介绍
目录 编辑 一、HDFS基础 1.1 概述 1.2 HDFS的设计目标 1.2.1 硬件故障 1.2.2 流式数据访问 1.2.3 超大数据集 1.2.4 简单的一致性模型 1.2.5 移动计算而不是移动数据 1.2.6 跨异构硬件和软件平台的可移植性 1.3 基础概念 1.3.1 块(Block) 1.3.2 复制…...
每日一题——两数之和
题目 给出一个整型数组 numbers 和一个目标值 target,请在数组中找出两个加起来等于目标值的数的下标,返回的下标按升序排列。 (注:返回的数组下标从1开始算起,保证target一定可以由数组里面2个数字相加得到࿰…...
Maven: ‘mvn‘ is not recognized as an internal or external command
下载并配置好Maven之后,CMD测试安装是否成功:mvn -v 提示: mvn is not recognized as an internal or external command, operable program or batch file. 检查环境变量: MAVEN_HOME: %MAVEN_HOME%\bin: 看上去没问题&#x…...
CubeSLAM: Monocular 3D Object SLAM——论文简述
一、简介 提出一种在动态和静态环境中同时进行3D目标检测和定位建图的方法,并且能够互相提升准确度。具体地,对于3D目标,其位置、方向和尺寸通过slam进行了优化;而3D目标作为slam中的路标,可以提供额外的语义和几何约…...
【雕爷学编程】MicroPython动手做(30)——物联网之Blynk 2
知识点:什么是掌控板? 掌控板是一块普及STEAM创客教育、人工智能教育、机器人编程教育的开源智能硬件。它集成ESP-32高性能双核芯片,支持WiFi和蓝牙双模通信,可作为物联网节点,实现物联网应用。同时掌控板上集成了OLED…...
linux scp 拷贝文件到目标linux系统
scp -P 8866 -r jsonrpc/ root192.168.6.66:/folder_path...
Oracle-expdp报错ORA-39077、06502(Bug-16928674)
问题: 用户在使用expdp进程导出时,出现队列报错ORA-39077、ORA-06502 ORA-31626: job does not exist ORA-31638: cannot attach to job SYS_EXPORT_SCHEMA_01 for user SYS ORA-06512: at "SYS.DBMS_SYS_ERROR", line 95 ORA-06512: at "SYS.KUPV$…...
Kafka入门,保姆级教学
文章目录 Kafka概念消息中间件对比消息中间件对比-选择建议Kafka常用名词介绍Kafka入门1. Kafka安装配置2.Kafka生产者与消费者关系3.Kafka依赖4.生产者发消息5.消费者接受消息6.Kafka高可用性设计6.1集群Kafka备份机制(Reolication) 7.kafka生产者详解7.1 发送类型7.2参数详解…...
RabbitMQ 过期时间(TTL)
TTL,Time to Live的简称,即过期时间,RabbitMQ可以对消息和队列设置TTL。 RabbitMQ支持设置队列的过期时间和消息的过期时间。如果设置队列的过期时间则队列中所有的消息都有相同的过期时间。如果设置消息的过期时间则每条消息的过期时间则可以不同。如两…...
C 语言练习题、持续更新
文章目录 C语言练习题读懂每个练习题才是学好一门代码的重要经历目录(先不要看答案,首先自己做才能更好的领悟,做不来没关系)题目一:有 1、2、3、4 四个数字,能组成多少个互不相同且无重复数字的三位数&…...
Android Q以上后台启动Activity初步尝试
在Android Q以后 google不允许在后台service 广播等等启动Activity 具体请看google文档从后台启动 Activity 的限制 | Android 开发者 | Android Developers 文档里有详细的说明,在哪种情况下可以后台启动Activity。 大体分为以下几种情况: 1、应用具有可见窗口,例如前…...
【torchlars】windows下载github中的torchlars包遇到的问题及解决方案
环境 python3.7 windows10 cuda11.1 pytorch1.8.1 虚拟环境miniconda 目的 windows下载github中的torchlars包 遇到的问题 问题一:直接下载好文件夹输入指令:python setup.py install 出现错误:RuntimeError: Error compiling objects f…...
SolidUI社区-通用Prompt技巧
背景 随着文本生成图像的语言模型兴起,SolidUI想帮人们快速构建可视化工具,可视化内容包括2D,3D,3D场景,从而快速构三维数据演示场景。SolidUI 是一个创新的项目,旨在将自然语言处理(NLP)与计算机图形学相…...
C++中类的封装写出一个文件加密的小项目
文件的加密较为简单,当然也可以修改它的加密方式等,供大家参考 #include<string> #include<fstream> class ReaderFile { public:string Read(const string& filename){cout << "读取文件,获取明文"<<…...
【网络编程·传输层】UDP和TCP的报头
目录 一、端口号划分 二、部分指令 1、pidof(用于查看进程id) 2、netstat(查看网络状态) 三、UDP协议 1、UDP协议格式 2、UDP协议如何进行封装、解包、分用 2.1封装、解包 2.2分用 3、UDP协议的特点 3.1UDP协议的特点 …...
C语言编程技巧 全局变量在多个c文件中公用的方法
在使用C语言编写程序时,经常会遇到这样的情况:我们希望在头文件中定义一个全局变量,并将其包含在两个不同的C文件中,以便这个全局变量可以在这两个文件中共享。举个例子,假设项目文件夹"project"下有三个文件…...
【HDFS】NN处理全量块汇报时reportDiff的一些细节
NN处理全量块汇报(FBR)时的一些细节怎么生成的toRemove怎么check 汇报上来的块是不是corrupt的?reportDiff方法里巧妙地引入delimiterBlock这个block的作用前置知识:【HDFS】Block、BlockInfo、BlockInfoContiguous、BlockInfoStriped的分析记录 上面的文章中介绍了关于Bl…...
Android Wi-Fi 连接失败日志分析
1. Android wifi 关键日志总结 (1) Wi-Fi 断开 (CTRL-EVENT-DISCONNECTED reason3) 日志相关部分: 06-05 10:48:40.987 943 943 I wpa_supplicant: wlan0: CTRL-EVENT-DISCONNECTED bssid44:9b:c1:57:a8:90 reason3 locally_generated1解析: CTR…...
多场景 OkHttpClient 管理器 - Android 网络通信解决方案
下面是一个完整的 Android 实现,展示如何创建和管理多个 OkHttpClient 实例,分别用于长连接、普通 HTTP 请求和文件下载场景。 <?xml version"1.0" encoding"utf-8"?> <LinearLayout xmlns:android"http://schemas…...
【HarmonyOS 5.0】DevEco Testing:鸿蒙应用质量保障的终极武器
——全方位测试解决方案与代码实战 一、工具定位与核心能力 DevEco Testing是HarmonyOS官方推出的一体化测试平台,覆盖应用全生命周期测试需求,主要提供五大核心能力: 测试类型检测目标关键指标功能体验基…...
FastAPI 教程:从入门到实践
FastAPI 是一个现代、快速(高性能)的 Web 框架,用于构建 API,支持 Python 3.6。它基于标准 Python 类型提示,易于学习且功能强大。以下是一个完整的 FastAPI 入门教程,涵盖从环境搭建到创建并运行一个简单的…...
Selenium常用函数介绍
目录 一,元素定位 1.1 cssSeector 1.2 xpath 二,操作测试对象 三,窗口 3.1 案例 3.2 窗口切换 3.3 窗口大小 3.4 屏幕截图 3.5 关闭窗口 四,弹窗 五,等待 六,导航 七,文件上传 …...
Golang——7、包与接口详解
包与接口详解 1、Golang包详解1.1、Golang中包的定义和介绍1.2、Golang包管理工具go mod1.3、Golang中自定义包1.4、Golang中使用第三包1.5、init函数 2、接口详解2.1、接口的定义2.2、空接口2.3、类型断言2.4、结构体值接收者和指针接收者实现接口的区别2.5、一个结构体实现多…...
pikachu靶场通关笔记19 SQL注入02-字符型注入(GET)
目录 一、SQL注入 二、字符型SQL注入 三、字符型注入与数字型注入 四、源码分析 五、渗透实战 1、渗透准备 2、SQL注入探测 (1)输入单引号 (2)万能注入语句 3、获取回显列orderby 4、获取数据库名database 5、获取表名…...
elementUI点击浏览table所选行数据查看文档
项目场景: table按照要求特定的数据变成按钮可以点击 解决方案: <el-table-columnprop"mlname"label"名称"align"center"width"180"><template slot-scope"scope"><el-buttonv-if&qu…...
WPF八大法则:告别模态窗口卡顿
⚙️ 核心问题:阻塞式模态窗口的缺陷 原始代码中ShowDialog()会阻塞UI线程,导致后续逻辑无法执行: var result modalWindow.ShowDialog(); // 线程阻塞 ProcessResult(result); // 必须等待窗口关闭根本问题:…...
【堆垛策略】设计方法
堆垛策略的设计是积木堆叠系统的核心,直接影响堆叠的稳定性、效率和容错能力。以下是分层次的堆垛策略设计方法,涵盖基础规则、优化算法和容错机制: 1. 基础堆垛规则 (1) 物理稳定性优先 重心原则: 大尺寸/重量积木在下…...
