Instale o Fikker Cache para construir um CDN autoconstruído para acelerar. Como estive ocupado modificando o tema do site nos últimos dias, compartilho rapidamente esta ferramenta CDN autoconstruída agora. Depois de estudar cuidadosamente a introdução no site oficial, descobri que o Fikker é fácil de instalar e usar. É um bom software para construir seu próprio CDN. De acordo com o site oficial, Fikker é um software de cache de site de nível profissional (Webcache) e servidor proxy reverso (Reversed Proxy Server) para CDN/webmasters. As funções que podem ser implementadas incluem proxy reverso + cache de página + Monitoramento em tempo real +. estatísticas de tráfego + gerenciamento de redirecionamento + HTTPS + prevenção de ataques CC. Mas depois de olhar para a versão gratuita do Fikker, parece que a função de cache de página não está disponível Portanto, a versão gratuita só pode ser usada para acelerar CDN para recursos estáticos como imagens, JS e CSS. Fikker também possui um sistema de controle principal, que pode ser usado para gerenciar uniformemente vários nós de cache Fikker e formar um novo sistema de cache CDN. Para obter mais opções sobre software e programas de criação de sites, você pode conferir:
- LNMP: script de instalação com um clique para OneinStack - implante facilmente o certificado Let's Encrypt e configure o site HTTPS
- Use JW Player, ckplayer, Smartideo para construir uma estação de vídeo ao vivo - suporta os principais sites de vídeo e rtmp
- Ferramenta de construção de sites Linux VPS Instalação e uso de LNMP 1.4 - renovação automática de configuração SSL e suporte a PHP multi-versão
1. Método de instalação do Fikker
Site oficial da Fikker: https://www.fikker.com, fundado em 2010 pela Guangzhou Feike Network Technology Co., Ltd. Preparação da instalação: Fikker precisa monitorar a porta 80/443/6780 Se o seu servidor já tiver instalado o Nginx/Apache e outros serviços, ele precisa ser desativado primeiro. .#安装wget,若已经安装这一步可省略
yum -y install wget
#下载安装包
wget -c http://www.fikker.com/dl/fikkerd-3.7.3-linux-x86-64.tar.gz
#解压
tar zxvf fikkerd-3.7.3-linux-x86-64.tar.gz
#进入安装目录
cd fikkerd-3.7.3-linux-x86-64
#运行Fikker
./fikkerd.sh start
Inicie a instalação: Copie os seguintes comandos em sequência (requer usuário root) e execute-os. Nota: É adequado para versões de 64 bits de sistemas operacionais como CentOS 6.x/7.x. não há necessidade de CPU e mais de 4 GB de memória. Conforme mencionado acima, o Fikker escuta a porta 80/443/6780. Observe que na porta do firewall, digite o seguinte comando:#如果防火墙使用的iptables(Centos 6)
iptables -I INPUT -p tcp --dport 80 -j ACCEPT
iptables -I INPUT -p tcp --dport 443 -j ACCEPT
iptables -I INPUT -p tcp --dport 6780 -j ACCEPT
service iptables save
service iptables restart
#如果使用的是firewall(CentOS 7)
firewall-cmd --zone=public --add-port=80/tcp --permanent
firewall-cmd --zone=public --add-port=443/tcp --permanent
firewall-cmd --zone=public --add-port=6780/tcp --permanent
firewall-cmd --reload
Após a conclusão, visite http://IP:6780 A senha inicial é 123456. Se não puder ser aberta, digite o comando netstat -apn|grep '6780' para verificar se a porta está escutando e se o firewall permite a porta. . Defina o site de origem: Depois de adicionar o host, você também precisa definir o endereço de retorno à origem para informar ao nó CDN onde obter os dados. Depois que o site de origem for adicionado, você estará. pronto. Você pode resolver o DNS para o nó CDN. (Clique para ampliar) Outras operações: Se você precisar registrar o Fikker como um serviço, execute o seguinte comando:#注册服务
./fikkerd.sh install
#停止服务
./fikkerd.sh stop
#删除服务
./fikkerd.sh uninstall
3. Sistema CDN autoconstruído
Etapa um: Primeiro instale o cache Fikker (suporta sistemas Linux/Windows). Instale o cache Fikker em um ou mais servidores de nó de cache para aceleração de cache/proxy reverso, etc. Etapa 2: Em seguida, instale o controle mestre Fikker CDN. Usado para gerenciar vários nós de cache e sincronizar a configuração/estatísticas de tráfego de nomes de domínio/gerenciamento de usuários/gerenciamento de pacotes de cada nó. Nota: Item de instalação opcional Quando há poucos nós, o controle mestre não é necessário. (Clique para ampliar) Etapa 3: Finalmente, use resolução inteligente de terceiros (como Cloudxns/DNSpod/51DNS/DNSla, etc.). Use resolução inteligente de terceiros para resolver o nome de domínio do site para cada IP do servidor do nó de cache de maneira polling/região/linha. Nota: Não resolva para o IP de controle principal.4. Resumo
O Fikker CDN pode facilmente construir seu próprio serviço CDN e suportar HTTP/HTTPS, mas o Fikker ocupa 80/443, tornando impossível a coexistência com seu próprio serviço WEB. Se você não quiser se preocupar, basta usar um CDN de terceiros. Após habilitar o CDN, você descobrirá que o IP do usuário obtido pelo seu programa se tornou o IP do nó de cache. Para obter o IP real do usuário, consulte o código a seguir para fazer os ajustes correspondentes.#php 获得用户真实 IP 代码举例:
function getRemoteIP()
{
if (!isset($_SERVER["HTTP_X_FORWARDED_FOR"])) /* 存在 X-Forwarded-For 吗? */
{
return $_SERVER["REMOTE_ADDR"]; /* 兼容已有程序 */
}
return $_SERVER["HTTP_X_FORWARDED_FOR"]; /* 返回用户真实 IP, 如为多个 IP 时, 则取第一个 */
}
#asp.net 获得用户真实 IP 代码举例:
void getRemoteIP()
{
string SourceIP = Request.ServerVariables["HTTP_X_FORWARDED_FOR"]; /* 存在 X-Forwarded-For 吗? */
if (string.IsNullOrEmpty(SourceIP))
{
SourceIP = Request.ServerVariables["REMOTE_ADDR"]; /* 兼容已有程序 */
}
Response.Write(SourceIP); /* 返回用户真实 IP, 如为多个 IP 时, 则取第一个 */
}
#asp 获得用户真实 IP 代码举例:
0 Then
strIPAddr = Request.ServerVariables("REMOTE_ADDR")
ElseIf InStr(Request.ServerVariables("HTTP_X_FORWARDED_FOR"), ",") > 0 Then
strIPAddr = Mid(Request.ServerVariables("HTTP_X_FORWARDED_FOR"), 1, InStr(Request.ServerVariables("HTTP_X_FORWARDED_FOR"), ",")-1)
ElseIf InStr(Request.ServerVariables("HTTP_X_FORWARDED_FOR"), ";") > 0 Then
strIPAddr = Mid(Request.ServerVariables("HTTP_X_FORWARDED_FOR"), 1, InStr(Request.ServerVariables("HTTP_X_FORWARDED_FOR"), ";")-1)
Else
strIPAddr = Request.ServerVariables("HTTP_X_FORWARDED_FOR")
End If
getIP = Trim(Mid(strIPAddr, 1, 30))
End Function
ip=getRemoteIP()
response.write(ip)
%>