Instalación de nginx en modo proxy
Ayer vimos como usar lighttpd en modo proxy. Hoy vamos a ver como hacer lo mismo pero con nginx.
nginx se trata de un servidor web ligero similar a lighttpd. Anteriormente ya vimos como instalar nginx con PHP.
Procedemos a su instalación mediante los siguientes comandos:
cd /usr/local/src wget http://sysoev.ru/nginx/nginx-0.7.61.tar.gz tar xzf nginx-0.7.61.tar.gz cd nginx-0.7.61 ./configure --prefix=/usr/local/ --without-http_autoindex_module --without-mail_pop3_module --without-mail_imap_module --without-mail_smtp_module --http-client-body-temp-path=/var/nginx/tmp/clientbody --http-proxy-temp-path=/var/nginx/tmp/proxy --conf-path=/usr/local/etc/nginx.conf --without-http_fastcgi_module --with-http_stub_status_module
Veremos un resumen al finalizar el configure similar a este:
Configuration summary + using system PCRE library + OpenSSL library is not used + md5: using system crypto library + sha1 library is not used + using system zlib library nginx path prefix: "/usr/local/" nginx binary file: "/usr/local//sbin/nginx" nginx configuration prefix: "/usr/local/etc" nginx configuration file: "/usr/local/etc/nginx.conf" nginx pid file: "/usr/local//logs/nginx.pid" nginx error log file: "/usr/local//logs/error.log" nginx http access log file: "/usr/local//logs/access.log" nginx http client request body temporary files: "/var/nginx/tmp/clientbody" nginx http proxy temporary files: "/var/nginx/tmp/proxy" nginx http fastcgi temporary files: "fastcgi_temp"
A continuación procederemos a la compilación e instalación:
make && make install useradd nginx -s /sbin/nologin mkdir -p /var/nginx/tmp/clientbody mkdir -p /var/nginx/tmp/proxy chown nginx. /var/nginx/tmp/*
A continuación definiremos el fichero de configuración:
cat > /usr/local/etc/nginx.conf <<EOF
user nginx;
worker_processes 4;
daemon off;
events
{
worker_connections 1024;
}
http
{
include mime.types;
default_type application/octet-stream;
sendfile on;
keepalive_timeout 3;
gzip on;
server
{
listen 80;
server_name _;
access_log off;
location / {
proxy_pass http://127.0.0.1:8080;
}
}
}
EOF
Como vemos, mediante la directiva proxy_pass indicamos el backend que vamos a servir a través de nginx, como puede ser un webmin.
Finalmente lo podemos levantar con las daemontools:
mkdir -p /usr/local/supervise/nginx cat > /usr/local/supervise/nginx/run <<EOF #!/bin/bash exec /usr/local/sbin/nginx EOF chmod +x /usr/local/supervise/nginx/run ln -s /usr/local/supervise/nginx /service
En el caso que el backend haga caso de el header Host, como sería un Apache, deberemos añadir algunos parámetros para que nginx pase el header Host y añada el X-Forwarderd-For.
Relacionados
Imprimir
Deja un comentario: