Domande sui file di configuration di NginX + WordPress + SSL + non-www + W3TC vhost

Ho le seguenti domande circa i miei blocchi di server per un sito di WordPress in esecuzione esclusivamente su https, con la cache del browser di nginx e W3TC.

Ambiente:

Ubuntu – 14.04LTS

nginx – 1.4.6

PHP – 5.5.9

mysql – Ver 14.14 Distrib 5.5.41

Le mie domande sono le seguenti:

  1. L'ordine delle sezioni "location" è importnte?
  2. L'ordine del block W3TC è importnte?
  3. Ho visto alcuni where "ssl" è inserito nella direttiva di ascolto invece di utilizzare "ssl on;" più tardi – import?
  4. Io gestisco www => non-www nel block server superiore, ma non sto esplicitamente affrontando http://domain.com => https://domain.com (forzando SSL) – ma in qualche modo lo fa per me. Qualche idea di perché funziona anche se non l'ho detto? Sono contento che funziona, voglio solo capire perché funziona.
  5. Anche altri consigli generali sull'installazione sono apprezzati. Grazie!

Configurazione host virtuale:

 server {
   nome_server www.domain.com;
   riscrivere ^ (. *) https: //domain.com$1 permanente;
 }

 server {
   ascoltare 443 default_server;
   server_name domain.com;

   root /usr/share/nginx/html/domain.com;
   indice index.php index.html index.htm;

   # BEGIN W3TC Browser Cache
   gzip su;
   gzip_types text / css text / applicazione x-component / applicazione x-javascript / javascript text / javascript text / x-js text / richtext image / svg + xml text / text semplice / xsd text / xsl text / xml image / x-icon ;
   # END W3TC Cache del browser

   ssl on;
   ssl_certificate /etc/ssl/certs/domain.com.rapidssl.crt;
   ssl_certificate_key /etc/ssl/private/domain.com.key;
   ssl_session_timeout 5m;
   ssl_protocols SSLv3 TLSv1 TLSv1.1 TLSv1.2;
   ssl_ciphers "HIGH:! aNULL:! MD5 o HIGH:! aNULL:! MD5:! 3DES";
   ssl_prefer_server_ciphers on;

   luogo / {
     try_files $ uri $ uri / /index.php?q=$uri&$args;
   }

   errore_pagina 404 /404.html;
   pagina error_page 500 502 503 504 / 50x.html;
   location = /50x.html {
     root / usr / share / nginx / html;
   }

   posizione ~ \ .php $ {
     try_files $ uri = 404;
     fastcgi_pass unix: /var/run/php5-fpm.sock;
     fastcgi_index index.php;
     include fastcgi_params;
   }
 }

  • HTTPS sul nome di dominio separato da HTTP
  • Espressioni regolari in nome server con Nginx vhost
  • Quale configuration server di Apache devo mappare il nome della directory al dominio?
  • Un VirtualHost per alcuni URL, un altro VirtualHost per tutti gli altri URL di Apache
  • Ridisegna il sottodominio ad un altro sito web in una singola impostazione IP virtuale
  • OpenBSD: Come utilizzare `relayd` e` httpd` per redirect le richieste del sottodominio
  • Apache 2 - più siti SSL con più host virtuali
  • limitare la width di banda e l'utilizzo dello spazio di ciascun host virtuale?
  • One Solution collect form web for “Domande sui file di configuration di NginX + WordPress + SSL + non-www + W3TC vhost”

    Non submit più domande in uno.

    Il primo passo, quando non sai come funziona qualcosa, è quello di cercare la documentazione. Nel caso di nginx, le direttive sono spiegate in maniera esaustiva attraverso l' indice della direttiva documentazione ufficiale .

    1. Dipende dalla natura del block di posizione. L'ordine di blocchi di posizione prefisso non è importnte, ma l'ordine di blocchi di posizione regex è, poiché verrà selezionato il primo corrispondente all'URI della richiesta.

    2. L'ordine delle direttive di configuration non import tranne alcuni casi come if blocchi. Le direttive Gzip non fanno parte di queste.

    3. In effetti ssl on è il vecchio modo per farlo e il parametro di controllo ascolti ssl è il nuovo. L'utilizzo di ssl on impone al block server di accettare HTTPS solo mentre l'utilizzo del parametro della direttiva ascolto consente di gestire HTTP e HTTP nello stesso block di server.

    4. In realtà lei ha chiesto esplicitamente a nginx di farlo. Un altro modo per avere lo stesso risultato è utilizzare il return 301 https://domain.com$request_uri . Il patten ^(.*) Di riscrittura corrisponde a tutti gli URI e li cattura. Quindi li riscrive permanentemente (301 reindirizzamento) a https://domain.com<uri> . Fare riferimento alla documentazione per capire come funziona la direttiva di riscrittura se si è confusi.

    5. Le domande basate su opinioni non sono conformi agli standard SF.

    Suggerimenti per Linux e Windows Server, quali Ubuntu, Centos, Apache, Nginx, Debian e argomenti di rete.