Artigo Diretório
- 1. Otimização da página da web do Apache
- 2. Otimização de segurança Apache
-
- 1. Ocultar informações de versão
- 2. Anti-sanguessuga
- 2.2 Configurar anti-sanguessuga
-
- 2.2.1 Verifique se o módulo mod_rewrite está instalado
- 2.2.2 Se o módulo mod_rewrite não estiver instalado, recompile e instale o Apache para adicionar o módulo mod_ rewrite
- 2.2.3 Configurar a ativação do módulo mod_rewrite
- 2.2.4 Preparação da página da web
- 2.2.5 Tente acessar novamente no host de hotlink
1. Otimização da página da web do Apache
1. Visão Geral
- Nas empresas, apenas os parâmetros de configuração padrão são usados após a implantação do Apache, o que causará muitos problemas para o site da Web. Em outras palavras, a configuração padrão é para a configuração anterior de baixo servidor, e a configuração anterior não é mais adequada para a era da Internet atual.
- Para atender às necessidades das empresas, é necessário considerar como melhorar o desempenho e a estabilidade do Apache. Este é o conteúdo da otimização do Apache
2. Otimize o conteúdo
- Configure a função de compressão da página da web para aumentar a taxa de acesso
- Configure o cache da página da web para reduzir a simultaneidade
- Seleção do modo de trabalho e otimização dos parâmetros
- Configure o número da versão oculta
- Configurar anti-sanguessuga
- …
3. introdução gzip
- Configure a função de compressão da página da web do Apache para usar o algoritmo de compressão gzip para comprimir o conteúdo da página da web e, em seguida, transmiti-lo para o navegador do cliente
- Transmitir após compressão, reduzindo o número de bytes transmitidos pela rede, agilizando o carregamento das páginas da web
- Ele também pode economizar tráfego e melhorar a experiência de navegação do usuário
- gzip tem um relacionamento melhor com rastreadores de mecanismos de pesquisa
4. Módulo de compressão Apache
- Os módulos funcionais do Apache para compressão de páginas da web incluem:
-mod_gzip module
-mod_deflate module
- O Apache 1.x
não tem tecnologia de compressão de página da web integrada, mas pode usar o módulo mod_gzip de terceiros para realizar a compressãoFoi eliminado
- Quando o Apache 2.x
foi desenvolvido, o módulo mod_deflate foi construído para substituir o mod_gzip
- O módulo mod_gzip e o módulo mod_deflate
usam o algoritmo de compressão gzip e o princípio de operação é semelhanteA velocidade de compressão do mod_gzip é um pouco mais rápida, enquanto a taxa de compressão do mod_gzip é um pouco maior
Mod_gzip ocupa mais cpu do servidor
Para servidores de alto tráfego, usar mod_deflate pode carregar mais rápido do que mod_gzip
5. Configure a compressão da página da web
5.1 Verifique se o módulo mod_deflate está instalado
apachectl -t -D DUMP_MODULES | grep "deflate"
5.2 Se não estiver instalado, recompile e instale o Apache e adicione o módulo
cd /usr/local/httpd/conf/
mv httpd.conf httpd.conf.bak1
systemctl stop httpd.service
yum -y install gcc gcc-c++ pcre pcre-devel zlib-devel
cd /opt/httpd-2.4.29/
./configure \
--prefix=/usr/local/httpd \
--enable-so \
--enable-rewrite \
--enable-charset-lite \
--enable-cgi \
--enable-deflate #加入mod_deflate模块
make -j 4
make install
5.3 Configurar a ativação do módulo mod_deflate
vim /usr/local/httpd/conf/httpd.conf
--52行--修改
Listen 192.168.126.11:80
--105行--取消注释
LoadModule deflate_module modules/mod_deflate.so ##开启mod_deflate模块
--197行--取消注释,修改
ServerName www.xcf.com:80
--末行添加--
<IfModule mod_deflate.c>
AddOutputFilterByType DEFLATE text/html text/plain text/css text/xml text/javascript text/jpg text/png
#代表对什么样的内容启用gzip压缩
DeflateCompressionLevel 9
#代表压缩级别,范围为1~9
SetOutputFilter DEFLATE
#代表启用deflate模块对本站点的输出进行gzip压缩
</IfModule>
5.4 Verifique a instalação e inicie o serviço
apachectl -t
#验证配置文件的配置是否正确
apachectl -t -D DUMP_MODULES | grep "deflate"
#检查模切模块是否已安装
deflate_module (shared)
Systemctl start httpd.service
5.5 Teste se a compressão mod_deflate tem efeito
cd /usr/local/httpd/htdocs
#先上传一张图传到/usr/local/httpd/htdocs目录下,Xshell直接拖进去即可
vim index.html
<html><body><h1>30bian!30bian!30bian!30bian!30bian!30bian!30bian!30bian!30bian!30bian30bian!30bian!30bian!30bian!30bian!30bian!30bian!30bian!30bian!30bian!30bian!30bian!30bian!30bian!30bian!30bian!30bian!30bian!30bian!30bian!30bian!30bian!30bian!30bian!30bian!30bian!30bian!30bian!30bian!30bian!30bian!30bian!30bian!30bian!30bian!30bian!30bian!30bian!30bian!30bian!30bian!30bian!30bian!30bian!30bian!30bian!30bian!30bian!30bian!30bian!30bian!30bian!30bian!30bian!30bian!30bian!30bian!30bian!30bian!30bian!30bian!30bian!30bian!30bian!30bian!30bian!30bian!30bian!30bian!30bian!30bian!30bian!30bian!30bian!30bian!30bian!30bian!30bian!30bian!30bian!!</h1>
<img src= "zxc123.jpg"/>
</body></html>
systemctl restart httpd.service
echo "192.168.126.11 www.xcf.com" >> /etc/hosts
vim /etc/resolv.conf
nameserver 192.168.126.11
Abra o navegador para acessar o
Método 1:
No sistema Linux, abra o navegador Firefox, clique com o botão direito e clique para visualizar o elemento.
Selecione Rede—> Selecionar HTML, WS. Outro
acesso http://192.168.126.11, clique duas vezes na mensagem de resposta 200 para visualizar o cabeçalho da resposta Contém Conteúdo - Codificação: gzip
Método 2:
Instale o software Fiddler no sistema Windows e abra o software Fiddler.
Selecione inspetores -> selecione o
navegador Cabeçalhos para visitar http://192.168.126.11, clique duas vezes na mensagem de resposta 200 para visualizar Codificação de Conteúdo: gzipInstale ferramentas no virtual win10, arraste o software diretamente para ele, clique duas vezes para instalar, clique em iniciar, clique no programa para
abrir, atualizamos a interface do navegador duas vezes e, em seguida, retornamos ao software para visualizar
6. Configure o tempo de cache das páginas da web
- Configure o apache através do módulo de configuração do módulo mod_expire, para que a página da web possa ser armazenada em cache no navegador do cliente por um período de tempo para evitar solicitações repetidas
- Depois que o módulo mod_expire for ativado, a tag Expires e a tag Cache-Control nas informações do cabeçalho da página serão geradas automaticamente. O navegador do cliente decide com base na tag que a próxima visita é obter a página no cache da máquina local sem fazer outra solicitação ao servidor. Reduzir a frequência e o número de visitas do cliente para atingir o objetivo de reduzir o tráfego desnecessário e aumentar a velocidade de acesso
6.1 Verifique se o módulo mod_expires está instalado
apachectl -t -D DUMP_MODULES | grep "expires"
6.2 Se o módulo mod_ expires não estiver instalado, recompile e instale o Apache e adicione o módulo mod_ expires
systemctl stop httpd.service
cd /usr/local/httpd/conf
mv httpd.conf{
,.bak2}
yum -y install gcc gcc-c++ pcre pcre-devel zlib-devel
cd /opt/httpd-2.4.29/
./configure \
--prefix=/usr/local/httpd \
--enable-so \
--enable-rewrite \
--enable-charset-lite \
--enable-cgi \
--enable-deflate \
--enable-expires
#加入mod_ expires模块
make -j 4
make install
6.3 Configurar a ativação do módulo mod_expires
vim /usr/local/httpd/conf/httpd.conf
--52行--修改
Listen 192.168.126.11:80
--111行- -取消注释
LoadModule expires_ module modules/mod_expires.so
#开启mod_expires模块
--199行--取消注释并修改
ServerName www.xcf.com:80
--末行添加--
<IfModule mod_expires.c>
ExpiresActive On
#打开网页缓存功能
ExpiresDefault "access plus 60 seconds"
#设置缓存60秒
</IfModule>
6.4 Verifique a instalação e inicie o serviço
apachectl -t
#验证配置文件的配置是否正确
apachectl -t -D DUMP_MODULES | grep "expires"
#检查mod_ deflate模块是否已安装
deflate_module (shared)
#已安装的正确结果
systemctl restart httpd.service
6.5 Teste se o cache é eficaz
cat /usr/local/httpd/htdocs/index.html
Método 1:
No sistema Linux, abra o navegador Firefox, clique com o botão direito e clique para ver os elementos.
Selecione Rede -> selecione HTML, WS e outros.
Visite http://192.168.126.11 e clique duas vezes na mensagem 200 para ver o item Expires no cabeçalho da resposta
Método 2:
instale o Microsoft.NET4 e o software fiddler no sistema Windows, por sua vez, abra o software fiddler,
selecione os inspetores -> selecione o
navegador de cabeçalhos para visitar http://192.168.126.11, clique duas vezes na mensagem 200 para visualizar o item Expira
2. Otimização de segurança Apache
1. Ocultar informações de versão
- A informação da versão do Apache revela certas informações de vulnerabilidade, o que traz riscos de segurança para o site
- Configure o Apache para ocultar informações de versão no ambiente de produção
As informações da versão podem ser vistas no experimento anterior, que é: 2.4.29 (Unix)
vim /usr/local/httpd/conf/httpd.conf
-- 491行--取消注释
Include conf/extra/httpd-default.conf
vim /usr/local/httpd/conf/extra/httpd-default.conf
--55行--修改
ServerTokens Prod
#将原本的 Full 改为 Prod,将只显示名称,没有版本
#ServerTokens 表示 Server 回送给客户端的响应头域是否包含关于服务器 OS 类型和编译过的模块描述信息
systemctl restart httpd.service
浏览器访问http://192.168.126.11,双击200消息查看 Server 项
Você pode ver que as informações da versão foram ocultadas com sucesso e também podemos falsificá-las e continuar a aprender mais tarde ~
2. Anti-sanguessuga
- O anti-hotlinking evita que os códigos de outros sites desviem imagens, arquivos, vídeos e outros recursos relacionados em nossos próprios servidores
- Se outros desviarem esses recursos estáticos do site, obviamente aumentará a pressão de largura de banda de nosso servidor
- É equivalente a prostituição direta, acessando a mesma coisa, para que seu site seja acessado, mas os recursos do nosso servidor sejam utilizados
- Como mantenedores do site, devemos evitar que os recursos estáticos do servidor sejam desviados por outros sites
Configurar uma máquina virtual hotlink
Ligue outro host de hotlink como uma "prostituição branca" e use o servidor sem um host anti-sanguessuga para acessar a página da web
#安装httpd服务
yum -y install httpd
systemctl start httpd
#配置临时dns映射
echo "192.168.126.11 www.xcf.com" >>/etc/hosts
echo "192.168.126.12 www.zxc.com" >>/etc/hosts
Editar a página inicial do site de hospedagem na web
vim /var/www/html/index.html
<html><body><h1>30bian!30bian!30bian!30bian!30bian!30bian!30bian!30bian!30bian!30bian30bian!30bian!30bian!30bian!30bian!30bian!30bian!30bian!30bian!30bian!30bian!30bian!30bian!30bian!30bian!30bian!30bian!30bian!30bian!30bian!30bian!30bian!30bian!30bian!30bian!30bian!30bian!30bian!30bian!30bian!30bian!30bian!30bian!30bian!30bian!30bian!30bian!30bian!30bian!30bian!30bian!30bian!30bian!30bian!30bian!30bian!30bian!30bian!30bian!30bian!30bian!30bian!30bian!30bian!30bian!30bian!30bian!30bian!30bian!30bian!30bian!30bian!30bian!30bian!30bian!30bian!30bian!30bian!30bian!30bian!30bian!30bian!30bian!30bian!30bian!30bian!30bian!30bian!30bian!30bian!!</h1>
<img src= "http://www.xcf.com/zxc123.jpg"/>
</body></html>
systemctl restart httpd.service
Use o acesso ao nome de domínio local
2.2 Configurar anti-sanguessuga
2.2.1 Verifique se o módulo mod_rewrite está instalado
apachectl -t -D DUMP_MODULES | grep "rewrite"
2.2.2 Se o módulo mod_rewrite não estiver instalado, recompile e instale o Apache para adicionar o módulo mod_ rewrite
systemctl stop httpd.service
cd /usr/local/httpd/conf/
mv httpd.conf{
,.bak3}
yum -y install gcc gcc-c++ pcre pcre-devel zlib-devel
cd /opt/httpd-2.4.29/
./configure \
--prefix=/usr/local/httpd \
--enable-so \
--enable-rewrite \
--enable-charset-lite \
--enable-cgi \
--enable-deflate \
--enable-expires
make -j 4
make install
2.2.3 Configurar a ativação do módulo mod_rewrite
vim /usr/local/httpd/conf/httpd.conf
--157行--取消注释
LoadModule rewrite_module modules/mod_rewrite.so
--224行--
<Directory "/usr/local/httpd/htdocs">
Options Indexes FollowSymLinks
AllowOverride None
Require all granted
#打开 rewrite功能,加入 mode_rewrite 模板内容
RewriteEngine On
RewriteCond %{
HTTP_REFERER} !^http://xcf.com/.*$ [NC] #设置匹配规则
RewriteCond %{
HTTP_REFERER} !^http://xcf.com$ [NC]
RewriteCond %{
HTTP_REFERER} !^http://www.xcf.com/.*$ [NC]
RewriteCond %{
HTTP_REFERER} !^http://www.xcf.com/$ [NC]
RewriteRule .*\.(gif|jpg|swf)$ http://www.xcf.com/error.png #设置跳转动作
</Directory>
RewriteCond %{
HTTP_REFERER} !^http://www.chenweicom/.$ [NC] 的字段含义:
“%{
HTTP_REFERER}” :存放一个链接的 URL,表示从哪个链接访问所需的网页。
“!^” :表示不以后面的字符串开头。
“http://www.chenwei.com” :是本网站的路径,按整个字符串匹配。
“.$” :表示以任意字符结尾。
“[NC]” :表示不区分大小写字母。
RewriteRule ..(gif|jpg|swf)$ http://www.chenwei.com/error.png 的字段含义:
“.” :表示匹配一个字符。
“” :表示匹配 0 到多个字符,与“.”合起来的意思是匹配 0 到多次前面的任意字符,如果是 1 到多次匹配可以用“+”表示。
“.” :在这里的“\”是转义符,“.”就代表符号“.”的意思。因为“.”在指令中是属于规则字符,有相应的含义, 如果需要匹配,需要在前面加个转义符“\”,其它规则字符如果需要匹配,也做同样处理。
“(gif|jpg|swf)” :表示匹配“gif”、“jpg”、“swf”任意一个,“$”表示结束。最后的规则是以“.gif”、“.jpg”、“.swf”结尾, 前面是1到多个字符的字符串,也就是匹配图片类型的文件。
“http://www.chenwei.com/error.png” :表示转发到这个路径 。
整个配置的含义是 使用本网站以外的网站域名 访问本站的图片文件时,显示 error.png 这个图片
2.2.4 Preparação da página da web
cd /usr/local/httpd/htdocs
#将error.png文件(这里自己可以挑一张png格式的图片,Xshell拖进去即可)
传到/usr/local/httpd/htdocs目录下