Saltar al contenido principal

Exemplos

Paso de peticións a un servidor PHP-FPM que escoita peticións no mesmo equipo porto e no porto 9000:

location ~ [^/]\.php(/|$) {
fastcgi_split_path_info ^(.+?\.php)(/.*)$;
if (!-f $document_root$fastcgi_script_name) {
return 404;
}

fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.php;

include fastcgi_params;

# Mitigate https://httpoxy.org/ vulnerabilities
fastcgi_param HTTP_PROXY "";

fastcgi_param REQUEST_URI $request_uri;

# SCRIPT_FILENAME parameter is used for PHP FPM determining
# the script name. If it is not set in fastcgi_params file,
# i.e. /etc/nginx/fastcgi_params or in the parent contexts,
# please comment off following line:
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;

fastcgi_param PATH_INFO $fastcgi_path_info;
}

Paso de peticións a un servidor PHP-FPM que escoita peticións a través dun socket no mesmo equipo:

location ~ [^/]\.php(/|$) {
fastcgi_split_path_info ^(.+?\.php)(/.*)$;
if (!-f $document_root$fastcgi_script_name) {
return 404;
}

fastcgi_pass unix:/var/run/php-fpm.sock;
fastcgi_index index.php;

include fastcgi_params;

# Mitigate https://httpoxy.org/ vulnerabilities
fastcgi_param HTTP_PROXY "";

fastcgi_param REQUEST_URI $request_uri;

# SCRIPT_FILENAME parameter is used for PHP FPM determining
# the script name. If it is not set in fastcgi_params file,
# i.e. /etc/nginx/fastcgi_params or in the parent contexts,
# please comment off following line:
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;

fastcgi_param PATH_INFO $fastcgi_path_info;
}

Paso de peticións a un servidor que executa unha aplicación Python mediante UWSGI (por exemplo o framework Flask):

server {
listen 80;
server_name your_domain www.your_domain;

location / {
include uwsgi_params;
uwsgi_pass unix:/home/sammy/myproject/myproject.sock;
#Tamén poderías er un enderezo IP
#uwsgi_pass 127.0.0.1:9000;
}
}

Paso de peticións a un servidor que executa unha aplicación Python que executa o seu propio servidor HTTP como por exemplo o framework Django:

server {
listen 80;
server_name foo.com;
location / {
proxy_pass http://127.0.0.1:8000;
proxy_set_header Host $host;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
proxy_redirect off;
}
location /static/ {
root /home/myuser/myproject;
}
}

Este último exemplo é moi habitual, xa que moitos frameworks, empregan directamente o protocolo HTTP nos seus servidores. É o caso de Ruby on Rails, Apache Tomcat ou Spring.