centos webdav,centos部署web项目

其实centos webdav的问题并不复杂,但是又很多的朋友都不太了解centos部署web项目,因此呢,今天小编就来为大家分享centos webdav的一些知识,希望可以帮助到大家,下面我们一起来看看这个问题的分析吧!

使用Docker搭建WebDAV服务器

通过使用Docker搭建WebDAV服务器,可以解决在Centos系统中缺少Nginx WebDAV模块的问题。选择BytemarkHosting的镜像实现搭建。

关键点在于注意宿主机目录的固定,否则可能会出现错误。解决方法是通过软链接将目录挂载上去。在设置用户名和密码时,自行定义。不建议使用GitHub提供的SSL服务,建议使用Nginx进行反向代理以实现HTTPS访问。

具体步骤如下:

1.选择并拉取BytemarkHosting的Docker镜像。

2.确保宿主机目录的固定性,使用软链接将目录挂载上去,确保服务器稳定运行。

3.设置自定义的用户名和密码,以满足安全需求。

4.若不采用GitHub提供的SSL服务,建议使用Nginx进行反向代理,以实现HTTPS的访问方式。

通过遵循以上步骤,可以成功使用Docker搭建WebDAV服务器,解决在特定系统环境下遇到的问题,同时确保服务器的稳定性和安全性。

如何生成每秒百万级别的 http 请求

在进行负责测试时要牢记一件重要的事:你能在 Linux上建立多少个 socket连接。这个**是硬编码在内核里的,最典型的就是临时 W端口的**。(在某种程度上)你可以在/etc/sysctl.conf里扩展它。但是基本上,一台 Linux机器只能同时打开大约 64,000个 socket。因此在负载测试时,我们不得不通过在单一的连接上尽可能多地发出请求来充分利用 socket。除此之外,我们还需要不止一台的机器来产生负载。否则,负载生成器会把可用的 socket占用导致不能产生足够的负载。

我一开始用的是‘ab’,Apache Bench。它是我所知道的 http基准测试工具中最简单、最通用的。并且它是 Apache附带的产品,因此它可能已经存在于你的系统中。不幸的是,我在使用它的时候每秒大约只能生成 900个请求。虽然我见过其他人使用它每秒能达到 2,000个请求,但我可以立即告诉你,‘ab’并不适合我们的基准测试。

Httperf

接着,我尝试了‘httperf’。这个工具更强大,但是它依然相对简单并且功能有限。要算出每秒生产了多少个请求并不是仅传递参数那么简单。经过我的多次尝试,获取了每秒超过几百请求的结果。例如:

它以每秒 1,000个的速率创建了 100,000个会话(session)。每次会话发起 5次请求,时间间隔为 2秒。

httperf--hog--server=192.168.122.10--wsess=100000,5,2--rate 1000--timeout 5

Total: connections 117557 requests 219121 replies 116697 test-duration 111.423 s

Connection rate: 1055.0 conn/s(0.9 ms/conn,<=1022 concurrent connections)

Connection time [ms]: min 0.3 avg 865.9 max 7912.5 median 459.5 stddev 993.1

Connection time [ms]: connect 31.1

Connection length [replies/conn]: 1.000

Request rate: 1966.6 req/s(0.5 ms/req)

Request size [B]: 91.0

Reply rate [replies/s]: min 59.4 avg 1060.3 max 1639.7 stddev 475.2(22 samples)

Reply time [ms]: response 56.3 transfer 0.0

Reply size [B]: header 267.0 content 18.0 footer 0.0(total 285.0)

Reply status: 1xx=0 2xx=116697 3xx=0 4xx=0 5xx=0

CPU time [s]: user 9.68 system 101.72(user 8.7% system 91.3% total 100.0%)

Net I/O: 467.5 KB/s(3.8*10^6 bps)

最终,我使用这些设置达到了每秒 6,622个连接:

httperf--hog--server 192.168.122.10--num-conn 100000--ra 20000--timeout 5

(总共创建了 100,000个连接,并且以每秒 20,000个连接的固定速率创建)

它还有一些潜在的优势,并且拥有比‘ab‘更多的特性。但它不是我要用在这个项目里的重量级工具。我需要的是能够支持分布式多负载测试节点的工具。因此,我的下一个尝试是:Jmeter。

Apache Jmeter

这是一个功能齐全的 web应用测试套件,它可以模拟真实用户的所有行为。你可以使用 Jmeter的代理去访问你的网站,进行点击、登陆、模仿用户可以做的所有行为。Jemeter会把这些行为记录下来作为测试用例。然后 Jmeter会反复执行这些动作来模拟你想要的用户数量。尽管配置 Jmeter比‘ab‘和’httperf‘复杂得多,但它是一个很有趣的工具!

根据我的测试,它每秒可以产生 14,000个请求!这绝对是一个好的进展。

我使用了 Googlle Code project上的一些插件,并且使用它们的“Stepping Threads”和“HTTP RAW”请求,最终每秒大约可以产生 30,000个请求!但这已经达到极限了,所以还要寻找另一个工具。这里有一个我之前的 Jmeter配置,希望可以帮助到其他人。虽然这个配置离完美相差甚远,但有时它可以满足你的要求。

Tsung:重型的(heavy-duty)、分布式的、多协议测试工具

