WordPress est un véritable bouillon de mémoire, et j'ai pensé utiliser nginx plutôt qu'Apache.
La seule chose à prendre en compte avant de le faire est qu’il existe des plug-ins qui ne fonctionneront plus. J'ai testé quelques-uns et ils semblent fonctionner, mais je dois savoir s'il y en a qui pourraient casser.
Malheureusement, je n'ai aucune expérience en la matière, mais il est évident que cela peut être fait car ces articles et plugins traitent de certains problèmes:
Connaissez-vous également l'hébergement de WP Engine WordPress ? Ils l'utilisent évidemment sous une forme hybride avec Apache, probablement en tant que proxy frontal.
J'espère que ces aide.
Petit monde :). Vous ne verrez pas beaucoup de problèmes avec Nginx et Apache + Wordpress. Nous l'utilisons également pour notre société et nous n'avons aucun problème à faire en sorte qu'un serveur serve 200 000 personnes uniques par mois et plus d'un million de pages vues par mois pour un site. Nginx + W3 Total Cache, vous obtenez des chiffres très remarquables.
La plus grande différence réside dans les règles de réécriture, mais il existe de nombreux guides (tels que ceux liés par Mike) qui vous fournissent des règles de réécriture équivalentes.
Du point de vue du plugin, à moins que le plugin ne fasse quelque chose de fou , il ne devrait pas connaître la différence. Toutes les règles internes de réécriture et ce genre de choses sont gérées au niveau WordPress, indépendamment de votre HTTPD.
En bref, allez-y.
L'utilisation de Nginx ne fera pas que Wordpress utilise moins de mémoire. Si vous êtes préoccupé par la mémoire, vous pouvez économiser sur le serveur en optimisant votre configuration Apache pour ne charger que les modules dont vous avez besoin et en effectuant une autre configuration qui réduira la mémoire nécessaire à Apache.
A côté de cela, Apache a aussi des modules de cache à prendre en compte, donc il faut sauvegarder toute la mémoire utilisée par WordPress lorsqu’il a été appelé. Puisque la sortie de WordPress est mise en cache, Wordpress n’a plus besoin de fonctionner et vous enregistrez la mémoire.
Lorsque WordPress détecte que mod_rewrite n'est pas chargé, il retourne à pathinfo, à savoir: (/ index.php /% postname% /) permaliens dans la page Paramètres Permalink. Vous pouvez utiliser le plugin nginx Compatibility pour forcer WordPress à utiliser de jolis permaliens, puis ajouter des règles de réécriture à votre fichier de serveur nginx:
server { server_name mysite.com;
root /path/to/blog;
index index.php;
location / {
try_files $uri $uri/ @wordpress;
}
location @wordpress {
fastcgi_pass ...;
fastcgi_param SCRIPT_FILENAME $document_root/index.php;
include /etc/nginx/fastcgi_params;
fastcgi_param SCRIPT_NAME /index.php;
}
location ~ \.php$ {
try_files $uri @wordpress;
fastcgi_index index.php;
fastcgi_pass ...;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include /etc/nginx/fastcgi_params;
}
}
Les docs sont écrits en russe et quelque peu vagues. Parfois, vous vous demandez si la traduction est mauvaise ou si les documents ne sont tout simplement pas très explicites. Donc, trouver des réponses prend parfois beaucoup de temps et/ou nécessite des tests sans suite.
Cependant, l'auteur semble très impliqué avec la communauté, expliquant les options de configuration. Et NginX lui-même vous donne des informations telles que "vous ne pouvez pas utiliser cette option ici".
Configuration de Nginx Virtualhost pour wordpress.
server {
listen 127.0.0.1:8080 default_server;
listen [::]:8080 default_server;
root /var/www/html/wordpress;
index index.php index.html index.htm;
server_name yourdomain.com www.yourdomain.com;
location / {
try_files $uri $uri/ /index.php?$args;
}
location ~ \.php$ {
fastcgi_pass unix:/run/php/php7.0-fpm.sock;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
fastcgi_param PATH_INFO $fastcgi_path_info;
include fastcgi_params;
}
}
Installez varnish ouvrir le fichier/etc/default/varnish, configurez comme ci-dessous.
DAEMON_OPTS="-a :80 \
-T localhost:6082 \
-f /etc/varnish/default.vcl \
-S /etc/varnish/secret \
-s malloc,256m"
Vérifiez le port en cours d'exécution.
netstat -ntulp
si la commande netstat est introuvable.
Sudo apt-get install -y net-tools