annotate xml/it/docs/http/request_processing.xml @ 2846:fdf1464e1977

Moved banner to the external file to make partial rollout possible. An idea is to have several banners and show them with different probability specified by split directive in the nginx.conf
author Sergey Budnevitch <sb@waeme.net>
date Tue, 10 May 2022 18:07:27 +0400
parents 19129672444e
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>