?博客主页: 微笑的段嘉许博客主页
?微信公众号:微笑的段嘉许?欢迎关注?点赞?收藏⭐留言??本文由微笑的段嘉许原创!?51CTO首发时间:?2023年2月7日?✉️坚持和努力一定能换来诗与远方!?作者水平很有限,如果发现错误,一定要及时告知作者哦!感谢感谢!不要偷走我小火车哦~ ~ ~
它可以运行在几乎所有广泛使用的计算机平台上。 Apache源于NCSAhttpd服务器,经过多次修改,成为世界上最流行的Web服务器软件之一。Apache取自“a patchy server”的读音,意思是充满补丁的服务器,因为它是自由软件,所以不断有人来为它开发新的功能、新的特性、修改原来的缺陷。Apache的特点是简单、速度快、性能稳定,并可做代理服务器来使用。
推荐步骤:
2)挂载云计算光盘[root@centos01 ~]# mount /dev/cdrom /mnt/
mount: /dev/sr0 写保护,将以只读方式挂载[root@centos01 ~]# tar zxf /mnt/httpd-2.2.17.tar.gz -C /usr/src/
[root@centos01 ~]# cd /usr/src/httpd-2.2.17/[root@centos01 httpd-2.2.17]# ./configure --prefix=/usr/local/httpd --enable-so --enable-rewrite --enable-charset-lite --enable-cgi
[root@centos01 httpd-2.2.17]# make && make install[root@centos01 httpd-2.2.17]# ls /usr/local/
bin etc games httpd include lib lib64 libexec sbin share src[root@centos01 ~]# cp /usr/local/httpd/bin/apachectl /etc/init.d/httpd //生成服务控制文件
[root@centos01 ~]# chmod +x /etc/init.d/httpd //添加执行权限
[root@centos01 ~]# ln -s /usr/local/httpd/bin/* /usr/local/bin/ //优化命令root@centos01 ~]# vim /etc/init.d/httpd //进入apache服务控制文件
----
2 #chkconfig:35 80 21 //运行级 3,5 启动,启动优先权为80,停止优先权为21。
3 #description:Apache Server //描述
---
[root@centos01 ~]# chkconfig --add httpd //添加httpd服务
[root@centos01 ~]# chkconfig --level 35 httpd on //设置开机自启
[root@centos01 ~]# httpd -t //检查配置文件修改是否有误
httpd: Could not reliably determine the server's fully qualified domain name, using fe80::20c:29ff:fe25:91b5 for ServerName
Syntax OK[root@centos01 ~]# mkdir /www //创建网站根目录
[root@centos01 ~]# echo "www.duanjiaxu.com" > /www/index.html //设置网站主页[root@centos01 ~]# vim /usr/local/httpd/conf/httpd.conf //进入主配置文件
98 ServerName www.duanjiaxu.com:80 //域名和端口号
105 DocumentRoot "/www" //网站根目录
132 <Directory "/www"> //授权网站根目录
133 Options Indexes FollowSymLinks134 AllowOverride None135 Order allow,deny136 Allow from all
137 </Directory>
143 <IfModule dir_module>
144 DirectoryIndex index.html
145 </IfModule>[root@centos01 ~]# httpd -t //检查配置文件是否修改有误
Syntax OK
[root@centos01 ~]# /etc/init.d/httpd restart //重新启动apache
httpd not running, trying to start
[root@centos01 ~]# netstat -anptu | grep httpd //监听网卡
tcp6 0 0 :::80 :::* LISTEN 92467/httpdTYPE=Ethernet
BOOTPROTO=static
NAME=ens32
DEVICE=ens32
ONBOOT=yes
IPADDR=192.168.100.10
NETMASK=255.255.255.0
DNS1=192.168.100.20
[root@centos01 ~]# systemctl restart network //重新启动网卡
[root@centos01 ~]# cat /etc/resolv.conf //查看DNS是否生效
# Generated by NetworkManager
nameserver 192.168.100.20[root@centos02 ~]# vim /etc/sysconfig/network-scripts/ifcfg-ens32
TYPE=Ethernet
BOOTPROTO=static
NAME=ens32
DEVICE=ens32
ONBOOT=yes
IPADDR=192.168.100.20 //IP地址
NETMASK=255.255.255.0 //子网掩码
DNS1=192.168.100.20 //DNS
----
[root@centos02 ~]# systemctl restart network //重新启动网卡服务
[root@centos02 ~]# cat /etc/resolv.conf //查看DNS是否配置成功
# Generated by NetworkManager
nameserver 192.168.100.20
[root@centos02 ~]# mount /dev/cdrom /mnt/ //挂载系统光盘
mount: /dev/sr0 写保护,将以只读方式挂载
[root@centos02 ~]# ls /mnt/ //查看系统光盘是否挂载成功
CentOS_BuildTag GPL LiveOS RPM-GPG-KEY-CentOS-7
EFI images Packages RPM-GPG-KEY-CentOS-Testing-7
EULA isolinux repodata TRANS.TBL[root@centos02 ~]# rpm -ivh /mnt/Packages/bind-9.9.4-50.el7.x86_64.rpm
警告:/mnt/Packages/bind-9.9.4-50.el7.x86_64.rpm: 头V3 RSA/SHA256 Signature, 密钥 ID f4a80eb5: NOKEY
准备中... ################################# [100%]
正在升级/安装...
1:bind-32:9.9.4-50.el7 ################################# [100%]
[root@centos02 ~]# rpm -ivh /mnt/Packages/bind-chroot-9.9.4-50.el7.x86_64.rpm
警告:/mnt/Packages/bind-chroot-9.9.4-50.el7.x86_64.rpm: 头V3 RSA/SHA256 Signature, 密钥 ID f4a80eb5: NOKEY
准备中... ################################# [100%]
正在升级/安装...
1:bind-chroot-32:9.9.4-50.el7 ################################# [100%][root@centos02 ~]# echo "" > /etc/named.conf //清空主配置文件
[root@centos02 ~]# vim /etc/named.conf //进入到主配置文件
----
options {
listen-on port 53 { any; };
};
zone "duanjiaxu.com" IN {
type master;
file "var/named/duanjiaxu.com.zone";
};
[root@centos02 ~]# named-checkconf /etc/named.conf //检查主配置文件是否修改正确
2)修改DNS区域配置文件[root@centos02 ~]# vim /var/named/duanjiaxu.com.zone //进入区域配置文件
----
$TTL 86400
@ SOA duanjiaxu.com. root.duanjiaxu.com. (
2023020210
1H
15M
1W
1D
)
@ NS centos02.duanjiaxu.com.
centos02 A 192.168.100.20
www A 192.168.100.10
[root@centos02 ~]# named-checkzone duanjiaxu.com /var/named/duanjiaxu.com.zone //检查主配置文件是否修改成功
zone duanjiaxu.com/IN: loaded serial 2023020210
OK
----
[root@centos02 ~]# systemctl start named //启动DNS服务
[root@centos02 ~]# systemctl enable named //设置开机自启
[root@centos02 ~]# netstat -anptu | grep named
tcp 0 0 192.168.100.20:53 0.0.0.0:* LISTEN 42964/named
tcp 0 0 127.0.0.1:53 0.0.0.0:* LISTEN 42964/named
tcp 0 0 127.0.0.1:953 0.0.0.0:* LISTEN 42964/named
tcp6 0 0 ::1:953 :::* LISTEN 42964/named
udp 0 0 192.168.122.1:53 0.0.0.0:* 42964/named
udp 0 0 192.168.100.20:53 0.0.0.0:* 42964/named
udp 0 0 127.0.0.1:53 0.0.0.0:* 42964/named[root@centos02 ~]# nslookup www.duanjiaxu.com
Server: 192.168.100.20
Address: 192.168.100.20#53
Name: www.duanjiaxu.com
Address: 192.168.100.10
[root@centos01 ~]# httpd -V
Server version: Apache/2.2.17 (Unix)
Server built: Feb 7 2023 18:20:02
Server's Module Magic Number: 20051115:25
Server loaded: APR 1.4.2, APR-Util 1.3.10
Compiled using: APR 1.4.2, APR-Util 1.3.10
Architecture: 64-bit
Server MPM: Prefork //默认Prefork工作模式
threaded: no
forked: yes (variable process count)[root@centos01 ~]# vim /usr/local/httpd/conf/extra/httpd-mpm.conf
注释掉52~58行
52 # StartServers 2
53 # MaxClients 150
54 # MinSpareThreads 25
55 # MaxSpareThreads 75
56 # ThreadsPerChild 25
57 # MaxRequestsPerChild 0
58 #</IfModule>
---
36 <IfModule mpm_prefork_module>
37 StartServers 5 //启动进程数
38 Serverlimit 200 //最大进程数
39 MinSpareServers 5 //最小空闲进程,空闲小于当前值自己创建
40 MaxSpareServers 10 //空闲进程大于当前值自己kill掉
41 MaxClients 150 //最大并发请求数必须前150处理完处理第151
42 MaxRequestsPerChild 0 //每个子进程最大处理请求数0不限制,可以防止内存外溢 和负载下降可以减少子进程数
43 </IfModule>[root@centos01 ~]# ps -ef | grep http
root 935 1 0 03:24 ? 00:00:00 /usr/local/httpd/bin/httpd -k start
daemon 957 935 0 03:24 ? 00:00:00 /usr/local/httpd/bin/httpd -k start
daemon 958 935 0 03:24 ? 00:00:00 /usr/local/httpd/bin/httpd -k start
daemon 959 935 0 03:24 ? 00:00:00 /usr/local/httpd/bin/httpd -k start
daemon 960 935 0 03:24 ? 00:00:00 /usr/local/httpd/bin/httpd -k start
daemon 960 935 0 03:24 ? 00:00:00 /usr/local/httpd/bin/httpd -k start[root@centos01 ~]# ab -n14000 -c900 www.duanjiaxu.com/index.html[root@centos01 ~]# ps -ef | grep httpd
root 92467 1 0 19:22 ? 00:00:00 /usr/local/httpd/bin/httpd -k restart
daemon 92651 92467 0 19:32 ? 00:00:00 /usr/local/httpd/bin/httpd -k restart
daemon 92652 92467 0 19:32 ? 00:00:00 /usr/local/httpd/bin/httpd -k restart
daemon 92653 92467 0 19:32 ? 00:00:00 /usr/local/httpd/bin/httpd -k restart
daemon 92654 92467 0 19:32 ? 00:00:00 /usr/local/httpd/bin/httpd -k restart
daemon 92655 92467 0 19:32 ? 00:00:00 /usr/local/httpd/bin/httpd -k restart
daemon 94815 92467 0 22:08 ? 00:00:00 /usr/local/httpd/bin/httpd -k restart
daemon 95029 92467 0 22:24 ? 00:00:00 /usr/local/httpd/bin/httpd -k restart
daemon 95030 92467 0 22:24 ? 00:00:00 /usr/local/httpd/bin/httpd -k restart
daemon 95031 92467 0 22:24 ? 00:00:00 /usr/local/httpd/bin/httpd -k restart
daemon 95032 92467 0 22:24 ? 00:00:00 /usr/local/httpd/bin/httpd -k restart
daemon 95033 92467 0 22:24 ? 00:00:00 /usr/local/httpd/bin/httpd -k restart
daemon 95034 92467 0 22:24 ? 00:00:00 /usr/local/httpd/bin/httpd -k restart
daemon 95036 92467 0 22:24 ? 00:00:00 /usr/local/httpd/bin/httpd -k restart
daemon 95037 92467 0 22:24 ? 00:00:00 /usr/local/httpd/bin/httpd -k restart
daemon 95038 92467 0 22:24 ? 00:00:00 /usr/local/httpd/bin/httpd -k restart
daemon 95040 92467 0 22:24 ? 00:00:00 /usr/local/httpd/bin/httpd -k restart
daemon 95041 92467 0 22:24 ? 00:00:00[root@centos01 ~]# rm -rf /usr/src/httpd-2.2.17/ //删除apache根目录下的所有文件
[root@centos01 ~]# tar zxf /mnt/httpd-2.2.17.tar.gz -C /usr/src/ //解压apache源代码程序
[root@centos01 ~]# cd /usr/src/httpd-2.2.17/ //切换到apache根目录
[root@centos01 ~]# ./configure --prefix=/usr/local/httpd --enable-so --enable-rewrite --enable-charset-lite --enable-cgi --with-mpm=worker //安装worker模块
[root@centos01 httpd-2.2.17]# make && make install //编译安装
[root@centos01 ~]# httpd -l //检查是否安装成功
2)查看修改后的工作模式[root@centos01 ~]# httpd -V
3)修改Apache主配置文件加载worker配置[root@centos01 ~]# vim /usr/local/httpd/conf/httpd.conf
---
339 Include conf/extra/httpd-mpm.conf[root@centos01 ~]# vim /usr/local/httpd/conf/extra/httpd-mpm.conf
---
注释掉36~43行
36 #<IfModule mpm_prefork_module>
37 # StartServers 5
38 # Serverlimit 200
39 # MinSpareServers 5
40 # MaxSpareServers 10
41 # MaxClients 150
42 # MaxRequestsPerChild 0
43 #</IfModule>
---
52 <IfModule mpm_worker_module>
53 StartServers 2 //启动进程数
54 ServerLimit 200 //最大进程数
56 MaxClients 1200 //最大连接并大请求
57 MinSpareThreads 25 //最小空闲线程
58 MaxSpareThreads 75 //最大空闲线程
59 ThreadsPerChild 25 //每个进程默认处理线程数
60 MaxRequestsPerChild 75 //每个子进程最大处理请求数0不限制
61 </IfModule>
5)重新启动apache服务[root@centos01 ~]# httpd -t //检查配置文件修改是否有误
Syntax OK
[root@centos01 ~]# systemctl restart httpd //重新启动apache服务
[root@centos01 ~]# netstat -anptu | grep httpd //监听网卡
tcp6 0 0 :::80 :::* LISTEN 73816/httpd[root@centos01 ~]# pstree -a
systemd─┬─ModemManager───2*[{ModemManager}]
├─NetworkManager───2*[{NetworkManager}]
├─atd
├─auditd─┬─audispd─┬─sedispatch
│ │ └─{audispd}
│ └─{auditd}
├─avahi-daemon───avahi-daemon
├─chronyd
├─dnsmasq───dnsmasq
├─gssproxy───5*[{gssproxy}]
├─httpd─┬─httpd
│ └─2*[httpd───26*[{httpd}]][root@centos01 ~]# ab -n14000 -c900 www.duanjiaxu.com/index.html
---
├─httpd -k start
│ ├─httpd -k start
│ ├─httpd -k start
│ │ └─26*[{httpd}]
│ ├─httpd -k start
│ │ └─26*[{httpd}]
│ ├─httpd -k start
│ │ └─26*[{httpd}]
│ ├─httpd -k start
│ │ └─26*[{httpd}]
│ ├─httpd -k start
│ │ └─26*[{httpd}]
│ ├─httpd -k start
│ │ └─26*[{httpd}]
│ ├─httpd -k start
│ │ └─26*[{httpd}]
│ ├─httpd -k start
│ │ └─26*[{httpd}]
│ ├─httpd -k start
│ │ └─26*[{httpd}]
│ ├─httpd -k start
│ │ └─26*[{httpd}]
│ ├─httpd -k start
│ │ └─26*[{httpd}]
│ ├─httpd -k start
│ │ └─26*[{httpd}]
│ ├─httpd -k start
│ │ └─26*[{httpd}]
│ ├─httpd -k start
│ │ └─26*[{httpd}]
导读:随着叮咚买菜业务的发展,不同的业务场景对数据分析提出了不同的需求,他们希望引入一款实时OLAP数据库,构建一个灵活的多维实时查询和分析的平台,统一数据的接入和查询方案,解决各业务线对数据高效实时查询和精细化运营的需求。经过调研选型,最终引入ApacheDoris作为最终的OLAP分析引擎,Doris作为核心的OLAP引擎支持复杂地分析操作、提供多维的数据视图,在叮咚买菜数十个业务场景中广泛应用。作者|叮咚买菜资深数据工程师韩青叮咚买菜创立于2017年5月,是一家专注美好食物的创业公司。叮咚买菜专注吃的事业,为满足更多人“想吃什么”而努力,通过美好食材的供应、美好滋味的开发以及美食品牌的孵
我希望Ruby的解析器会进行这种微不足道的优化,但似乎并没有(谈到YARV实现,Ruby1.9.x、2.0.0):require'benchmark'deffib1a,b=0,1whileb由于这两种方法除了在第二种方法中使用预定义常量而不是常量表达式外是相同的,因此Ruby解释器似乎在每个循环中一次又一次地计算幂常数。是否有一些Material说明为什么Ruby根本不进行这种基本优化或只在某些特定情况下进行? 最佳答案 很抱歉给出了另一个答案,但我不想删除或编辑我之前的答案,因为它下面有有趣的讨论。正如JörgWMittag所说,
我正在尝试从数据库中读取大量单元格(超过100.000个)并将它们写入VPSUbuntu服务器上的csv文件。碰巧服务器没有足够的内存。我正在考虑一次读取5000行并将它们写入文件,然后再读取5000行,等等。我应该如何重构我当前的代码以使内存不会被完全消耗?这是我的代码:defwrite_rows(emails)File.open(file_path,"w+")do|f|f该函数由sidekiqworker调用:write_rows(user.emails)感谢您的帮助! 最佳答案 这里的问题是,当您调用emails.each时,
更新:当输入“passenger-memory-stats”时,我显示:---Passengerprocesses---Processes:0我该如何解决这个问题?为什么即使我在httpd.conf中添加它并重新启动apache,passenger也不会启动?我无法让PhusionPassenger在服务器上运行RubyonRails。我已经按照Phusion网站上的所有说明安装了passenger并修改并创建了ApacheVirtualHost以指向新目录并验证所有.conf文件都已成功加载。还加载了httpd-Mpassenger_module。我还在本地主机上成功运行了Passe
文章目录前言约束硬约束的轨迹优化Corridor-BasedTrajectoryOptimizationBezierCurveOptimizationOtherOptions软约束的轨迹优化Distance-BasedTrajectoryOptimization优化方法前言可以看看我的这几篇Blog1,Blog2,Blog3。上次基于MinimumSnap的轨迹生成,有许多优点,比如:轨迹让机器人可以在某个时间点抵达某个航点。任何一个时刻,都能数学上求出期望的机器人的位置、速度、加速度、导数。MinimumSnap可以把问题转换为凸优化问题。缺点:MnimumSnap可以控制轨迹一定经过中间的
我对为我的RubyonRails3.1.3应用优化我的Unicorn设置的方法很感兴趣。我目前正在高CPU超大实例上生成14个工作进程,因为我的应用程序在负载测试期间似乎受CPU限制。在模拟负载测试中,每秒大约20个请求重放请求,我的实例上的所有8个内核都达到峰值,盒子负载飙升至7-8个。每个unicorn实例使用大约56-60%的CPU。我很好奇可以通过哪些方式对其进行优化?我希望能够每秒将更多请求汇集到这种大小的实例上。内存和所有其他I/O一样完全正常。在我的测试过程中,CPU越来越低。 最佳答案 如果您受CPU限制,您希望使用
美团外卖搜索工程团队在Elasticsearch的优化实践中,基于Location-BasedService(LBS)业务场景对Elasticsearch的查询性能进行优化。该优化基于Run-LengthEncoding(RLE)设计了一款高效的倒排索引结构,使检索耗时(TP99)降低了84%。本文从问题分析、技术选型、优化方案等方面进行阐述,并给出最终灰度验证的结论。1.前言最近十年,Elasticsearch已经成为了最受欢迎的开源检索引擎,其作为离线数仓、近线检索、B端检索的经典基建,已沉淀了大量的实践案例及优化总结。然而在高并发、高可用、大数据量的C端场景,目前可参考的资料并不多。因此
RTS在阿里云视频直播的基础上进行底层技术优化,通过集成阿里云播放器SDK,支持在千万级并发场景下节点间毫秒级延时直播的能力,弥补了传统直播存在3~6秒延时的问题,确保了超低延时、低卡顿、秒开流畅的直播观看体验。本文介绍了基于RTS超低延迟直播优化强互动场景体验的最佳实践方案,并以阿里云播放器Aliplayer为例,详细介绍RTS超低延迟拉流接入、自动降级、排障信息获取等逻辑的实现,助力企业打造互动直播行业的产品竞争力。适用场景该方案适用于对超低延迟直播有诉求的客户,尤其是业务中存在强互动场景直播的场景。强互动场景直播主要是指对主播和观众存在互动,或观众存在更高实时性观看、画面互动需求的情况,
解开谜团:深入探索ChatGPT的技术奇迹。ChatGpt无处不在,无论是在播客、博客、YouTube还是社交媒体上。当我注意到这项新技术如此受欢迎时,我决定试一试,我被震惊了!有很多关于ChatGpt及其魔力的博客,但在这篇博客中,我将深入探讨其内部技术及其工作原理!ChatGpt简介根据OpenAI,ChatGpt被描述为:“我们训练了一个名为ChatGpt的模型,它以对话方式进行交互。对话格式使ChatGpt可以回答后续问题、承认错误、挑战不正确的前提并拒绝不适当的请求。ChatGPT是InstructGPT的兄弟模型,它经过训练可以按照提示中的说明进行操作并提供详细的响应。”OpenA
我目前正在研究Ruby2.1.1的改进,但遇到了一些奇怪的事情。我正在尝试改进String类并定义一个名为FOO的常量。沙箱.rbmoduleFoobarrefineStringdoFOO="BAR"deffoobar"foobar"endendendusingFoobarputs"".class::FOO#=>uninitializedconstantString::FOO(NameError)puts"".foobar#=>"foobar"这给了我未初始化的常量String::FOO(NameError)。但是我可以调用"".foobar这让我相信我在正确的范围内。奇怪的是,如果我