Nginx实战 | 高性能HTTP和反向代理神器Nginx前世今生,以及它的“繁花之境”

本文主要是介绍Nginx实战 | 高性能HTTP和反向代理神器Nginx前世今生,以及它的“繁花之境”,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

专栏集锦,大佬们可以收藏以备不时之需:

Spring Cloud 专栏:http://t.csdnimg.cn/WDmJ9

Python 专栏:http://t.csdnimg.cn/hMwPR

Redis 专栏:http://t.csdnimg.cn/Qq0Xc

TensorFlow 专栏:http://t.csdnimg.cn/SOien

Logback 专栏:http://t.csdnimg.cn/UejSC

量子计算:

量子计算 | 解密著名量子算法Shor算法和Grover算法

AI机器学习实战:

AI机器学习实战 | 使用 Python 和 scikit-learn 库进行情感分析

AI机器学习 | 基于librosa库和使用scikit-learn库中的分类器进行语音识别

Python实战:

Python实战 | 使用 Python 和 TensorFlow 构建卷积神经网络(CNN)进行人脸识别

Spring Cloud实战:

Spring Cloud实战 |分布式系统的流量控制、熔断降级组件Sentinel如何使用

Spring Cloud 实战 | 解密Feign底层原理,包含实战源码

Spring Cloud 实战 | 解密负载均衡Ribbon底层原理,包含实战源码

1024程序员节特辑文章:

1024程序员狂欢节特辑 | ELK+ 协同过滤算法构建个性化推荐引擎,智能实现“千人千面”

1024程序员节特辑 | 解密Spring Cloud Hystrix熔断提高系统的可用性和容错能力

1024程序员节特辑 | ELK+ 用户画像构建个性化推荐引擎,智能实现“千人千面”

1024程序员节特辑 | OKR VS KPI谁更合适?

1024程序员节特辑 | Spring Boot实战 之 MongoDB分片或复制集操作

Spring实战系列文章:

Spring实战 | Spring AOP核心秘笈之葵花宝典

Spring实战 | Spring IOC不能说的秘密?

国庆中秋特辑系列文章:

国庆中秋特辑(八)Spring Boot项目如何使用JPA

国庆中秋特辑(七)Java软件工程师常见20道编程面试题

国庆中秋特辑(六)大学生常见30道宝藏编程面试题

国庆中秋特辑(五)MySQL如何性能调优?下篇

国庆中秋特辑(四)MySQL如何性能调优?上篇

国庆中秋特辑(三)使用生成对抗网络(GAN)生成具有节日氛围的画作,深度学习框架 TensorFlow 和 Keras 来实现

国庆中秋特辑(二)浪漫祝福方式 使用生成对抗网络(GAN)生成具有节日氛围的画作

国庆中秋特辑(一)浪漫祝福方式 用循环神经网络(RNN)或长短时记忆网络(LSTM)生成祝福诗词

在这里插入图片描述

目录

  • 1 Nginx 发展历史
  • 2 如何使用 Nginx
  • 3 详细配置 Nginx
    • 3.1 安装 Nginx
    • 3.2 配置文件结构
    • 3.3 配置虚拟主机
    • 3.4 配置代理
    • 3.5 配置 SSL/TLS
      • 3.5.1 准备 SSL/TLS 证书和私钥
      • 3.5.2 配置 Nginx 服务器块
      • 3.5.3 配置要点解释
      • 3.5.4 重启 Nginx 服务
      • 3.5.5 测试 SSL/TLS 配置
    • 3.6 配置缓存
    • 3.7 配置负载均衡
      • 3.7.1 健康检查
    • 3.8 配置访问控制
    • 3.9 配置日志
      • 3.9.1 访问日志
      • 3.9.2 错误日志
      • 3.9.3 日志滚动
    • 3.10 测试和优化
      • 3.10.1 负载测试
      • 3.10.2 性能测试
      • 3.10.3 配置优化
      • 3.10.4 代码级优化
      • 3.10.5 日志分析
      • 3.10.6 使用性能监控工具

