supporto nginx per le regole .htaccess / rewrite? Differenze rispetto ad Apache?


16

Ho lavorato con i server http Apache per un po 'di tempo, e infine mi sono trasferito su server a contenuto statico insieme alle altre macchine a contenuto dinamico.

Mi chiedevo, nginx supporta i file ".htaccess" e cose come mod_rewrite?

Dato che sono molto abituato alla sintassi, mi chiedevo quali fossero le differenze (di sintassi) e quale sia la curva di apprendimento passando dalle configurazioni di Apache a nginx.

Risposte:


15

La sintassi di riscrittura di nginx è molto più pulita della controparte in mod_rewrite:

regola mod_rewrite:

 RewriteRule ^[a-z0-9_-]*-f([0-9]+)/?(p([0-9]+)\.html)?$ /viewforum.php?f=$1&start=$3 [QSA,L,NC]

Diventa in nginx:

rewrite ^/[a-z0-9_-]*-f([0-9]+)/?(p([0-9]+)\.html)?$ /viewforum.php?f=$1&start=$3 last;

Ma nessun supporto .htaccess ...

Modifica: un altro esempio su come supportare http://example.com/~username/urls in nginx:

location ~ /~([a-zA-Z0-9]*)/(.*) {
    root /home/;
    autoindex on;
    index index.html;
    rewrite ^/~([a-zA-Z0-9]*)/(.*)$ /$1/www/$2 break;
}

5

nginx fornisce funzionalità di riscrittura, controlla NginxHttpRewriteModule

Cosa vuoi fare con .htaccess? È possibile impostare nginx per l'autenticazione di base con NginxHttpAuthBasicModule ma le direttive di configurazione AFAIK possono essere archiviate solo in nginx.conf


2
Essenzialmente mi chiedevo quali fossero le impostazioni per directory. Ora vado a R FM. =)
codardo anonimo l'

4

Sembrerebbe che nginx abbia un mod_rewrite equivelent e la documentazione può essere trovata qui . Non ho usato nginx da solo, ma la documentazione sembra che la configurazione sia totalmente diversa, ma non dovrebbe essere troppo difficile capire cosa sta facendo. Il wiki sembra avere molti esempi.

Non posso rispondere se puoi avere file di configurazione per directory come puoi con apache. Non mi sorprenderebbe se tu potessi, perché le persone si aspettavano che usasse apache.


0

NGINX supporta le configurazioni in molti file attraverso la direttiva 'include'. Fondamentalmente, carica una sub-configurazione e la mette in atto. Supporta anche i personaggi joker, quindi è facile caricarne molti in un colpo solo.

L'unica limitazione (secondo me) è che è necessario ricaricare quando si cambia la configurazione. Pertanto, qualsiasi utente con una configurazione potrebbe aver bisogno dei diritti per ricaricare nginx config:

/etc/ini.d/nginx force-reload (su centos)

Non so davvero se c'è un modo per evitarlo o farlo diversamente perché uso NGINX su molti server con molte app (host virtuali) che sono le mie. Significherebbe che NGINX non è l'ideale per l'hosting condiviso.

Tuttavia, adoro NGINX perché la configurazione è molto più leggibile di un brutto file XML. Questione di gusti credo. L'altro punto positivo è ovviamente la velocità, se è importante nel tuo caso.

Buona fortuna mig

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.