它每秒基本可以产生 40,000个请求,这绝对是我们想要的工具。类似于 Jmeter,你可以把一些行为记录下来在测试时运行,并且可以测试大多数的协议。比如 SSL、HHTP、WebDAV、SOAP、PostgreSQL、MySQL、LDAP和 Jabber/XMPP。与 Jmeter不同的是,它没有让人感到迷茫的 GUI设置,它仅有一个 XML配置文件,和一些你选择的分布式节点的 SSH密钥。它的简洁和效率对我的吸引力,完全不亚于它的健壮性和可扩展性。我发现它是一个很强大的工具,在正确的配置下它可以每秒产生百万级的 HTTP请求。

除此之外,Tsung还可以在 html上产生图表以及输入你的测试的详细报告。测试的结果通俗易懂,并且你甚至可以把这些图片展示给你的 boss看!

在这个系列文章的剩余部分,我还会讲解这个工具。现在你可以继续浏览下面的配置说明,或者直接跳到下一页。

在 CentOS 6.2上安装 Tsung

首先,你要安装(Erlang需要的) EPEL源。因此,在进行下一步之前要把它安装好。安装完后,继续安装你用来产生负载的每个节点需要的包。如果你还没有在节点之间建立无密码 SSH密钥(passwordless SSH key),那么请建立之。

yum-y install erlang perl perl-RRD-**.noarch perl-Log-Log4perl-RRDs.noarch gnuplot perl-Template-Toolkit firefox

从 Github或者 Tsung的官网上下载最新的 Tsung。

wget

解压并且编译。

tar zxfv tsung-1.4.2.tar.gz

cd tsung-1.4.2

./configure&& make&& make install

把示例配置复制到~/.tsung目录里。这是 Tsung的配置文件和日志文件的存放地方。

cp/usr/share/doc/tsung/examples/http_**.xml/root/.tsung/tsung.xml

你可以根据你的需求去编辑这个配置文件,或者使用我的配置文件。经过大量的尝试以及失败后,我目前的配置文件在使用 7个分布式节点时可以每秒产生 5百万个 HTTP请求。

<?xml version="1.0"?>

<!DOCTYPE tsung SYSTEM"/usr/share/tsung/tsung-1.0.dtd">

<tsung loglevel="notice" version="1.0">

<clients>

<client host="localhost" weight="1" cpu="10" maxusers="40000">

<ip value="192.168.122.2"/>

</client>

<client host="loadnode1" weight="1" cpu="9" maxusers="40000">

<ip value="192.168.122.2"/>

</client>

<client host="loadnode2" weight="1" maxusers="40000" cpu="8">

<ip value="192.168.122.3"/>

</client>

<client host="loadnode3" weight="1" maxusers="40000" cpu="9">

<ip value="192.168.122.21"/>

</client>

<client host="loadnode4" weight="1" maxusers="40000" cpu="9">

<ip value="192.168.122.11"/>

</client>

<client host="loadnode5" weight="1" maxusers="40000" cpu="9">

<ip value="192.168.122.12"/>

</client>

<client host="loadnode6" weight="1" maxusers="40000" cpu="9">

<ip value="192.168.122.13"/>

</client>

<client host="loadnode7" weight="1" maxusers="40000" cpu="9">

<ip value="192.168.122.14"/>

</client>

</clients>

<servers>

<server host="192.168.122.10" port="80" type="tcp"/>

</servers>

<load>

<arrivalphase phase="1" duration="10" unit="minute">

<users maxnumber="15000" arrivalrate="8" unit="second"/>

</arrivalphase>

<arrivalphase phase="2" duration="10" unit="minute">

<users maxnumber="15000" arrivalrate="8" unit="second"/>

</arrivalphase>

<arrivalphase phase="3" duration="30" unit="minute">

<users maxnumber="20000" arrivalrate="3" unit="second"/>

</arrivalphase>

</load>

<sessions>

<session probability="100" name="ab" type="ts_http">

<for from="1" to="10000000" var="i">

<request><http url="/test.txt" method="GET" version="1.1"/></request>

</for>

</session>

</sessions>

</tsung>

CentOS7部署开源WebDav服务,实现全端文件共享

在CentOS 7.8服务器上,部署开源的WebDav服务以实现全端文件共享,可以通过Nginx、Apache或独立组件来实现。这里选择使用一款由hacdias开发的Go语言WebDAV服务器,其GitHub地址为github.com/hacdias/webdav...。

首先,进行基本配置。在/data/webdav-app目录下创建webdav子目录,从GitHub下载并解压webdav的最新版本4.2.0。配置文件config.yaml是关键,设置对外服务的端口为15108,确保这个端口在安全组或防火墙中已打开。用户文件存储在/data目录,如需为多个用户服务,按照yaml格式添加用户配置。

接着,创建一个名为webdav.service的启动脚本于/usr/lib/systemd/system/目录,配置完成后启动服务。通过命令查看服务状态,确认服务已成功启动。客户端连接可以通过raiDrive,如能连接成功,表明文件上传功能已启用。

关于安全性,你可能会考虑使用Nginx的443端口进行反向代理。通过查看WebDAV服务器的日志,确保所有连接正常。对于iOS设备,通过WebDAV与苹果的客户端配合,可实现文件同步。

本文内容同步借助了文章同步助手工具,帮助你更便捷地管理文档。现在,你的CentOS 7.8服务器已经配置好了WebDav服务,可以开始享受全端文件共享的便利了。

阅读剩余
THE END