1 Nginx 发展历史

Nginx 的历史可以追溯到 1990 年代末期,当时互联网开始迅速发展,传统的 HTTP 服务器如 Apache 开始显得力不从心,无法满足日益增长的访问量和并发请求。为了解决这个问题,Igor Sysoev 开始编写 Nginx,首个版本在 2004 年发布。Nginx 的设计理念是追求极高的性能和稳定性,同时还具有较低的内存消耗和资源占用,这使得它能够处理大量并发请求,非常适合于需要处理高负载的服务器环境。

  • 早期开发:Nginx最初是在Unix-like系统中运行的,使用C语言开发,并在一个BSD-like许可证下发布。它的设计受到了当时的网络环境以及Igor Sysoev作为系统管理员的工作经验的影响。
  • 版本迭代:随着时间的发展,Nginx逐渐增加了更多的功能,如SSL/TLS支持、虚拟主机、HTTP/2等,并且不断地对性能进行优化。
  • 社区和公司:2009年,Sysoev与别人合伙成立了Nginx公司,以支持Nginx的发展。2019年,Nginx公司被F5 Networks收购,成为其商业产品的一部分。
  • 创始人离职:2020年,Igor Sysoev宣布退出F5 Networks,以更多地关注家庭和个人项目。他在离职时得到了社区的高度评价和感谢,因为他的工作对Nginx的成功和互联网的发展有着深远的影响。

2 如何使用 Nginx

使用 Nginx 主要包括以下几个步骤:

  1. 下载和安装:首先,用户需要从 Nginx 的官方网站下载适合自己操作系统的 Nginx 版本。Nginx 提供了 Linux、Windows 等平台的版本。下载完成后,根据操作系统的不同,执行相应的安装程序。
  2. 配置:Nginx 的配置相对简洁。它使用基于文件系统的配置,主要通过修改配置文件来设置代理、缓存、负载均衡等。配置文件通常位于安装目录下的 nginx.conf,此外还包括用于设置静态资源服务、虚拟主机等的额外配置文件。
  3. 启动和停止:通过执行安装目录下的 nginx 命令来启动 Nginx 服务,而停止服务通常可以通过 nginx -s stop 或使用操作系统服务管理工具来实现。
  4. 测试:启动服务后,可以通过访问 http://localhost 或服务器 IP 地址来测试 Nginx 是否正常运行。
  5. 监控和维护:Nginx 提供了监控工具,比如 nginx -s status 来检查服务状态。此外,定期检查和更新软件,以及监控服务器性能和访问日志,对于维护 Nginx 服务是必要的。

3 详细配置 Nginx

配置 Nginx 是一个相对复杂的过程,下面将详细介绍如何配置 Nginx。

3.1 安装 Nginx

在 Linux 系统中,您可以使用包管理器来安装 Nginx。例如,在 Ubuntu 或 Debian 上,您可以使用以下命令:

sudo apt update
sudo apt install nginx

在 CentOS 或 RHEL 上,您可以使用以下命令:

sudo yum install epel-release
sudo yum install nginx

如果您需要从源代码编译 Nginx,可以执行以下命令:

wget http://nginx.org/download/nginx-1.21.3.tar.gz
tar zxvf nginx-1.21.3.tar.gz
cd nginx-1.21.3
./configure
make
sudo make install

3.2 配置文件结构

Nginx 的配置文件通常位于 /etc/nginx//usr/local/nginx/conf/。主要配置文件是 nginx.conf,它包含了全局配置。此外,还有 sites-availablesites-enabledconf.d 目录,这些目录包含了虚拟主机的配置文件。

3.3 配置虚拟主机

要配置一个虚拟主机,您需要在 sites-available 目录下创建一个配置文件,然后将其符号链接到 sites-enabled 目录。在配置文件中,您可以设置服务器监听的主机名、端口、文档根目录等。例如:

