Base de conocimientos
1000 FAQ, 500 tutoriales y vídeos explicativos. ¡Aquí sólo hay soluciones!
Esta guía trata sobre las funciones ODBC de PHP.
Las funciones ODBC de PHP solo están soportadas en Servidor Cloud.
Funciones Open Database Connectivity
Estas son las funciones utilizadas para interactuar con bases de datos a través de la interfaz ODBC (Open Database Connectivity), un estándar para acceder a fuentes de datos de manera uniforme. Aquí tienes algunos ejemplos de uso de las funciones ODBC de PHP:
- Poder leer datos de una base de datos externa y mostrarlos en tu sitio web
- Insertar o modificar datos en una base de datos externa
- Realizar consultas complejas en una base de datos externa
Esta guía explica cómo trabajar sin el módulo PECL SSH2 client
no disponible en los alojamientos web y servidores cloud Infomaniak, utilizando en su lugar la biblioteca phpseclib
, que funciona en PHP nativo sin requerir ninguna extensión específica.
Prólogo
- El uso de
PECL SSH2 client
provoca errores comoNo compatible key exchange algorithms found
oUnable to exchange encryption keys
en su última versión disponible. Phpseclib
permite:- La autenticación SSH por contraseña o clave privada.
- La ejecución de comandos remotos.
- La transferencia de archivos seguros (SFTP).
- La gestión de las claves SSH.
Usar phpseclib
Para integrar una conexión SSH en un script PHP, use phpseclib
de la siguiente manera:
use phpseclib3\Net\SSH2;
use phpseclib3\Crypt\PublicKeyLoader;
$ssh = new SSH2('domain.xyz');
$key = PublicKeyLoader::load(file_get_contents('/path/to/private_key'));
if (!$ssh->login('utilisateur', $key)) {
exit('Authentication Failed');
}
echo $ssh->exec('ls -la');
Infomaniak no realiza ninguna copia de seguridad de los VPS Cloud / VPS Lite.
Sin embargo, puedes…
- … crear una instantánea (snapshot) del servidor (copia de seguridad no automatizada)
- … respaldo del servidor en Swiss Backup (respaldo automatizado)
Esta guía le ayudará, por ejemplo, si desea desplegar un paquete como pymysql
y este requiere una versión de Python superior a la ofrecida en su alojamiento.
Prólogo
- Anaconda es una distribución libre y de código abierto de los lenguajes de programación Python. Esta distribución tiene como objetivo simplificar la gestión de paquetes y el despliegue.
- Se recomienda usar conda que viene con una versión reciente de python y se instala en el espacio del usuario, de modo que no haya conflictos con el sistema python (como en un entorno virtual, que siempre requiere una instalación del sistema de la versión deseada).
- Consulte la documentación oficial.
⚠️ Para obtener ayuda adicional contacte a un socio o lanza una oferta gratuita — también descubre el rol del proveedor de alojamiento.
Descargar el instalador
uid165116@od-12345:~$ wget https://repo.anaconda.com/miniconda/Miniconda3-py37_4.10.3-Linux-x86_64.sh
--2021-07-28 18:21:10-- https://repo.anaconda.com/miniconda/Miniconda3-py37_4.10.3-Linux-x86_64.sh
Resolving repo.anaconda.com (repo.anaconda.com)... 2606:4700::6810:8303, 2606:4700::6810:8203, 104.16.131.3, ...
Connecting to repo.anaconda.com (repo.anaconda.com)|2606:4700::6810:8303|:443... connected.
HTTP request sent, awaiting response... 200 OK
Length: 89026327 (85M) [application/x-sh]
Saving to: ‘Miniconda3-py37_4.10.3-Linux-x86_64.sh’
Miniconda3-py37_4.10.3-Linux-x86_64.sh 100% [==============================================>] 84.90M 203MB/s in 0.4s
18:21:11 (100 MB/s) - ‘Miniconda3-py37_4.10.3-Linux-x86_64.sh’ saved [89026327/89026327]
Verificar el hash
uid165116@od-12345:~$ test $(md5sum Miniconda3-py37_4.10.3-Linux-x86_64.sh | awk '{print $1}') == "9f186c1d86c266acc47dbc1603f0e2ed" && echo "OK"
OK
Iniciar la instalación
uid165116@od-12345:~$ bash Miniconda3-py37_4.10.3-Linux-x86_64.sh -b
PREFIX=/home/clients/fc84cbbf6dcbd6dd76b15d3e56c1789f/miniconda3
Unpacking payload ...
Collecting package metadata (current_repodata.json): done
Solving environment: done
## Package Plan ##
environment location: /home/clients/fc84cbbf6dcbd6dd76b15d3e56c1789f/miniconda3
added / updated specs:
- _libgcc_mutex==0.1=main
- _openmp_mutex==4.5=1_gnu
- brotlipy==0.7.0=py37h27cfd23_1003
- ca-certificates==2021.7.5=h06a4308_1
- certifi==2021.5.30=py37h06a4308_0
- cffi==1.14.6=py37h400218f_0
- chardet==4.0.0=py37h06a4308_1003
- conda-package-handling==1.7.3=py37h27cfd23_1
- conda==4.10.3=py37h06a4308_0
- cryptography==3.4.7=py37hd23ed53_0
- idna==2.10=pyhd3eb1b0_0
- ld_impl_linux-64==2.35.1=h7274673_9
- libffi==3.3=he6710b0_2
- libgcc-ng==9.3.0=h5101ec6_17
- libgomp==9.3.0=h5101ec6_17
- libstdcxx-ng==9.3.0=hd4cf53a_17
- ncurses==6.2=he6710b0_1
- openssl==1.1.1k=h27cfd23_0
- pip==21.1.3=py37h06a4308_0
- pycosat==0.6.3=py37h27cfd23_0
- pycparser==2.20=py_2
- pyopenssl==20.0.1=pyhd3eb1b0_1
- pysocks==1.7.1=py37_1
- python==3.7.10=h12debd9_4
- readline==8.1=h27cfd23_0
- requests==2.25.1=pyhd3eb1b0_0
- ruamel_yaml==0.15.100=py37h27cfd23_0
- setuptools==52.0.0=py37h06a4308_0
- six==1.16.0=pyhd3eb1b0_0
- sqlite==3.36.0=hc218d9a_0
- tk==8.6.10=hbc83047_0
- tqdm==4.61.2=pyhd3eb1b0_1
- urllib3==1.26.6=pyhd3eb1b0_1
- wheel==0.36.2=pyhd3eb1b0_0
- xz==5.2.5=h7b6447c_0
- yaml==0.2.5=h7b6447c_0
- zlib==1.2.11=h7b6447c_3
The following NEW packages will be INSTALLED:
_libgcc_mutex pkgs/main/linux-64::_libgcc_mutex-0.1-main
_openmp_mutex pkgs/main/linux-64::_openmp_mutex-4.5-1_gnu
brotlipy pkgs/main/linux-64::brotlipy-0.7.0-py37h27cfd23_1003
ca-certificates pkgs/main/linux-64::ca-certificates-2021.7.5-h06a4308_1
certifi pkgs/main/linux-64::certifi-2021.5.30-py37h06a4308_0
cffi pkgs/main/linux-64::cffi-1.14.6-py37h400218f_0
chardet pkgs/main/linux-64::chardet-4.0.0-py37h06a4308_1003
conda pkgs/main/linux-64::conda-4.10.3-py37h06a4308_0
conda-package-han~ pkgs/main/linux-64::conda-package-handling-1.7.3-py37h27cfd23_1
cryptography pkgs/main/linux-64::cryptography-3.4.7-py37hd23ed53_0
idna pkgs/main/noarch::idna-2.10-pyhd3eb1b0_0
ld_impl_linux-64 pkgs/main/linux-64::ld_impl_linux-64-2.35.1-h7274673_9
libffi pkgs/main/linux-64::libffi-3.3-he6710b0_2
libgcc-ng pkgs/main/linux-64::libgcc-ng-9.3.0-h5101ec6_17
libgomp pkgs/main/linux-64::libgomp-9.3.0-h5101ec6_17
libstdcxx-ng pkgs/main/linux-64::libstdcxx-ng-9.3.0-hd4cf53a_17
ncurses pkgs/main/linux-64::ncurses-6.2-he6710b0_1
openssl pkgs/main/linux-64::openssl-1.1.1k-h27cfd23_0
pip pkgs/main/linux-64::pip-21.1.3-py37h06a4308_0
pycosat pkgs/main/linux-64::pycosat-0.6.3-py37h27cfd23_0
pycparser pkgs/main/noarch::pycparser-2.20-py_2
pyopenssl pkgs/main/noarch::pyopenssl-20.0.1-pyhd3eb1b0_1
pysocks pkgs/main/linux-64::pysocks-1.7.1-py37_1
python pkgs/main/linux-64::python-3.7.10-h12debd9_4
readline pkgs/main/linux-64::readline-8.1-h27cfd23_0
requests pkgs/main/noarch::requests-2.25.1-pyhd3eb1b0_0
ruamel_yaml pkgs/main/linux-64::ruamel_yaml-0.15.100-py37h27cfd23_0
setuptools pkgs/main/linux-64::setuptools-52.0.0-py37h06a4308_0
six pkgs/main/noarch::six-1.16.0-pyhd3eb1b0_0
sqlite pkgs/main/linux-64::sqlite-3.36.0-hc218d9a_0
tk pkgs/main/linux-64::tk-8.6.10-hbc83047_0
tqdm pkgs/main/noarch::tqdm-4.61.2-pyhd3eb1b0_1
urllib3 pkgs/main/noarch::urllib3-1.26.6-pyhd3eb1b0_1
wheel pkgs/main/noarch::wheel-0.36.2-pyhd3eb1b0_0
xz pkgs/main/linux-64::xz-5.2.5-h7b6447c_0
yaml pkgs/main/linux-64::yaml-0.2.5-h7b6447c_0
zlib pkgs/main/linux-64::zlib-1.2.11-h7b6447c_3
Preparing transaction: done
Executing transaction: done
installation finished.
Iniciar conda
uid165116@od-12345:~$ source <(~/miniconda3/bin/conda shell.bash hook)
Instalar pymysql (por ejemplo)
(base) uid165116@od-12345:~$ python3 -V
Python 3.7.10
(base) uid165116@od-12345:~$ pip3 install pymysql --user
Collecting pymysql
Downloading PyMySQL-1.0.2-py3-none-any.whl (43 kB)
|████████████████████████████████| 43 kB 892 kB/s
Installing collected packages: pymysql
Successfully installed pymysql-1.0.2
Esta guía explica cómo especificar un archivo que se cargará antes de la página deseada o al principio de cada script PHP ejecutado en su servidor, incluido como si se hubiera llamado con la función require()
, pero de manera más global utilizando la directiva auto_prepend_file
de PHP.
Prólogo
- Por ejemplo, para declarar los encabezados de un sitio web, es posible crear un archivo
headers.php
que contenga funciones PHPheader()
y que se prepend al principio de cada archivo PHP…- … a través de un archivo
.user.ini
(propio de una carpeta), - … o a través de la configuración del sitio del Manager (global) como se explica a continuación.
- … a través de un archivo
Incluir un archivo globalmente desde el Manager
Para acceder a la gestión del sitio web:
- Haga clic aquí para acceder a la gestión de su producto en el Manager Infomaniak (¿necesita ayuda?).
- Haga clic directamente en el nombre asignado al producto correspondiente:
- Haga clic en Gestionar bajo Configuración avanzada:
- Haga clic en la pestaña PHP / Apache.
- Complete la línea correspondiente ingresando la ruta del archivo a incluir.
- Haga clic en el botón para guardar:
Después de definir esta directiva, todas las páginas PHP en su servidor incluirán automáticamente el archivo especificado antes de ejecutar su propio código.
Los encabezados definidos en un archivo .htaccess
solo son válidos para el contenido no PHP (es decir, estático).
Infomaniak utiliza php-fpm
que recibe los diferentes encabezados a través de apache fast_cgi
. En la RFC de cgi_www el encabezado Strict-Transport-Security
no forma parte de los encabezados pasados a través de CGI y la documentación de Apache lo confirma. Consulte esta otra RFC.
⚠️ Para obtener ayuda adicional contacte a un socio o lanza una oferta gratuita — también descubre el rol del proveedor de alojamiento.
La infraestructura de Infomaniak no transmite instrucciones de virtualización a los VPS Cloud / VPS Lite; por lo tanto, no es posible realizar virtualización anidada (virtualización que se ejecutaría dentro de un entorno ya virtualizado) ya que esto causa problemas, especialmente durante las migraciones en directo.
Esta guía trata sobre la creación de redes privadas entre diferentes ofertas de alojamiento de Infomaniak como VPS Cloud / VPS Lite, Public Cloud, NAS Synology, etc.
Crear un VLAN entre VPS
No es posible crear una red privada (VLAN) entre VPS Cloud / VPS Lite y otros productos, como NAS Synology p. ej., porque están instalados en redes distintas.
Sin embargo, es posible crear un VLAN entre al menos 10 VPS Cloud / VPS Lite que le pertenezcan (contacte con el soporte de Infomaniak), aunque una red privada dedicada no podrá comunicarse con otra.
Se recomienda migrar a la oferta Public Cloud para crear tales redes privadas entre VM.
Esta guía trata sobre la instalación de extensiones PHP en Hébergements Web Infomaniak.
Uso de extensiones PHP Zend
- Zend Guard Loader es una extensión PHP que permite ejecutar scripts PHP cifrados a través de Zend Guard.
- Zend Guard Loader viene instalado de serie para PHP <= 5.6 en todos los alojamientos web y no está disponible para las versiones de PHP >= 5.6.
- Desde PHP 5.3.x, el módulo Zend Optimizer ha sido reemplazado por ZendGuardLoader
- La extensión ZendOPCache requiere un Servidor Cloud configurado con PHP 5.5 mínimo
Para usar módulos Perl
en un Servidor Cloud de Infomaniak, es necesario instalarlos en la estructura de usuario y definir la ruta completa dentro de los scripts.
Podrás instalar y actualizar libremente tus módulos.
Esta guía trata sobre Redis
, un módulo PHP para Serveur Cloud Infomaniak.
Prólogo
Redis
se utiliza con PHP para acelerar el rendimiento actuando como caché para datos temporales y para gestionar las sesiones de usuario, mejorando así la eficiencia de las aplicaciones web.Redis
también permite implementar sistemas de cola y almacenar temporalmente datos para tareas asincrónicas o estadísticas.
Instalar Redis
Redis
se instala desde Fast Installer, las aplicaciones disponibles en unos pocos clics en Serveur Cloud:
- Después de la instalación,
Redis
está accesible a través de la IP/puertolocalhost:6379
o127.0.0.1:6379
- La contraseña para
Redis
debe tener entre 15 y 99 caracteres (inclusive).
Esta guía explica cómo aumentar el valor max_children
en Servidor Cloud para aumentar el número de procesos PHP simultáneos que pueden ser utilizados por su sitio. Esto será muy útil para resolver problemas de carga infinita de las páginas de su sitio.
Prólogo
- Por defecto en cualquier alojamiento, el límite de
max_children
está fijado a 20.- Aunque es posible aumentar este valor desde el Gestor de Infomaniak, el límite de
max_children
se ajusta automáticamente en función de la configuración de su Servidor Cloud. - Para aumentar este límite en alojamiento compartido, migre a Servidor Cloud.
- Aunque es posible aumentar este valor desde el Gestor de Infomaniak, el límite de
- Para comprender cómo calcular con precisión los
max_children
necesarios, consulte este artículo sobre el tema.
Aumentar el valor max_children
Requisitos previos
- Asegúrese de disponer de los recursos necesarios en el servidor Cloud.
- Asegúrese de que todos los recursos del servidor Cloud no estén utilizados; si resulta que están completamente utilizados, aumentar el valor
max_children
no tendrá ningún efecto (Modificar los recursos del Servidor Cloud). - Controlar el monitoreo de los recursos de su servidor, en caso de que los recursos de su servidor estén alcanzados, será necesario verificar la optimización de los procesos y de su sitio antes de considerar aumentar el valor
max_children
. - Consulte los informes de error de PHP desde la carpeta
/ik-logs
(registros del proceso maestro php - nombre del archivo: php-fpm.log) para verificar si se ha superado el límite "max_children
". Ejemplo de error:[05-Jul-2024 09:08:58] WARNING: [pool www.infomaniak.ch] server reached max_children setting (20), consider raising it
Para acceder a la gestión de los parámetros PHP / Apache del sitio cuyo valor max_children
debe aumentarse en Servidor Cloud, consulte esta otra guía.
Podrá, entre otras cosas…
- … elegir un nuevo valor de
max_children
:
No olvide guardar los cambios al final de la página.
Límites según el servidor
Límite de max_children
según los recursos del Servidor Cloud:
Configuración Servidor Cloud | max_children |
---|---|
2 CPU / 6 Go RAM | 20 |
4 CPU / 12 Go RAM | 40 |
6 CPU / 18 Go RAM | 60 |
8 CPU / 24 Go RAM | 80 |
12 CPU / 36 Go RAM | 120 |
16 CPU / 48 Go RAM | 160 |
24 CPU / 72 Go RAM | 240 |
32 CPU / 96 o 128 Go RAM | 320 |
Esta guía explica cómo modificar las variables de la extensión PHP-CLI que está disponible por defecto en Serveur Cloud Infomaniak.
Modificar las variables PHP_CLI
Para acceder a las extensiones PHP del Serveur Cloud :
- Haga clic aquí para acceder a la gestión de su Servidor Cloud en el Manager Infomaniak (¿Necesita ayuda?).
- Haga clic directamente en el nombre asignado al Serveur Cloud correspondiente.
- Haga clic en Extensiones PHP en el menú lateral izquierdo.
- Haga clic en el menú de acción ⋮ a la derecha de PHP-CLI en la tabla que se muestra.
- Haga clic en Configurar:
- Modifique las siguientes variables:
allow_url_fopen
,allow_url_include
,memory_limit
,max_execution_time
,short_open_tag
,allow_local_infile
- Haga clic en el botón azul Guardar.
Esta guía explica cómo modificar el valor de la directiva php_value include_path
.
Modificar el include_path
Al igual que cualquier otro parámetro de PHP, include_path se define en el archivo .user.ini.
Aquí tienes un ejemplo de ruta para usar en el archivo .user.ini
:
include_path = .:/home/clients/123456789a12345b12fc345d/web/www.domainetest.abc/public/abc/include
Consulte este otro guía sobre phpinfo para verificar que se ha aplicado su nueva directiva.
Esta guía explica cómo modificar la configuración de un VPS Cloud / VPS Lite.
Modificar el tamaño de almacenamiento en VPS Cloud / VPS Lite
Para acceder al VPS Cloud / VPS Lite:
- Haga clic aquí para acceder a la gestión de su producto en el Manager Infomaniak (¿Necesita ayuda?).
- Haga clic en el menú de acción ⋮ a la derecha del objeto correspondiente en la tabla que se muestra.
- Haga clic en Modificar la oferta:
- Realice los ajustes deseados y complete el procedimiento a continuación:
- Es necesario extender el volumen después de aumentar el volumen de almacenamiento.
Esta guía explica cómo autorizar ciertos puertos entrantes y/o salientes en el cortafuegos (o firewall) de un servidor VPS Cloud / VPS Lite.
Acceder a la herramienta de gestión
Para gestionar el firewall VPS Cloud / VPS Lite:
- Haga clic aquí para acceder a la gestión de su producto en el Manager Infomaniak (¿Necesita ayuda?).
- Haga clic directamente en el nombre asignado al producto correspondiente.
- Haga clic en Firewall en el menú lateral izquierdo:
Regla para permitir el ping en VPS Cloud / VPS Lite
Para agregar una regla en el firewall:
- Haga clic en el botón azul para Agregar una regla.
- Haga clic en Selección manual.
- Seleccione ICMP:
- Valide en la parte inferior de la página.
Abrir el puerto saliente 25 de manera global
El puerto saliente 25
(puerto SMTP Mail) está bloqueado por defecto.
Se recomienda utilizar una solución de envío de correo autenticado.
Para abrir este puerto, contacte con el soporte de Infomaniak justificando su solicitud.
Infomaniak no ofrece cifrado de disco virtual en VPS Cloud / VPS Lite pero proporciona un dispositivo de bloque que puede formatear y cifrar si lo desea.
Esta guía trata sobre el intercambio en Servidor Cloud.
Intercambio y memoria RAM
Puede haber swap aunque el uso de RAM sea bajo. De hecho, el sistema puede usar el swap en cualquier momento si lo considera útil.
El swap no es un espacio de memoria dedicado a ser utilizado solo si no hay RAM libre, aunque ese sea su uso principal más común.
Si desea obtener más información, existe un parámetro "swappiness" que permite definir cómo el sistema utilizará el swap. El valor predeterminado es 60
y no se puede modificar.
Esta guía explica cómo conectarse a Elasticsearch después de instalarlo en Magento desde un Servidor Cloud Infomaniak.
Requisitos previos
- Tener un Servidor Cloud Infomaniak.
- Instalar Magento.
- Contactar con el soporte de Infomaniak para la instalación de Elasticsearch.
Información de conexión
Una vez conectado a su espacio Magento, será necesario indicar la siguiente información para iniciar Elasticsearch:
- Nombre de host:
localhost
o127.0.0.1
- Puerto :
9200
- Prefijo :
magento2
⚠️ Para obtener ayuda adicional contacte a un socio o lance una oferta gratuita — también descubra el rol del proveedor de alojamiento.
Esta guía presenta varios ejemplos de uso de Varnish en Servidor Cloud Infomaniak.
⚠️ Para obtener ayuda adicional contacte a un socio o lanza una solicitud de oferta gratuita — también descubre el rol del proveedor de alojamiento.
Configuración de Varnish
Después de la instalación, la configuración de Varnish incluye reglas importantes para la caché y el purgado. Tenga cuidado de no autorizar accidentalmente direcciones IP no deseadas.
Aquí está un ejemplo de un archivo de configuración básico con algunos casos comunes y diferentes acciones/reglas en un solo ejemplo:
vcl 4.0;
# Configuration du backend par défaut
backend default {
.host = "127.0.0.80"; # Adresse IP du backend
.port = "80"; # Port du backend
}
# Définition d'une liste de contrôle d'accès (ACL) pour les IPs autorisées à purger le cache
acl purge {
"localhost"; # IP locale
"1.2.3.4"; # IP de votre domicile
"42.42.42.0"/24; # Plage d'IP publique de votre entreprise
! "42.42.42.7"; # Exclusion d'une IP spécifique (ex : un collègue gênant)
}
# Traitement des requêtes à leur réception par Varnish
sub vcl_recv {
# Autoriser les requêtes de purge
if (req.method == "PURGE") {
# Vérification si l'IP du client est autorisée à purger
if (!client.ip ~ purge) { # 'purge' fait référence à l'ACL définie plus haut
# Retourne une page d'erreur si l'IP n'est pas autorisée
return (synth(405, "Cette IP n'est pas autorisée à envoyer des requêtes PURGE."));
}
# Si l'IP est autorisée, purger le cache pour cette requête
return (purge);
}
# Autoriser la purge de toutes les images via une requête PURGEALL
if (req.method == "PURGEALL" && req.url == "/images") {
if (!client.ip ~ purge) {
return (synth(405, "Cette IP n'est pas autorisée à envoyer des requêtes PURGE."));
}
# Invalider tous les objets en cache correspondant à des images
ban("req.url ~ \.(jpg|png|gif|svg)$");
return (synth(200, "Images purgées."));
}
# Ne pas mettre en cache les pages avec une autorisation (header Authorization)
if (req.http.Authorization) {
# Passer la requête directement au backend sans la mettre en cache
return (pass);
}
}
# Traitement de la réponse du backend avant de la renvoyer au client
sub vcl_backend_response {
# Mise en cache des images pour une durée de 1 jour
if (beresp.http.content-type ~ "image") {
set beresp.ttl = 1d;
}
# Si le backend indique que la réponse ne doit pas être mise en cache, respecter cette consigne
if (beresp.http.uncacheable) {
set beresp.uncacheable = true;
}
}
Limpieza desde la interfaz CLI
Desde allí, las reglas enumeradas en la configuración anterior funcionan en todas las solicitudes, por lo que si el sitio configurado es "domain.xyz", simplemente puede usar la herramienta CLI "curl
" y hacer lo siguiente:
# Envoyer une requête PURGE pour purger la page d'accueil de "domain.xyz"
$ curl -X PURGE https://domain.xyz/
# Réponse renvoyée par le serveur Varnish
<!DOCTYPE html>
<html>
<head>
<title>200 Purged</title>
</head>
<body>
<h1>Erreur 200 : Purge effectuée</h1>
<p>La page a été purgée avec succès.</p>
<h3>Guru Meditation:</h3>
<p>XID: 2</p>
<hr>
<p>Serveur de cache Varnish</p>
</body>
</html>
Y allí, la página de inicio se ha purgado. O para purgar otra URL, simplemente apunte la solicitud a esta última:
# Envoyer une requête PURGE pour purger un fichier spécifique à "domain.xyz"
$ curl -X PURGE https://domain.xyz/some_path/some_file.html
# Réponse renvoyée par le serveur Varnish
<!DOCTYPE html>
<html>
<head>
<title>200 Purged</title>
</head>
<body>
<h1>Erreur 200 : Purge effectuée</h1>
<p>Le fichier a été purgé avec succès.</p>
<h3>Guru Meditation:</h3>
<p>XID: 4</p>
<hr>
<p>Serveur de cache Varnish</p>
</body>
</html>
O, como se indica en la configuración VCL, purgar todas las imágenes:
# Envoyer une requête PURGEALL pour purger toutes les images dans "domain.xyz"
$ curl -X PURGEALL https://domain.xyz/images
# Réponse renvoyée par le serveur Varnish
<!DOCTYPE html>
<html>
<head>
<title>200 Purged images</title>
</head>
<body>
<h1>Erreur 200 : Images purgées</h1>
<p>Toutes les images ont été purgées avec succès.</p>
<h3>Guru Meditation:</h3>
<p>XID: 32770</p>
<hr>
<p>Serveur de cache Varnish</p>
</body>
</html>
Purga desde un CMS
Es un poco más difícil ilustrar este caso porque hay muchas maneras de gestionar la caché desde un backend. En el ejemplo de configuración anterior, se agrega un control en el encabezado "Uncacheable
", que desactiva la caché. Con esta opción, cualquier CMS podría simplemente establecer este encabezado en la respuesta para desactivar la caché de esta solicitud, por ejemplo.
Desde cualquier código PHP y con la configuración anterior, puedes simplemente enviar una solicitud HTTP y usar este fragmento para realizar una PURGA de la caché:
<?php
if ($curl = curl_init("http://127.0.0.1/some_url")) {
curl_setopt_array($curl, [
CURLOPT_RETURNTRANSFER => true,
CURLOPT_CUSTOMREQUEST => "PURGE",
CURLOPT_HTTPHEADER => [
"Host: {$_SERVER['HTTP_HOST']}"
]
]);
curl_exec($curl);
if (curl_getinfo($curl, CURLINFO_HTTP_CODE) == 200) {
echo "Cache purged!";
}
curl_close($curl);
}
?>
Saber más
Enlaces útiles sobre el lenguaje de configuración de Varnish (VCL) para controlar el procesamiento de solicitudes, el enrutamiento, la caché y varios otros aspectos:
No es posible ordenar y obtener más direcciones IP en un VPS Cloud / VPS Lite.
Las alternativas posibles serían usar…
- … un alojamiento de tipo Public Cloud (es posible añadir tantas direcciones IP como se desee),
- … la herramienta Newsletter según sus necesidades.