admin 管理员组

文章数量: 887021


2024年1月17日发(作者:win7菜单栏不见了)

科技风2021年3月电子信息D0I:

10.19392/j.

cnki.

1671-7341.202109059基于Nginx的Web服务器优化的应用研究李若兰柳州铁道职业技术学院

广西柳州545616摘

要:随着互联网的快速发展,人们对网站的访问量也随着日益增长,越来越多的Web服务器经常处于高并发访问状

态,导致服务器性能快速下降,甚至系统崩溃的严重后果。如何在硬件资源允许的前提下,通过软件的配置支持高并发访问

成为了当前亟待解决的重要课题。本文尝试使用Nginx搭建Web服务器并对Nginx的连接数和客户访问限制方面进行优化

测试研究,对帮助和改善Web服务器的高并发性能起到一定的积极作用。关键词:Web服务器;Nginx;性能优化随着互联网的快速发展,人们对网站的访问量也随着日

(3)在客户端的浏览器使用域名方式访问网站。2使用Nginx优化Web服务器益增长,越来越多的Web服务器经常处于高并发访问状态,

导致服务器性能快速下降,甚至会造成整个服务器系统崩溃

的严重后果。如何在硬件资源允许的前提下,通过软件的配

Nginx的默认设置是为了平衡Web服务器的各种工作场

景而准备的通用方案,在特定工作中并不一定能发挥最佳的

置使Web服务器支持高并发访问成为了当前亟待解决的重

要课题。近几年来Nginx因为具有轻量级和高并发的特点,国内

性能。本文对客户端访问Web服务器的连接数、客户端请求

限制等方面进行性能调优测试,即验证了

Nginx的高并发的

特点,又能改善Web服务器性能⑴。2.

1

Nginx的连接数优化测试2.

1.

1修改Linux系统的连接数限制如百度、淘宝、腾讯、新浪和网易等网站都开始使用Nginx来

满足一些高并发访问的需求⑴#本文尝试使用Nginx搭建Web服务器,并对Nginx在提

高客户端连接数、客户请求数限制和浏览器缓存等方面优化

因为Linux系统把进程的连接数当作文件处理,一个进

程的连接数不能超过1024⑴。如果要使客户端和服务器端

支持高并发连接数,必须修改进程数量的限制,具体命令

测试进行应用研究。1测试环境准备1.1搭建Web系统如下:)root@ client

~

]

Uulimit-n

655352.

1.2修改Nginx的连接数限制测试环境使用VMwto部署两台安装CentOS7操作系统

的虚拟机,作为Web系统的服务器端和客户端。在完成两台

Linux虚拟机的IP地址分配任务后,在Linux虚拟机1安装

Nginx运行时允许存在多个工作进程,工作进程的数目

可以在nginx.

conf文件中指定,通常设置为CPU的核心

Nginx,在Linux虚拟机2安装Apache,即Linux虚拟机1通过

数⑵。为了使Nginx能够承载更高的连接数,需要修改

nginx

.

conf文件中与连接数限制相关的参数。具体命令

运行Nginx充当Web服务器,Linux虚拟机2作为客户端,测

试环境如图1所示。如下:http

5worker_processes

auto

;workes_rlimit_nofite

65535

;events

)图1测试环境worker_connections

65535

;multi_accept

on

;1.2服务器端创建测试网站在Web服务器创建一个测试网站,客户端使用域名方式

访问该测试网站。(1)

在服务器端的nginx.

conf文件中http块内添加一个

使用www

.

ng

. test域名的虚拟主机;(2)

在客户端添加一条域名解析记录(192

.

168.

100.

1www

. ng

.

test);说明:workes_processes指令用于指定工作进程的个数,

设置为auto时Nginx将根据CPU的核心数来控制;workes_

oeimii_ nHfiee

量;

wHokeo_

119

0电子信息connections用于设置每个工作进程可接收的连接数;multi_

accept表示是否允许一个工作进程响应多个请求#2.

1.3客户端高并发访问服务器端测试在客户端使用Apache的ApacheBench工具向服务器端

发送并发连接数是5000的访问请求,具体命令如下:[root@

client

〜*

#cd/usr/loccPapache2/bin[root

@

client

bin

*

#./ab-n5000-c5000

http://www.

ng.

testj说明:ab命令的选项-n表示发送的连接数,-表示并发

数,http://www.

ng.

test表示请求的服务器URL地址#测试结果出现如下信息:Complete

requests: 5000Failed

requests:

0从测试结果显示可以看岀Nginx成功接收5000的并发

连接请求。2.2客户端请求限制测试以上客户端对服务器的高并发连接测试是通过同一个

主机向服务器发送的高并发连接请求,在实际应用中如果岀

现这种情况,这很可能是遭受网络攻击,会消耗服务器大量

的资源。为了避免这种危险情况的出现,Ngix可以对来自

同一

IE地址的客户端请求数和传输速率进行限制。2.2.1限制同一个IE的请求数服务器端通过nginx.

conf文件的Imit_req指令可以限制

来自单个IE地址的请求处理频率,具体配置如下:http

5limit_

req

_

zone

$

binary_

remote

_

adde

zone

=

creq:

10m

rate

=

1

o/x

;server

5listen

80

-server_name

locclhost

;location

/

{root

htmi/test

;index

index.

htmi

;limit_req

zone

=

creq

burst

1

;说明:/mit_req_zone指令用于开辟一个共享内存空间保

存客户端IP

,空间名称为creq,空间大小为10M

-预定义变量

$

binary_remote_addr保存了用二进制表示的当前客户端IE

地址-/miereq指令用于限制请求数量。在客户端使用ApacheBench工具进行并发测试,测试结

果看到100个请求中有98个是失败的。[root@

client

bin*#./ab-nl00-cl00

http://www.

ng.

test/Complete

requests:

100Failed

requests:

98120科技风2021年3月2.2.2限制响应的传输速率服务器端通过nginx.

conf文件的limit_rate指令可以限

制服务器在响应时传输数据到客户端的速率,具体配置

如下:hte

5serveo

5/mit_ym

100k;说明:/ma_rate用于限制每个连接的传输速率。为了测试限速是否生效,在测试网站根目录下放置一个

大容量的测试文件,在客户端使用wget命令下载,具体操作

如下:[root@

client

〜*

#

wget

http://www.

ng.

tesm/gmcrypt-2.

5

&8

&eae&go100T

)=

=

=

=

=

=

=

=

=

=

=

=

=

=

=

=

=

=

=

=

=

=

=

=

= =

=

=>*1,335,178

100KB/r

in

13s从测试结果看出下载速度基本维持在100KB/r左右。通过以上对Nginx做连接数和客户访问限制方面进行优

化测试分析,对帮助和改善Web服务器的高并发性能起到一

定的积极作用。参考文献:[1]

黑马程序员Nginx高性能Web服务器实战教程.清

华大学出版社,2017.[2]

岳晋,温宇,黄旻亮.Windows环境下的Nginx高并发

实现.电子技术与软件工程,2019(17)

:47.基金项目:2020年度广西高校中青年教师科研基础能力

提升项目“基于云计算技术的高校信息资源共享平台的开发

与实现"(项目编号:2020KY44014)作者简介:李若兰(1977—),女,壮族,广西来宾人,柳

州铁道职业技术学院专任教师,讲师,主要研究方向:计算机

网络、数据存储、云计算技术与应用等。


本文标签: 服务器 测试 客户端 限制 并发