server {listen 80;server_name example.com www.example.com;root /var/www/example;index index.html index.htm;
}

3.4 配置代理

Nginx 可以配置为反向代理服务器,将请求转发到后端服务器。在配置文件中,您需要设置代理服务器的主机名和端口,以及如何处理请求。例如:

location / {proxy_pass http://backend-server:8080;proxy_set_header Host $host;proxy_set_header X-Real-IP $remote_addr;proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
}

3.5 配置 SSL/TLS

配置 Nginx 以使用 SSL/TLS 是保护网站安全性和用户隐私的重要步骤。以下是一个基本的指南,用于在 Nginx 中配置 SSL/TLS。

3.5.1 准备 SSL/TLS 证书和私钥

在配置 Nginx 之前,您需要有一个有效的 SSL/TLS 证书和相应的私钥。您可以从证书颁发机构(CA)获得证书,或者使用 Let’s Encrypt 提供的免费证书。如果您选择 Let’s Encrypt,可以使用 certbot 工具自动获取和配置证书。

3.5.2 配置 Nginx 服务器块

在 Nginx 配置文件中,通常在 server 块内添加 SSL/TLS 配置。以下是一个示例配置:

server {listen 443 ssl;server_name example.com www.example.com;ssl_certificate /path/to/your/fullchain.pem;ssl_certificate_key /path/to/your/privatekey.pem;ssl_session_cache shared:SSL:1m;ssl_session_timeout  10m;ssl_ciphers HIGH:!aNULL:!MD5;ssl_prefer_server_ciphers on;root /var/www/example;index index.html index.htm;
}

3.5.3 配置要点解释

  • listen 443 ssl;:这指定服务器在端口 443 上监听 SSL/TLS 连接。
  • ssl_certificatessl_certificate_key:这些指令指定 SSL/TLS 证书和私钥的路径。确保这些文件是正确的,并且服务器用户有权限读取它们。
  • ssl_session_cachessl_session_timeout:这些指令配置 SSL 会话缓存和超时设置。
  • ssl_ciphers:这个指令指定用于加密的 SSL 演算法。您应该选择强加密算法,并避免使用已弃用的算法。
  • ssl_prefer_server_ciphers on;:这告诉客户端优先使用服务器提供的加密套件。

3.5.4 重启 Nginx 服务

在更新配置文件后,您需要重启 Nginx 服务以使更改生效:

sudo systemctl restart nginx

或者,如果您不是使用系统服务管理器,可以使用以下命令:

sudo nginx -s restart

3.5.5 测试 SSL/TLS 配置

在重启服务后,您应该测试 SSL/TLS 配置是否正确。您可以使用 curl 命令来测试:

curl -I https://example.com

您应该看到返回的响应中包含 HTTP/2 200 状态码,以及 SSL/TLS 相关的头部信息,表明 SSL/TLS 已正确配置。
请注意,SSL/TLS 配置可能会因您的具体需求和服务器配置而有所不同。确保遵循最佳实践,并定期更新您的证书和私钥。

3.6 配置缓存

Nginx 可以通过 proxy_cache 模块来缓存后端服务器的响应。这需要确保您的 Nginx 编译时包含了 ngx_http_proxy_modulengx_http_cache_module。大多数标准 Nginx 安装都包含这些模块。
以下是一个基本的 Nginx 缓存配置示例:

