Comment éviter le code de duplication dans ma configuration nGinx

J'ai un site web Wordpress Avec mise en cache inclusive PHP APC, où j'aimerais crypter toutes les demandes de

[url=http://www.domain.com/wp-login.php]http://www.domain.com/wp-login.php[/url]*

et

[url=http://www.domain.com/dashboard?action=profile]http://www.domain.com/dashboard?action=profile[/url]

. Je voudrais établir une connexion non cryptée avec tout le reste.

Je peux le faire fonctionner, mais la configuration est extrêmement laide et piratée ensemble. Mon problème est que j'ai encore besoin de transférer deux lignes que j'aimerais crypter, dans le moteur PHP. Il doit y avoir la meilleure façon de le faire au lieu de dupliquer autant.

server {
listen 443;
ssl on;
ssl_certificate /etc/nginx/ssl/new/server.crt;
ssl_certificate_key /etc/nginx/ssl/new/server.key;

server_name www.domain.com domain.com;
root /var/www;
index index.php index.html index.htm;

location / {
try_files $uri $uri/ /index.php?$args;
}

location ~ \wp-login.php.* {
##Stuff to send requests to the PHP engine here
}

location ~ \dashboard?action=profile.* {
##Stuff to send requests to the PHP engine here
}

location ~ \.php$ {
##Stuff to send requests to the PHP engine here
}
}

server {
listen 80;

server_name www.domain.com domain.com;
root /var/www;
index index.php index.html index.htm;

location / {
try_files $uri $uri/ /index.php?$args;
}

location ~ \wp-login.php.* {
##Stuff to send requests to the PHP engine here
}

location ~ \dashboard?action=profile.* {
##Stuff to send requests to the PHP engine here
}

location ~ \.php$ {
##Stuff to send requests to the PHP engine here
}

location ~ \dashboard/\?action\=profile$ {
rewrite ^ https://$http_host$request_uri? permanent;
}

location ~ \wp-login.php.* {
rewrite ^ https://$http_host$request_uri? permanent;
}
}
Invité:

Babette

Confirmation de:

Pour éviter la duplication nginx Dans les blocs d'emplacement, utilisez nginx includes Ou utiliser des blocs de localisation imbriqués - Un exemple de bloc d'emplacement imbriqué devrait ...

    location / {
proxy_pass [url=http://mywebfeservers;]http://mywebfeservers;[/url]
proxy_http_version 1.1;

proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection $connection_upgrade;

proxy_set_header Host $http_host;
proxy_set_header X-Request-ID $uuid;
proxy_set_header Via $via;

location /aaa {
# proxy_pass is not inherited, unsure about proxy_http_version
proxy_pass [url=http://mywebfeservers;]http://mywebfeservers;[/url]
proxy_http_version 1.1;
# Prevent caching
if_modified_since off;
}
}

Ici, tous les emplacements ont ces différents titres. Seul emplacement / aaa Empêche la mise en cache, mais elle utilise toujours les mêmes titres sans répéter la configuration. Malheureusement, vous devez répéter le passage du proxy, car l'héritage ne fonctionne pas avec la directive de passage de proxy. (Pour des raisons que je ne connais pas).

Emilie

Confirmation de:

Quant à l'exigence SSL Pour vous connecter et accéder au panneau de commande, il existe un certain nombre de solutions. Un simple - Éditer

wp-config.php

et juste au-dessus de la ligne qui dit

/* That's all, stop editing! Happy blogging. */

Ajouter

define('FORCE_SSL_ADMIN', true);

.

Personnellement, je ne me soucie pas de l'abus de la version HTTPS du site, car les moteurs de recherche par défaut se réfèrent à des versions non https de sites, de sorte que si vos utilisateurs ne pénètrent pas régulièrement dans le système, seule une petite partie d'entre elles utilisera https Version du site, par conséquent, une légère augmentation de charge sur le serveur, mais YMMV.

Vous pouvez trouver de nombreux conseils dans cet article. Ars Technica,
http://arstechnica.com/informa ... -own/
, Utile.

Vous pouvez aussi voir
https://www.nginx.com/resource ... alls/
sur nginx.org.

Pour répondre aux questions, connectez-vous ou registre