annotate xml/it/docs/http/request_processing.xml @ 1018:19129672444e

Added italian translation. Grazie a Angelo Papadia <angelo.papadia@gmail.com>!
author Vladimir Homutov <vl@nginx.com>
date Wed, 20 Nov 2013 14:36:40 +0400
parents
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
1018
19129672444e Added italian translation.
Vladimir Homutov <vl@nginx.com>
parents:
diff changeset
1 <!--
19129672444e Added italian translation.
Vladimir Homutov <vl@nginx.com>
parents:
diff changeset
2 Copyright (C) Igor Sysoev
19129672444e Added italian translation.
Vladimir Homutov <vl@nginx.com>
parents:
diff changeset
3 Copyright (C) Nginx, Inc.
19129672444e Added italian translation.
Vladimir Homutov <vl@nginx.com>
parents:
diff changeset
4 -->
19129672444e Added italian translation.
Vladimir Homutov <vl@nginx.com>
parents:
diff changeset
5
19129672444e Added italian translation.
Vladimir Homutov <vl@nginx.com>
parents:
diff changeset
6 <!DOCTYPE article SYSTEM "../../../../dtd/article.dtd">
19129672444e Added italian translation.
Vladimir Homutov <vl@nginx.com>
parents:
diff changeset
7
19129672444e Added italian translation.
Vladimir Homutov <vl@nginx.com>
parents:
diff changeset
8 <article name="Come nginx processa una richiesta"
19129672444e Added italian translation.
Vladimir Homutov <vl@nginx.com>
parents:
diff changeset
9 link="/it/docs/http/request_processing.html"
19129672444e Added italian translation.
Vladimir Homutov <vl@nginx.com>
parents:
diff changeset
10 lang="it"
19129672444e Added italian translation.
Vladimir Homutov <vl@nginx.com>
parents:
diff changeset
11 translator="Angelo Papadia"
19129672444e Added italian translation.
Vladimir Homutov <vl@nginx.com>
parents:
diff changeset
12 rev="1"
19129672444e Added italian translation.
Vladimir Homutov <vl@nginx.com>
parents:
diff changeset
13 author="Igor Sysoev"
19129672444e Added italian translation.
Vladimir Homutov <vl@nginx.com>
parents:
diff changeset
14 editor="Brian Mercer">
19129672444e Added italian translation.
Vladimir Homutov <vl@nginx.com>
parents:
diff changeset
15
19129672444e Added italian translation.
Vladimir Homutov <vl@nginx.com>
parents:
diff changeset
16 <section name="Server virtuali name-based">
19129672444e Added italian translation.
Vladimir Homutov <vl@nginx.com>
parents:
diff changeset
17
19129672444e Added italian translation.
Vladimir Homutov <vl@nginx.com>
parents:
diff changeset
18 <para>
19129672444e Added italian translation.
Vladimir Homutov <vl@nginx.com>
parents:
diff changeset
19 La prima cosa che nginx fa e' decidere quale <i>server</i> deve
19129672444e Added italian translation.
Vladimir Homutov <vl@nginx.com>
parents:
diff changeset
20 processare la richiesta. Si consideri una semplice configurazione
19129672444e Added italian translation.
Vladimir Homutov <vl@nginx.com>
parents:
diff changeset
21 in cui tutti i tre server virtuali sono in ascolto sulla porta *:80 :
19129672444e Added italian translation.
Vladimir Homutov <vl@nginx.com>
parents:
diff changeset
22 <programlisting>
19129672444e Added italian translation.
Vladimir Homutov <vl@nginx.com>
parents:
diff changeset
23 server {
19129672444e Added italian translation.
Vladimir Homutov <vl@nginx.com>
parents:
diff changeset
24 listen 80;
19129672444e Added italian translation.
Vladimir Homutov <vl@nginx.com>
parents:
diff changeset
25 server_name example.org www.example.org;
19129672444e Added italian translation.
Vladimir Homutov <vl@nginx.com>
parents:
diff changeset
26 ...
19129672444e Added italian translation.
Vladimir Homutov <vl@nginx.com>
parents:
diff changeset
27 }
19129672444e Added italian translation.
Vladimir Homutov <vl@nginx.com>
parents:
diff changeset
28
19129672444e Added italian translation.
Vladimir Homutov <vl@nginx.com>
parents:
diff changeset
29 server {
19129672444e Added italian translation.
Vladimir Homutov <vl@nginx.com>
parents:
diff changeset
30 listen 80;
19129672444e Added italian translation.
Vladimir Homutov <vl@nginx.com>
parents:
diff changeset
31 server_name example.net www.example.net;
19129672444e Added italian translation.
Vladimir Homutov <vl@nginx.com>
parents:
diff changeset
32 ...
19129672444e Added italian translation.
Vladimir Homutov <vl@nginx.com>
parents:
diff changeset
33 }
19129672444e Added italian translation.
Vladimir Homutov <vl@nginx.com>
parents:
diff changeset
34
19129672444e Added italian translation.
Vladimir Homutov <vl@nginx.com>
parents:
diff changeset
35 server {
19129672444e Added italian translation.
Vladimir Homutov <vl@nginx.com>
parents:
diff changeset
36 listen 80;
19129672444e Added italian translation.
Vladimir Homutov <vl@nginx.com>
parents:
diff changeset
37 server_name example.com www.example.com;
19129672444e Added italian translation.
Vladimir Homutov <vl@nginx.com>
parents:
diff changeset
38 ...
19129672444e Added italian translation.
Vladimir Homutov <vl@nginx.com>
parents:
diff changeset
39 }
19129672444e Added italian translation.
Vladimir Homutov <vl@nginx.com>
parents:
diff changeset
40 </programlisting>
19129672444e Added italian translation.
Vladimir Homutov <vl@nginx.com>
parents:
diff changeset
41
19129672444e Added italian translation.
Vladimir Homutov <vl@nginx.com>
parents:
diff changeset
42 </para>
19129672444e Added italian translation.
Vladimir Homutov <vl@nginx.com>
parents:
diff changeset
43
19129672444e Added italian translation.
Vladimir Homutov <vl@nginx.com>
parents:
diff changeset
44 <para>
19129672444e Added italian translation.
Vladimir Homutov <vl@nginx.com>
parents:
diff changeset
45 In questa configurazione nginx verifica solo il campo <header>Host</header>
19129672444e Added italian translation.
Vladimir Homutov <vl@nginx.com>
parents:
diff changeset
46 dell'header di richiesta, per determinare a quale server la richiesta debba
19129672444e Added italian translation.
Vladimir Homutov <vl@nginx.com>
parents:
diff changeset
47 essere assegnata.
19129672444e Added italian translation.
Vladimir Homutov <vl@nginx.com>
parents:
diff changeset
48 Se il suo valore non corrisponde con quello di alcun nome di server,
19129672444e Added italian translation.
Vladimir Homutov <vl@nginx.com>
parents:
diff changeset
49 oppure se la richiesta semplicemente non contiene tale campo dell'header,
19129672444e Added italian translation.
Vladimir Homutov <vl@nginx.com>
parents:
diff changeset
50 allora nginx assegna la richiesta al server di default per la relativa porta.
19129672444e Added italian translation.
Vladimir Homutov <vl@nginx.com>
parents:
diff changeset
51 Nella configurazione precedente, il server di default e' il primo&mdash;si
19129672444e Added italian translation.
Vladimir Homutov <vl@nginx.com>
parents:
diff changeset
52 tratta del comportamento standard di nginx.
19129672444e Added italian translation.
Vladimir Homutov <vl@nginx.com>
parents:
diff changeset
53 E' anche possibile indicare esplicitamente il server di default, tramite il
19129672444e Added italian translation.
Vladimir Homutov <vl@nginx.com>
parents:
diff changeset
54 parametro <literal>default_server</literal> nella direttiva
19129672444e Added italian translation.
Vladimir Homutov <vl@nginx.com>
parents:
diff changeset
55 <link doc="ngx_http_core_module.xml" id="listen"/> :
19129672444e Added italian translation.
Vladimir Homutov <vl@nginx.com>
parents:
diff changeset
56 <programlisting>
19129672444e Added italian translation.
Vladimir Homutov <vl@nginx.com>
parents:
diff changeset
57 server {
19129672444e Added italian translation.
Vladimir Homutov <vl@nginx.com>
parents:
diff changeset
58 listen 80 <b>default_server</b>;
19129672444e Added italian translation.
Vladimir Homutov <vl@nginx.com>
parents:
diff changeset
59 server_name example.net www.example.net;
19129672444e Added italian translation.
Vladimir Homutov <vl@nginx.com>
parents:
diff changeset
60 ...
19129672444e Added italian translation.
Vladimir Homutov <vl@nginx.com>
parents:
diff changeset
61 }
19129672444e Added italian translation.
Vladimir Homutov <vl@nginx.com>
parents:
diff changeset
62 </programlisting>
19129672444e Added italian translation.
Vladimir Homutov <vl@nginx.com>
parents:
diff changeset
63
19129672444e Added italian translation.
Vladimir Homutov <vl@nginx.com>
parents:
diff changeset
64 <note>
19129672444e Added italian translation.
Vladimir Homutov <vl@nginx.com>
parents:
diff changeset
65 Il parametro <literal>default_server</literal> e' disponibile a partire dalla
19129672444e Added italian translation.
Vladimir Homutov <vl@nginx.com>
parents:
diff changeset
66 versione 0.8.21 di nginx.
19129672444e Added italian translation.
Vladimir Homutov <vl@nginx.com>
parents:
diff changeset
67 Nelle versioni precedenti bisogna usare invece il parametro
19129672444e Added italian translation.
Vladimir Homutov <vl@nginx.com>
parents:
diff changeset
68 <literal>default</literal>.
19129672444e Added italian translation.
Vladimir Homutov <vl@nginx.com>
parents:
diff changeset
69 </note>
19129672444e Added italian translation.
Vladimir Homutov <vl@nginx.com>
parents:
diff changeset
70 Si noti che il server di default e' una proprieta' della porta in ascolto,
19129672444e Added italian translation.
Vladimir Homutov <vl@nginx.com>
parents:
diff changeset
71 e non del nome del server; l'argomento sara' ripreso in seguito.
19129672444e Added italian translation.
Vladimir Homutov <vl@nginx.com>
parents:
diff changeset
72 </para>
19129672444e Added italian translation.
Vladimir Homutov <vl@nginx.com>
parents:
diff changeset
73
19129672444e Added italian translation.
Vladimir Homutov <vl@nginx.com>
parents:
diff changeset
74 </section>
19129672444e Added italian translation.
Vladimir Homutov <vl@nginx.com>
parents:
diff changeset
75
19129672444e Added italian translation.
Vladimir Homutov <vl@nginx.com>
parents:
diff changeset
76
19129672444e Added italian translation.
Vladimir Homutov <vl@nginx.com>
parents:
diff changeset
77 <section id="how_to_prevent_undefined_server_names"
19129672444e Added italian translation.
Vladimir Homutov <vl@nginx.com>
parents:
diff changeset
78 name="Come evitare di processare richieste in cui il nome del server non e' definito">
19129672444e Added italian translation.
Vladimir Homutov <vl@nginx.com>
parents:
diff changeset
79
19129672444e Added italian translation.
Vladimir Homutov <vl@nginx.com>
parents:
diff changeset
80 <para>
19129672444e Added italian translation.
Vladimir Homutov <vl@nginx.com>
parents:
diff changeset
81 Se si desidera che le richieste prive dell'header <header>Host</header>
19129672444e Added italian translation.
Vladimir Homutov <vl@nginx.com>
parents:
diff changeset
82 non siano processate, e' possibile definire un server che si limita a scartarle:
19129672444e Added italian translation.
Vladimir Homutov <vl@nginx.com>
parents:
diff changeset
83 <programlisting>
19129672444e Added italian translation.
Vladimir Homutov <vl@nginx.com>
parents:
diff changeset
84 server {
19129672444e Added italian translation.
Vladimir Homutov <vl@nginx.com>
parents:
diff changeset
85 listen 80;
19129672444e Added italian translation.
Vladimir Homutov <vl@nginx.com>
parents:
diff changeset
86 server_name "";
19129672444e Added italian translation.
Vladimir Homutov <vl@nginx.com>
parents:
diff changeset
87 return 444;
19129672444e Added italian translation.
Vladimir Homutov <vl@nginx.com>
parents:
diff changeset
88 }
19129672444e Added italian translation.
Vladimir Homutov <vl@nginx.com>
parents:
diff changeset
89 </programlisting>
19129672444e Added italian translation.
Vladimir Homutov <vl@nginx.com>
parents:
diff changeset
90 In questo caso il nome del server e' definito con una stringa vuota,
19129672444e Added italian translation.
Vladimir Homutov <vl@nginx.com>
parents:
diff changeset
91 la quale corrispondera' a tutte le richieste prive del campo
19129672444e Added italian translation.
Vladimir Homutov <vl@nginx.com>
parents:
diff changeset
92 <header>Host</header> dell'header; per chiudere la connessione nginx
19129672444e Added italian translation.
Vladimir Homutov <vl@nginx.com>
parents:
diff changeset
93 restituisce il codice 444 (non standard).
19129672444e Added italian translation.
Vladimir Homutov <vl@nginx.com>
parents:
diff changeset
94 <note>
19129672444e Added italian translation.
Vladimir Homutov <vl@nginx.com>
parents:
diff changeset
95 A partire dalla versione 0.8.48 quella descritta e' la configurazione
19129672444e Added italian translation.
Vladimir Homutov <vl@nginx.com>
parents:
diff changeset
96 default per i nomi di server, per cui e' possibile omettere
19129672444e Added italian translation.
Vladimir Homutov <vl@nginx.com>
parents:
diff changeset
97 <literal>server_name ""</literal>.
19129672444e Added italian translation.
Vladimir Homutov <vl@nginx.com>
parents:
diff changeset
98 Nelle versioni precedenti, come nome del server di default si utilizzava
19129672444e Added italian translation.
Vladimir Homutov <vl@nginx.com>
parents:
diff changeset
99 l'<i>hostname</i> della macchina.
19129672444e Added italian translation.
Vladimir Homutov <vl@nginx.com>
parents:
diff changeset
100 </note>
19129672444e Added italian translation.
Vladimir Homutov <vl@nginx.com>
parents:
diff changeset
101 </para>
19129672444e Added italian translation.
Vladimir Homutov <vl@nginx.com>
parents:
diff changeset
102
19129672444e Added italian translation.
Vladimir Homutov <vl@nginx.com>
parents:
diff changeset
103 </section>
19129672444e Added italian translation.
Vladimir Homutov <vl@nginx.com>
parents:
diff changeset
104
19129672444e Added italian translation.
Vladimir Homutov <vl@nginx.com>
parents:
diff changeset
105
19129672444e Added italian translation.
Vladimir Homutov <vl@nginx.com>
parents:
diff changeset
106 <section id="mixed_name_ip_based_servers"
19129672444e Added italian translation.
Vladimir Homutov <vl@nginx.com>
parents:
diff changeset
107 name="Configurazione mista di server virtuali name-based e IP-based">
19129672444e Added italian translation.
Vladimir Homutov <vl@nginx.com>
parents:
diff changeset
108
19129672444e Added italian translation.
Vladimir Homutov <vl@nginx.com>
parents:
diff changeset
109 <para>
19129672444e Added italian translation.
Vladimir Homutov <vl@nginx.com>
parents:
diff changeset
110 Una configurazione piu' complessa prevede vari server virtuali
19129672444e Added italian translation.
Vladimir Homutov <vl@nginx.com>
parents:
diff changeset
111 in ascolto su indirizzi differenti:
19129672444e Added italian translation.
Vladimir Homutov <vl@nginx.com>
parents:
diff changeset
112 <programlisting>
19129672444e Added italian translation.
Vladimir Homutov <vl@nginx.com>
parents:
diff changeset
113 server {
19129672444e Added italian translation.
Vladimir Homutov <vl@nginx.com>
parents:
diff changeset
114 listen 192.168.1.1:80;
19129672444e Added italian translation.
Vladimir Homutov <vl@nginx.com>
parents:
diff changeset
115 server_name example.org www.example.org;
19129672444e Added italian translation.
Vladimir Homutov <vl@nginx.com>
parents:
diff changeset
116 ...
19129672444e Added italian translation.
Vladimir Homutov <vl@nginx.com>
parents:
diff changeset
117 }
19129672444e Added italian translation.
Vladimir Homutov <vl@nginx.com>
parents:
diff changeset
118
19129672444e Added italian translation.
Vladimir Homutov <vl@nginx.com>
parents:
diff changeset
119 server {
19129672444e Added italian translation.
Vladimir Homutov <vl@nginx.com>
parents:
diff changeset
120 listen 192.168.1.1:80;
19129672444e Added italian translation.
Vladimir Homutov <vl@nginx.com>
parents:
diff changeset
121 server_name example.net www.example.net;
19129672444e Added italian translation.
Vladimir Homutov <vl@nginx.com>
parents:
diff changeset
122 ...
19129672444e Added italian translation.
Vladimir Homutov <vl@nginx.com>
parents:
diff changeset
123 }
19129672444e Added italian translation.
Vladimir Homutov <vl@nginx.com>
parents:
diff changeset
124
19129672444e Added italian translation.
Vladimir Homutov <vl@nginx.com>
parents:
diff changeset
125 server {
19129672444e Added italian translation.
Vladimir Homutov <vl@nginx.com>
parents:
diff changeset
126 listen 192.168.1.2:80;
19129672444e Added italian translation.
Vladimir Homutov <vl@nginx.com>
parents:
diff changeset
127 server_name example.com www.example.com;
19129672444e Added italian translation.
Vladimir Homutov <vl@nginx.com>
parents:
diff changeset
128 ...
19129672444e Added italian translation.
Vladimir Homutov <vl@nginx.com>
parents:
diff changeset
129 }
19129672444e Added italian translation.
Vladimir Homutov <vl@nginx.com>
parents:
diff changeset
130 </programlisting>
19129672444e Added italian translation.
Vladimir Homutov <vl@nginx.com>
parents:
diff changeset
131 In tale configurazione nginx dapprima confronta l'indirizzo IP
19129672444e Added italian translation.
Vladimir Homutov <vl@nginx.com>
parents:
diff changeset
132 e la porta della richiesta con le direttive
19129672444e Added italian translation.
Vladimir Homutov <vl@nginx.com>
parents:
diff changeset
133 <link doc="ngx_http_core_module.xml" id="listen"/> dei blocchi
19129672444e Added italian translation.
Vladimir Homutov <vl@nginx.com>
parents:
diff changeset
134 <link doc="ngx_http_core_module.xml" id="server"/>;
19129672444e Added italian translation.
Vladimir Homutov <vl@nginx.com>
parents:
diff changeset
135 quindi, per ciascun blocco per cui c'e' corrispondenza, nginx confronta
19129672444e Added italian translation.
Vladimir Homutov <vl@nginx.com>
parents:
diff changeset
136 il campo <header>Host</header> dell'header della richiesta con i
19129672444e Added italian translation.
Vladimir Homutov <vl@nginx.com>
parents:
diff changeset
137 valori <link doc="ngx_http_core_module.xml" id="server_name"/> del blocco.
19129672444e Added italian translation.
Vladimir Homutov <vl@nginx.com>
parents:
diff changeset
138 Se il nome del server non e' presente in alcun blocco, la richiesta
19129672444e Added italian translation.
Vladimir Homutov <vl@nginx.com>
parents:
diff changeset
139 viene processata dal server di default.
19129672444e Added italian translation.
Vladimir Homutov <vl@nginx.com>
parents:
diff changeset
140 Ad esempio, una richiesta per <literal>www.example.com</literal>
19129672444e Added italian translation.
Vladimir Homutov <vl@nginx.com>
parents:
diff changeset
141 ricevuta sulla porta 192.168.1.1:80, sara' processata dal server di
19129672444e Added italian translation.
Vladimir Homutov <vl@nginx.com>
parents:
diff changeset
142 default di 192.168.1.1:80, vale a dire dal primo server, in quanto non
19129672444e Added italian translation.
Vladimir Homutov <vl@nginx.com>
parents:
diff changeset
143 c'e' alcun nome <literal>www.example.com</literal> definito per tale
19129672444e Added italian translation.
Vladimir Homutov <vl@nginx.com>
parents:
diff changeset
144 combinazione di indirizzo e porta.
19129672444e Added italian translation.
Vladimir Homutov <vl@nginx.com>
parents:
diff changeset
145 </para>
19129672444e Added italian translation.
Vladimir Homutov <vl@nginx.com>
parents:
diff changeset
146
19129672444e Added italian translation.
Vladimir Homutov <vl@nginx.com>
parents:
diff changeset
147 <para>
19129672444e Added italian translation.
Vladimir Homutov <vl@nginx.com>
parents:
diff changeset
148 Si precisa nuovamente che il server di default e' una proprieta' di
19129672444e Added italian translation.
Vladimir Homutov <vl@nginx.com>
parents:
diff changeset
149 indirizzo e porta in ascolto, e che e' possibile definire server di
19129672444e Added italian translation.
Vladimir Homutov <vl@nginx.com>
parents:
diff changeset
150 default differenti per combinazioni differenti di indirizzo e porta:
19129672444e Added italian translation.
Vladimir Homutov <vl@nginx.com>
parents:
diff changeset
151 <programlisting>
19129672444e Added italian translation.
Vladimir Homutov <vl@nginx.com>
parents:
diff changeset
152 server {
19129672444e Added italian translation.
Vladimir Homutov <vl@nginx.com>
parents:
diff changeset
153 listen 192.168.1.1:80;
19129672444e Added italian translation.
Vladimir Homutov <vl@nginx.com>
parents:
diff changeset
154 server_name example.org www.example.org;
19129672444e Added italian translation.
Vladimir Homutov <vl@nginx.com>
parents:
diff changeset
155 ...
19129672444e Added italian translation.
Vladimir Homutov <vl@nginx.com>
parents:
diff changeset
156 }
19129672444e Added italian translation.
Vladimir Homutov <vl@nginx.com>
parents:
diff changeset
157
19129672444e Added italian translation.
Vladimir Homutov <vl@nginx.com>
parents:
diff changeset
158 server {
19129672444e Added italian translation.
Vladimir Homutov <vl@nginx.com>
parents:
diff changeset
159 listen 192.168.1.1:80 <b>default_server</b>;
19129672444e Added italian translation.
Vladimir Homutov <vl@nginx.com>
parents:
diff changeset
160 server_name example.net www.example.net;
19129672444e Added italian translation.
Vladimir Homutov <vl@nginx.com>
parents:
diff changeset
161 ...
19129672444e Added italian translation.
Vladimir Homutov <vl@nginx.com>
parents:
diff changeset
162 }
19129672444e Added italian translation.
Vladimir Homutov <vl@nginx.com>
parents:
diff changeset
163
19129672444e Added italian translation.
Vladimir Homutov <vl@nginx.com>
parents:
diff changeset
164 server {
19129672444e Added italian translation.
Vladimir Homutov <vl@nginx.com>
parents:
diff changeset
165 listen 192.168.1.2:80 <b>default_server</b>;
19129672444e Added italian translation.
Vladimir Homutov <vl@nginx.com>
parents:
diff changeset
166 server_name example.com www.example.com;
19129672444e Added italian translation.
Vladimir Homutov <vl@nginx.com>
parents:
diff changeset
167 ...
19129672444e Added italian translation.
Vladimir Homutov <vl@nginx.com>
parents:
diff changeset
168 }
19129672444e Added italian translation.
Vladimir Homutov <vl@nginx.com>
parents:
diff changeset
169 </programlisting>
19129672444e Added italian translation.
Vladimir Homutov <vl@nginx.com>
parents:
diff changeset
170
19129672444e Added italian translation.
Vladimir Homutov <vl@nginx.com>
parents:
diff changeset
171 </para>
19129672444e Added italian translation.
Vladimir Homutov <vl@nginx.com>
parents:
diff changeset
172
19129672444e Added italian translation.
Vladimir Homutov <vl@nginx.com>
parents:
diff changeset
173 </section>
19129672444e Added italian translation.
Vladimir Homutov <vl@nginx.com>
parents:
diff changeset
174
19129672444e Added italian translation.
Vladimir Homutov <vl@nginx.com>
parents:
diff changeset
175
19129672444e Added italian translation.
Vladimir Homutov <vl@nginx.com>
parents:
diff changeset
176 <section id="simple_php_site_configuration"
19129672444e Added italian translation.
Vladimir Homutov <vl@nginx.com>
parents:
diff changeset
177 name="Configurazione per un semplice sito PHP">
19129672444e Added italian translation.
Vladimir Homutov <vl@nginx.com>
parents:
diff changeset
178
19129672444e Added italian translation.
Vladimir Homutov <vl@nginx.com>
parents:
diff changeset
179 <para>
19129672444e Added italian translation.
Vladimir Homutov <vl@nginx.com>
parents:
diff changeset
180 Nel seguito si analizza come nginx scelga la <i>location</i> per
19129672444e Added italian translation.
Vladimir Homutov <vl@nginx.com>
parents:
diff changeset
181 processare una richiesta nel caso di un tipico, semplice sito PHP:
19129672444e Added italian translation.
Vladimir Homutov <vl@nginx.com>
parents:
diff changeset
182 <programlisting>
19129672444e Added italian translation.
Vladimir Homutov <vl@nginx.com>
parents:
diff changeset
183 server {
19129672444e Added italian translation.
Vladimir Homutov <vl@nginx.com>
parents:
diff changeset
184 listen 80;
19129672444e Added italian translation.
Vladimir Homutov <vl@nginx.com>
parents:
diff changeset
185 server_name example.org www.example.org;
19129672444e Added italian translation.
Vladimir Homutov <vl@nginx.com>
parents:
diff changeset
186 root /data/www;
19129672444e Added italian translation.
Vladimir Homutov <vl@nginx.com>
parents:
diff changeset
187
19129672444e Added italian translation.
Vladimir Homutov <vl@nginx.com>
parents:
diff changeset
188 location / {
19129672444e Added italian translation.
Vladimir Homutov <vl@nginx.com>
parents:
diff changeset
189 index index.html index.php;
19129672444e Added italian translation.
Vladimir Homutov <vl@nginx.com>
parents:
diff changeset
190 }
19129672444e Added italian translation.
Vladimir Homutov <vl@nginx.com>
parents:
diff changeset
191
19129672444e Added italian translation.
Vladimir Homutov <vl@nginx.com>
parents:
diff changeset
192 location ~* \.(gif|jpg|png)$ {
19129672444e Added italian translation.
Vladimir Homutov <vl@nginx.com>
parents:
diff changeset
193 expires 30d;
19129672444e Added italian translation.
Vladimir Homutov <vl@nginx.com>
parents:
diff changeset
194 }
19129672444e Added italian translation.
Vladimir Homutov <vl@nginx.com>
parents:
diff changeset
195
19129672444e Added italian translation.
Vladimir Homutov <vl@nginx.com>
parents:
diff changeset
196 location ~ \.php$ {
19129672444e Added italian translation.
Vladimir Homutov <vl@nginx.com>
parents:
diff changeset
197 fastcgi_pass localhost:9000;
19129672444e Added italian translation.
Vladimir Homutov <vl@nginx.com>
parents:
diff changeset
198 fastcgi_param SCRIPT_FILENAME
19129672444e Added italian translation.
Vladimir Homutov <vl@nginx.com>
parents:
diff changeset
199 $document_root$fastcgi_script_name;
19129672444e Added italian translation.
Vladimir Homutov <vl@nginx.com>
parents:
diff changeset
200 include fastcgi_params;
19129672444e Added italian translation.
Vladimir Homutov <vl@nginx.com>
parents:
diff changeset
201 }
19129672444e Added italian translation.
Vladimir Homutov <vl@nginx.com>
parents:
diff changeset
202 }
19129672444e Added italian translation.
Vladimir Homutov <vl@nginx.com>
parents:
diff changeset
203 </programlisting>
19129672444e Added italian translation.
Vladimir Homutov <vl@nginx.com>
parents:
diff changeset
204
19129672444e Added italian translation.
Vladimir Homutov <vl@nginx.com>
parents:
diff changeset
205 </para>
19129672444e Added italian translation.
Vladimir Homutov <vl@nginx.com>
parents:
diff changeset
206
19129672444e Added italian translation.
Vladimir Homutov <vl@nginx.com>
parents:
diff changeset
207 <para>
19129672444e Added italian translation.
Vladimir Homutov <vl@nginx.com>
parents:
diff changeset
208 Per prima cosa nginx individua fra tutte le location definite da una
19129672444e Added italian translation.
Vladimir Homutov <vl@nginx.com>
parents:
diff changeset
209 stringa quella con il prefisso specifico piu' lungo (l'ordine con cui
19129672444e Added italian translation.
Vladimir Homutov <vl@nginx.com>
parents:
diff changeset
210 sono elencate non e' rilevante); nella configurazione precedente il
19129672444e Added italian translation.
Vladimir Homutov <vl@nginx.com>
parents:
diff changeset
211 solo prefisso definito e' “<literal>/</literal>”, che trova
19129672444e Added italian translation.
Vladimir Homutov <vl@nginx.com>
parents:
diff changeset
212 corrispondenza in qualsiasi richiesta e che quindi verra' comunque
19129672444e Added italian translation.
Vladimir Homutov <vl@nginx.com>
parents:
diff changeset
213 preso in considerazione, come ultima risorsa.
19129672444e Added italian translation.
Vladimir Homutov <vl@nginx.com>
parents:
diff changeset
214 Successivamente, nginx analizza le location definite tramite una
19129672444e Added italian translation.
Vladimir Homutov <vl@nginx.com>
parents:
diff changeset
215 espressione regolare, fermandosi appena ne individua una che
19129672444e Added italian translation.
Vladimir Homutov <vl@nginx.com>
parents:
diff changeset
216 corrisponde (in questo caso l'ordine in cui sono inserite nel file
19129672444e Added italian translation.
Vladimir Homutov <vl@nginx.com>
parents:
diff changeset
217 di configurazione e' rilevante in quanto nginx parte dalla prima e le
19129672444e Added italian translation.
Vladimir Homutov <vl@nginx.com>
parents:
diff changeset
218 analizza una dopo l'altra). La prima location individuata fra quelle
19129672444e Added italian translation.
Vladimir Homutov <vl@nginx.com>
parents:
diff changeset
219 definite come espressione regolare e' quella prescelta; se non ce n'e'
19129672444e Added italian translation.
Vladimir Homutov <vl@nginx.com>
parents:
diff changeset
220 nessuna, nginx ripiega su quella individuata al passo precedente tramite
19129672444e Added italian translation.
Vladimir Homutov <vl@nginx.com>
parents:
diff changeset
221 il prefisso.
19129672444e Added italian translation.
Vladimir Homutov <vl@nginx.com>
parents:
diff changeset
222
19129672444e Added italian translation.
Vladimir Homutov <vl@nginx.com>
parents:
diff changeset
223 </para>
19129672444e Added italian translation.
Vladimir Homutov <vl@nginx.com>
parents:
diff changeset
224
19129672444e Added italian translation.
Vladimir Homutov <vl@nginx.com>
parents:
diff changeset
225 <para>
19129672444e Added italian translation.
Vladimir Homutov <vl@nginx.com>
parents:
diff changeset
226 Notare che tutti i tipi di location sono confrontati con il solo URI
19129672444e Added italian translation.
Vladimir Homutov <vl@nginx.com>
parents:
diff changeset
227 della linea di richiesta, senza argomenti;
19129672444e Added italian translation.
Vladimir Homutov <vl@nginx.com>
parents:
diff changeset
228 cio' e' dovuto al fatto che gli argomenti nella stringa di richiesta
19129672444e Added italian translation.
Vladimir Homutov <vl@nginx.com>
parents:
diff changeset
229 possono essere inviati in vari modi, ad esempio:
19129672444e Added italian translation.
Vladimir Homutov <vl@nginx.com>
parents:
diff changeset
230 <programlisting>
19129672444e Added italian translation.
Vladimir Homutov <vl@nginx.com>
parents:
diff changeset
231 /index.php?user=john&amp;page=1
19129672444e Added italian translation.
Vladimir Homutov <vl@nginx.com>
parents:
diff changeset
232 /index.php?page=1&amp;user=john
19129672444e Added italian translation.
Vladimir Homutov <vl@nginx.com>
parents:
diff changeset
233 </programlisting>
19129672444e Added italian translation.
Vladimir Homutov <vl@nginx.com>
parents:
diff changeset
234 Inoltre, nella stringa di richiesta e' possibile scrivere qualsiasi cosa:
19129672444e Added italian translation.
Vladimir Homutov <vl@nginx.com>
parents:
diff changeset
235 <programlisting>
19129672444e Added italian translation.
Vladimir Homutov <vl@nginx.com>
parents:
diff changeset
236 /index.php?page=1&amp;something+else&amp;user=john
19129672444e Added italian translation.
Vladimir Homutov <vl@nginx.com>
parents:
diff changeset
237 </programlisting>
19129672444e Added italian translation.
Vladimir Homutov <vl@nginx.com>
parents:
diff changeset
238
19129672444e Added italian translation.
Vladimir Homutov <vl@nginx.com>
parents:
diff changeset
239 </para>
19129672444e Added italian translation.
Vladimir Homutov <vl@nginx.com>
parents:
diff changeset
240
19129672444e Added italian translation.
Vladimir Homutov <vl@nginx.com>
parents:
diff changeset
241 <para>
19129672444e Added italian translation.
Vladimir Homutov <vl@nginx.com>
parents:
diff changeset
242 Seguono alcuni esempi di processo di richieste in base alla
19129672444e Added italian translation.
Vladimir Homutov <vl@nginx.com>
parents:
diff changeset
243 configurazione precedente:
19129672444e Added italian translation.
Vladimir Homutov <vl@nginx.com>
parents:
diff changeset
244 <list type="bullet" compact="no">
19129672444e Added italian translation.
Vladimir Homutov <vl@nginx.com>
parents:
diff changeset
245
19129672444e Added italian translation.
Vladimir Homutov <vl@nginx.com>
parents:
diff changeset
246 <listitem>
19129672444e Added italian translation.
Vladimir Homutov <vl@nginx.com>
parents:
diff changeset
247 Una richiesta “<literal>/logo.gif</literal>” corrisponde al prefisso
19129672444e Added italian translation.
Vladimir Homutov <vl@nginx.com>
parents:
diff changeset
248 di location “<literal>/</literal>”, ma anche all'espressione regolare
19129672444e Added italian translation.
Vladimir Homutov <vl@nginx.com>
parents:
diff changeset
249 “<literal>\.(gif|jpg|png)$</literal>”, per cui si utilizzera' quest'ultima
19129672444e Added italian translation.
Vladimir Homutov <vl@nginx.com>
parents:
diff changeset
250 corrispondenza in quanto, come spiegato in precedenza, le espressioni
19129672444e Added italian translation.
Vladimir Homutov <vl@nginx.com>
parents:
diff changeset
251 regolari hanno sempre priorita' sulle stringhe fisse.
19129672444e Added italian translation.
Vladimir Homutov <vl@nginx.com>
parents:
diff changeset
252 Usando la direttiva “<literal>root&nbsp;/data/www</literal>” la richiesta
19129672444e Added italian translation.
Vladimir Homutov <vl@nginx.com>
parents:
diff changeset
253 e' mappata sul file <path>/data/www/logo.gif</path> , che quindi e' inviato
19129672444e Added italian translation.
Vladimir Homutov <vl@nginx.com>
parents:
diff changeset
254 al client.
19129672444e Added italian translation.
Vladimir Homutov <vl@nginx.com>
parents:
diff changeset
255 </listitem>
19129672444e Added italian translation.
Vladimir Homutov <vl@nginx.com>
parents:
diff changeset
256
19129672444e Added italian translation.
Vladimir Homutov <vl@nginx.com>
parents:
diff changeset
257 <listitem>
19129672444e Added italian translation.
Vladimir Homutov <vl@nginx.com>
parents:
diff changeset
258 Una richiesta “<literal>/index.php</literal>” corrisponde sia al prefisso
19129672444e Added italian translation.
Vladimir Homutov <vl@nginx.com>
parents:
diff changeset
259 “<literal>/</literal>” sia all'espressione regolare
19129672444e Added italian translation.
Vladimir Homutov <vl@nginx.com>
parents:
diff changeset
260 “<literal>\.(php)$</literal>”, per cui sara' processata da quest'ultima
19129672444e Added italian translation.
Vladimir Homutov <vl@nginx.com>
parents:
diff changeset
261 sezione della configurazione, e la richiesta sara' inoltrata al server
19129672444e Added italian translation.
Vladimir Homutov <vl@nginx.com>
parents:
diff changeset
262 FastCGI in ascolto su localhost:9000.
19129672444e Added italian translation.
Vladimir Homutov <vl@nginx.com>
parents:
diff changeset
263 La direttiva
19129672444e Added italian translation.
Vladimir Homutov <vl@nginx.com>
parents:
diff changeset
264 <link doc="ngx_http_fastcgi_module.xml" id="fastcgi_param"/>
19129672444e Added italian translation.
Vladimir Homutov <vl@nginx.com>
parents:
diff changeset
265 imposta il parametro FastCGI
19129672444e Added italian translation.
Vladimir Homutov <vl@nginx.com>
parents:
diff changeset
266 <literal>SCRIPT_FILENAME</literal> a “<literal>/data/www/index.php</literal>”,
19129672444e Added italian translation.
Vladimir Homutov <vl@nginx.com>
parents:
diff changeset
267 ed il server FastCGI esegue il file.
19129672444e Added italian translation.
Vladimir Homutov <vl@nginx.com>
parents:
diff changeset
268 La variabile <var>$document_root</var> contiene il valore della direttiva
19129672444e Added italian translation.
Vladimir Homutov <vl@nginx.com>
parents:
diff changeset
269 <link doc="ngx_http_core_module.xml" id="root"/>, e la variabile
19129672444e Added italian translation.
Vladimir Homutov <vl@nginx.com>
parents:
diff changeset
270 <var>$fastcgi_script_name</var> il valore della richiesta URI, vale a dire
19129672444e Added italian translation.
Vladimir Homutov <vl@nginx.com>
parents:
diff changeset
271 “<literal>/index.php</literal>”.
19129672444e Added italian translation.
Vladimir Homutov <vl@nginx.com>
parents:
diff changeset
272 </listitem>
19129672444e Added italian translation.
Vladimir Homutov <vl@nginx.com>
parents:
diff changeset
273
19129672444e Added italian translation.
Vladimir Homutov <vl@nginx.com>
parents:
diff changeset
274 <listitem>
19129672444e Added italian translation.
Vladimir Homutov <vl@nginx.com>
parents:
diff changeset
275 Una richiesta “<literal>/about.html</literal>” corrisponde al solo prefisso
19129672444e Added italian translation.
Vladimir Homutov <vl@nginx.com>
parents:
diff changeset
276 “<literal>/</literal>”, per cui sara' processata da questa sezione.
19129672444e Added italian translation.
Vladimir Homutov <vl@nginx.com>
parents:
diff changeset
277 La direttiva “<literal>root /data/www</literal>” mappa la richiesta sul file
19129672444e Added italian translation.
Vladimir Homutov <vl@nginx.com>
parents:
diff changeset
278 <path>/data/www/about.html</path>, che e' inviato al client.
19129672444e Added italian translation.
Vladimir Homutov <vl@nginx.com>
parents:
diff changeset
279 </listitem>
19129672444e Added italian translation.
Vladimir Homutov <vl@nginx.com>
parents:
diff changeset
280
19129672444e Added italian translation.
Vladimir Homutov <vl@nginx.com>
parents:
diff changeset
281 <listitem>
19129672444e Added italian translation.
Vladimir Homutov <vl@nginx.com>
parents:
diff changeset
282 Una richiesta “<literal>/</literal>” e' processata in maniera piuttosto
19129672444e Added italian translation.
Vladimir Homutov <vl@nginx.com>
parents:
diff changeset
283 complessa. Corrisponde al solo prefisso “<literal>/</literal>”, per cui e'
19129672444e Added italian translation.
Vladimir Homutov <vl@nginx.com>
parents:
diff changeset
284 processata dalla relativa sezione; la direttiva
19129672444e Added italian translation.
Vladimir Homutov <vl@nginx.com>
parents:
diff changeset
285 <link doc="ngx_http_index_module.xml" id="index"/>,
19129672444e Added italian translation.
Vladimir Homutov <vl@nginx.com>
parents:
diff changeset
286 in accordo ai propri parametri e alla direttiva
19129672444e Added italian translation.
Vladimir Homutov <vl@nginx.com>
parents:
diff changeset
287 “<literal>root /data/www</literal>”, verifica la presenza di eventuali file index.
19129672444e Added italian translation.
Vladimir Homutov <vl@nginx.com>
parents:
diff changeset
288 Se il file <path>/data/www/index.html</path> non esiste, ma esiste invece il
19129672444e Added italian translation.
Vladimir Homutov <vl@nginx.com>
parents:
diff changeset
289 file <path>/data/www/index.php</path> , allora la direttiva esegue una
19129672444e Added italian translation.
Vladimir Homutov <vl@nginx.com>
parents:
diff changeset
290 redirezione interna su “<literal>/index.php</literal>”, e nginx ricerca
19129672444e Added italian translation.
Vladimir Homutov <vl@nginx.com>
parents:
diff changeset
291 nuovamente le location, come se si trattasse di una richiesta del client.
19129672444e Added italian translation.
Vladimir Homutov <vl@nginx.com>
parents:
diff changeset
292 Come visto in precedenza, alla fine la richiesta rediretta e' processata
19129672444e Added italian translation.
Vladimir Homutov <vl@nginx.com>
parents:
diff changeset
293 dal server FastCGI.
19129672444e Added italian translation.
Vladimir Homutov <vl@nginx.com>
parents:
diff changeset
294 </listitem>
19129672444e Added italian translation.
Vladimir Homutov <vl@nginx.com>
parents:
diff changeset
295
19129672444e Added italian translation.
Vladimir Homutov <vl@nginx.com>
parents:
diff changeset
296 </list>
19129672444e Added italian translation.
Vladimir Homutov <vl@nginx.com>
parents:
diff changeset
297
19129672444e Added italian translation.
Vladimir Homutov <vl@nginx.com>
parents:
diff changeset
298 </para>
19129672444e Added italian translation.
Vladimir Homutov <vl@nginx.com>
parents:
diff changeset
299
19129672444e Added italian translation.
Vladimir Homutov <vl@nginx.com>
parents:
diff changeset
300 </section>
19129672444e Added italian translation.
Vladimir Homutov <vl@nginx.com>
parents:
diff changeset
301
19129672444e Added italian translation.
Vladimir Homutov <vl@nginx.com>
parents:
diff changeset
302 </article>