http {proxy_cache_path /var/cache/nginx/proxy_cache levels=1:2 keys_zone=cache_zone:10m;upstream backend {server backend1.example.com;server backend2.example.com;}server {listen 80;location / {proxy_pass http://backend;proxy_set_header Host $host;proxy_set_header X-Real-IP $remote_addr;proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;proxy_cache cache_zone;proxy_cache_valid any;proxy_cache_min_uses 1;proxy_cache_max_uses 10;proxy_cache_disk_mode async;proxy_cache_exclude "*/charset/*.html";}}
}

在这个例子中:

  • proxy_cache_path 指令用于设置缓存的存储路径和大小。levels=1:2 表示缓存的存储层次,keys_zone=cache_zone:10m 表示缓存的键值存储在内存中的大小为 10MB。
  • upstream 定义了后端服务器组。
  • proxy_pass 指令将请求转发到后端服务器。
  • proxy_set_header 指令确保转发请求时携带必要的头部信息。
  • proxy_cache 指令启用缓存,并指定缓存的键值存储在哪个 keys_zone 中。
  • proxy_cache_valid 指令设置缓存的响应状态码,any 表示所有状态码的响应都可以缓存。
  • proxy_cache_min_usesproxy_cache_max_uses 指令设置缓存的最低和最高使用次数。
  • proxy_cache_disk_mode 指令设置磁盘 I/O 模式,async 表示异步模式,可以提高性能。
  • proxy_cache_exclude 指令用于排除某些文件或目录的缓存。
    请注意,这只是一个基本的缓存配置示例。在实际应用中,您可能需要根据具体情况调整缓存路径、大小、过期时间等。此外,Nginx 还支持更高级的缓存配置,如缓存动态内容、使用不同的缓存策略等。

3.7 配置负载均衡

Nginx 的负载均衡功能是通过其内置的 upstream 模块实现的。以下是一个基本的 Nginx 负载均衡配置示例:

http {upstream myapp1 {server srv1.example.com;server srv2.example.com;server srv3.example.com;# 可以设置权重,如 server srv1.example.com weight=3;# 其他负载均衡方法还包括 least_conn, ip_hash 等。}server {listen 80;location / {proxy_pass http://myapp1;# 在这里可以设置更多的代理设置,如 proxy_set_header, proxy_connect_timeout 等。}}
}

在这个例子中,myapp1 是一个上游服务器组,它包含三个服务器:srv1.example.comsrv2.example.comsrv3.example.com。Nginx 将根据配置的负载均衡算法(默认是轮询)将请求分发到这些服务器上。

  • server 指令用于定义一个上游服务器,可以指定服务器的主机名或 IP 地址。
  • weight 指令用于设置服务器的权重,权重越高的服务器将接收更多的请求。
  • least_conn 指令用于启用最少连接数负载均衡算法,请求将被发送到当前连接数最少的服务器。
  • ip_hash 指令用于启用基于源 IP 的哈希负载均衡算法,来自同一 IP 的请求总是被代理到同一台服务器,这有助于保持用户的会话。

3.7.1 健康检查

Nginx 还提供了健康检查功能,以确保上游服务器组的健康状态。以下是一个包含健康检查的配置示例:

http {upstream myapp1 {server srv1.example.com;server srv2.example.com;server srv3.example.com;# 健康检查health_check {enable on;interval 3000; # 每隔 3 秒检查一次timeout 1000; # 超时时间unhealthy_threshold 3; # 不健康连续检查次数healthy_threshold 3; # 健康连续检查次数http_get http://example.com/health; # 检查的 URL}}server {listen 80;location / {proxy_pass http://myapp1;# 其他代理设置}}
}

在这个例子中,health_check 指令用于配置健康检查。如果服务器在连续三次检查中都未能通过健康检查,它将被标记为不健康,并将不再接收新的请求。当服务器恢复健康时,它将重新加入上游服务器组。
请注意,这些示例仅用于说明 Nginx 负载均衡的基本配置。在实际应用中,您可能需要根据具体情况调整服务器地址、负载均衡算法、健康检查配置等。此外,Nginx 还支持更高级的配置,如使用 upstream 模块中的 hashurl_hashleast_time 等指令,以及通过 map 模块进行更复杂的请求路由。

3.8 配置访问控制

在 Nginx 中,访问控制通常是通过 location 指令和 allowdeny 指令来实现的。这些指令可以定义哪些客户端(基于 IP 地址)被允许访问特定的位置(URL 或路径)。以下是一个简单的访问控制配置示例:

http {server {listen 80;location / {# 允许来自特定IP地址的访问allow 192.168.1.0/24;# 拒绝来自特定IP地址的访问deny all;}location /private/ {# 只允许来自特定IP地址的访问allow 192.168.1.10;# 拒绝其他所有IP地址的访问deny all;}}
}

在这个例子中:

  • allow 指令用于指定允许访问的 IP 地址或地址范围。例如,192.168.1.0/24 表示允许来自 IP 地址 192.168.1.0192.168.1.255 的访问。
  • deny 指令用于指定拒绝访问的 IP 地址或地址范围。使用 all 表示拒绝所有不匹配 allow 指令的 IP 地址。
  • location 指令用于匹配特定的 URL 或路径。当请求的 URL 匹配到某个 location 时,相应的 allowdeny 指令将被应用。
    请注意,allowdeny 指令在同一个 location 中使用时,allow 指令的优先级高于 deny 指令。这意味着如果请求的 IP 地址同时匹配到 allowdeny,请求将被允许。
    此外,Nginx 还支持使用 geo 模块进行基于地理位置的访问控制,以及使用 map 模块进行更复杂的访问控制策略。这些功能可能需要额外的配置和模块支持。

3.9 配置日志

Nginx 的日志配置通常包括访问日志和错误日志。访问日志记录了客户端的请求信息,而错误日志记录了 Nginx 的错误信息。以下是如何配置这两种日志的示例:

3.9.1 访问日志

访问日志的配置通常在 http 块中进行,使用 log_format 指令定义日志的格式,然后使用 access_log 指令指定日志文件的路径和名称。

http {log_format combined_with_time '$remote_addr - $remote_user [$time_local] ''"$request" $status $body_bytes_sent ''"$http_referer" "$http_user_agent" "$http_x_forwarded_for"';server {listen 80;location / {# 其他配置...}access_log /var/log/nginx/access.log combined_with_time;}
}

在这个例子中:

  • log_format 指令定义了一个名为 combined_with_time 的日志格式,它包括了客户端的 IP 地址、用户、请求时间、请求方法、状态码、传输的字节数、引用来源、用户代理和 X-Forwarded-For 头部。
  • access_log 指令指定了日志文件的路径和名称,以及使用的日志格式。

3.9.2 错误日志

错误日志的配置通常在 http 块中进行,使用 error_log 指令指定日志文件的路径和名称。

http {# 其他配置...server {listen 80;location / {# 其他配置...}error_log /var/log/nginx/error.log;}
}

在这个例子中:

  • error_log 指令指定了错误日志文件的路径和名称。

3.9.3 日志滚动

Nginx 也支持日志滚动,这意味着当日志文件达到一定大小时,它会自动切换到下一个文件。这可以通过 logrotate 指令配置。

http {# 其他配置...server {listen 80;location / {# 其他配置...}access_log /var/log/nginx/access.log combined_with_time;error_log /var/log/nginx/error.log;logrotate {daily;rotate 7;postrotate/usr/sbin/nginx -s reopen;endscript;}}
}

在这个例子中:

  • logrotate 指令配置了日志的滚动策略,daily 表示每天滚动一次,rotate 7 表示保留最近的 7 个日志文件。
  • postrotate 指令用于在日志滚动后执行命令,这里是通过 nginx -s reopen 命令重新打开日志文件。
    请注意,这些示例仅用于说明 Nginx 日志配置的基本方法。在实际应用中,您可能需要根据具体情况调整日志格式、路径、滚动策略等。此外,Nginx 还支持更高级的日志配置,如使用 log_format 指令自定义日志格式,以及通过 map 模块进行更复杂的日志处理。

3.10 测试和优化

Nginx 的测试和优化可以通过多种方式进行,包括负载测试、性能测试、配置优化和代码级优化。以下是一些基本的步骤和方法:

3.10.1 负载测试

负载测试可以帮助你了解 Nginx 在高负载情况下的性能。可以使用工具如 Apache Bench(ab)或wrk来进行测试。
例如,使用 Apache Bench 进行测试的命令如下:

ab -n 1000 -c 100 http://your-nginx-server.com/

这个命令会向指定的 Nginx 服务器发送 1000 个请求,每次发送 100 个请求。

3.10.2 性能测试

性能测试可以帮助你了解 Nginx 的处理能力和响应时间。可以使用工具如 Siege 进行测试。
例如,使用 Siege 进行测试的命令如下:

siege -c 100 -r 1000 http://your-nginx-server.com/

这个命令会使用 100 个并发用户对服务器进行性能测试。

3.10.3 配置优化

优化 Nginx 的配置文件可以显著提高性能。以下是一些常见的优化建议:

  • 减少 HTTP 头部的传输大小。
  • 开启 GZIP 压缩。
  • 使用 expires 指令设置缓存过期时间。
  • 使用 limit_req 模块限制请求速率。
  • 使用 limit_conn 模块限制并发连接数。
    例如,以下配置可以减少 HTTP 头部的大小并开启 GZIP 压缩:
http {server {listen 80;location / {# 开启 GZIP 压缩gzip on;# 设置最小压缩文件大小gzip_min_length 1k;# 压缩缓冲区大小gzip_buffers 16 8k;# 设置压缩级别,1 压缩速度最快,9 压缩率最高,通常设置为4gzip_comp_level 4;# 对指定的 MIME 类型生效gzip_types text/plain application/javascript application/x-javascript text/javascript text/xml text/css;}}
}

3.10.4 代码级优化

如果需要更深入的优化,可以修改 Nginx 的源代码。这通常涉及到内核级别的优化,需要具备相应的编程技能和知识。
例如,可以修改 Nginx 的 ngx_http_core_module 模块来优化 HTTP 请求的处理。

3.10.5 日志分析

分析 Nginx 的日志文件可以帮助你了解服务器的性能和问题所在。可以使用工具如 awk、grep 或 logstash 进行日志分析。
例如,使用 grep 查找所有 500 内部服务器错误的日志:

grep '500 Internal Server Error' /var/log/nginx/error.log

3.10.6 使用性能监控工具

使用性能监控工具如 Prometheus 和 Grafana 可以帮助你实时监控 Nginx 的性能指标,并进行相应的优化。
通过这些测试和优化方法,你可以了解 Nginx 的性能瓶颈,并采取相应的措施来提高其性能。请注意,优化应该是一个持续的过程,需要根据实际情况和需求进行调整。

这篇关于Nginx实战 | 高性能HTTP和反向代理神器Nginx前世今生,以及它的“繁花之境”的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/591417

相关文章

网页解析 lxml 库--实战

lxml库使用流程 lxml 是 Python 的第三方解析库,完全使用 Python 语言编写,它对 XPath表达式提供了良好的支 持,因此能够了高效地解析 HTML/XML 文档。本节讲解如何通过 lxml 库解析 HTML 文档。 pip install lxml lxm| 库提供了一个 etree 模块,该模块专门用来解析 HTML/XML 文档,下面来介绍一下 lxml 库

性能分析之MySQL索引实战案例

文章目录 一、前言二、准备三、MySQL索引优化四、MySQL 索引知识回顾五、总结 一、前言 在上一讲性能工具之 JProfiler 简单登录案例分析实战中已经发现SQL没有建立索引问题,本文将一起从代码层去分析为什么没有建立索引? 开源ERP项目地址:https://gitee.com/jishenghua/JSH_ERP 二、准备 打开IDEA找到登录请求资源路径位置

高效+灵活,万博智云全球发布AWS无代理跨云容灾方案!

摘要 近日,万博智云推出了基于AWS的无代理跨云容灾解决方案,并与拉丁美洲,中东,亚洲的合作伙伴面向全球开展了联合发布。这一方案以AWS应用环境为基础,将HyperBDR平台的高效、灵活和成本效益优势与无代理功能相结合,为全球企业带来实现了更便捷、经济的数据保护。 一、全球联合发布 9月2日,万博智云CEO Michael Wong在线上平台发布AWS无代理跨云容灾解决方案的阐述视频,介绍了

在JS中的设计模式的单例模式、策略模式、代理模式、原型模式浅讲

1. 单例模式(Singleton Pattern) 确保一个类只有一个实例,并提供一个全局访问点。 示例代码: class Singleton {constructor() {if (Singleton.instance) {return Singleton.instance;}Singleton.instance = this;this.data = [];}addData(value)

C#实战|大乐透选号器[6]:实现实时显示已选择的红蓝球数量

哈喽,你好啊,我是雷工。 关于大乐透选号器在前面已经记录了5篇笔记,这是第6篇; 接下来实现实时显示当前选中红球数量,蓝球数量; 以下为练习笔记。 01 效果演示 当选择和取消选择红球或蓝球时,在对应的位置显示实时已选择的红球、蓝球的数量; 02 标签名称 分别设置Label标签名称为:lblRedCount、lblBlueCount

MySQL高性能优化规范

前言:      笔者最近上班途中突然想丰富下自己的数据库优化技能。于是在查阅了多篇文章后,总结出了这篇! 数据库命令规范 所有数据库对象名称必须使用小写字母并用下划线分割 所有数据库对象名称禁止使用mysql保留关键字(如果表名中包含关键字查询时,需要将其用单引号括起来) 数据库对象的命名要能做到见名识意,并且最后不要超过32个字符 临时库表必须以tmp_为前缀并以日期为后缀,备份

BUUCTF靶场[web][极客大挑战 2019]Http、[HCTF 2018]admin

目录   [web][极客大挑战 2019]Http 考点:Referer协议、UA协议、X-Forwarded-For协议 [web][HCTF 2018]admin 考点:弱密码字典爆破 四种方法:   [web][极客大挑战 2019]Http 考点:Referer协议、UA协议、X-Forwarded-For协议 访问环境 老规矩,我们先查看源代码

滚雪球学Java(87):Java事务处理:JDBC的ACID属性与实战技巧!真有两下子!

咦咦咦,各位小可爱,我是你们的好伙伴——bug菌,今天又来给大家普及Java SE啦,别躲起来啊,听我讲干货还不快点赞,赞多了我就有动力讲得更嗨啦!所以呀,养成先点赞后阅读的好习惯,别被干货淹没了哦~ 🏆本文收录于「滚雪球学Java」专栏,专业攻坚指数级提升,助你一臂之力,带你早日登顶🚀,欢迎大家关注&&收藏!持续更新中,up!up!up!! 环境说明:Windows 10

【Linux】应用层http协议

一、HTTP协议 1.1 简要介绍一下HTTP        我们在网络的应用层中可以自己定义协议,但是,已经有大佬定义了一些现成的,非常好用的应用层协议,供我们直接使用,HTTP(超文本传输协议)就是其中之一。        在互联网世界中,HTTP(超文本传输协议)是一个至关重要的协议,他定义了客户端(如浏览器)与服务器之间如何进行通信,以交换或者传输超文本(比如HTML文档)。

如何确定 Go 语言中 HTTP 连接池的最佳参数?

确定 Go 语言中 HTTP 连接池的最佳参数可以通过以下几种方式: 一、分析应用场景和需求 并发请求量: 确定应用程序在特定时间段内可能同时发起的 HTTP 请求数量。如果并发请求量很高,需要设置较大的连接池参数以满足需求。例如,对于一个高并发的 Web 服务,可能同时有数百个请求在处理,此时需要较大的连接池大小。可以通过压力测试工具模拟高并发场景,观察系统在不同并发请求下的性能表现,从而