reverso - proxy_pass location
nginx simple proxy_pass a localhost no funciona (3)
Estoy tratando de ejecutar un proxy inverso minimalista, y se me ocurrió lo siguiente:
events {
worker_connections 4096;
}
http {
server {
listen 80;
location / {
proxy_pass http://127.0.0.1:3000/;
}
}
}
`
Sin embargo, cuando accedo a este servidor, obtengo el estándar "bienvenido a la página nginx", en lugar de la respuesta del servidor que se ejecuta en el puerto 3000.
Si me dirijo a la máquina y ejecuto curl http://127.0.0.1:3000/
, obtengo el resultado deseado (y finalmente ejecuté ese servidor en el puerto 80
y funcionó bien, así que sé que tiene que ver con el reverso configuración de proxy).
Explicando la publicación de Vijay a través de una respuesta ya que el intercambio no me deja comentar todavía.
Es probable que sea necesario comentar el directorio habilitado para sitios porque está utilizando el archivo nginx.conf estándar. Notará que la línea ya está dentro de la directiva http. Si está utilizando la configuración estándar, está redefiniendo una directiva http dentro de otra directiva http. También puede actualizar el archivo de su sitio para que solo tenga la directiva del servidor y no la directiva http.
Archivo estándar-ish nginx.conf:
worker_processes 4;
error_log /var/log/nginx/error.log;
pid /var/run/nginx.pid;
events {
worker_connections 1024;
}
http {
include /etc/nginx/mime.types;
default_type application/octet-stream;
access_log /var/log/nginx/access.log;
sendfile on;
tcp_nopush on;
tcp_nodelay on;
keepalive_timeout 65;
gzip on;
gzip_http_version 1.0;
gzip_comp_level 5;
gzip_proxied any;
gzip_vary off;
gzip_types text/plain text/css application/x-javascript text/xml application/xml application/rss+xml application/atom+xml text/javascript application/javascript application/json text/mathml;
gzip_min_length 1000;
gzip_disable "MSIE [1-6]/.";
server_names_hash_bucket_size 64;
types_hash_max_size 2048;
types_hash_bucket_size 64;
client_max_body_size 1024;
include /etc/nginx/conf.d/*.conf;
include /etc/nginx/sites-enabled/*;
}
ejemplo de archivo de sitio compatible dentro de sitios habilitados:
server {
server_name {server name};
listen 80;
access_log /var/log/nginx/access.log;
error_log /var/log/nginx/error.log;
location / {
proxy_pass http://example.com:8080;
proxy_set_header Host $host;
}
}
También puede ser útil verificar el enlace de sitios habilitados a sitios disponibles. Tenía el punto de enlace simbólico a ninguna parte y, por lo tanto, nginx nunca leyó la configuración. En mi caso fue.
ls -lh /etc/nginx/sites-enabled
lrwxrwxrwx 1 root root 23 Feb 19 11:11 default -> sites-available/default
en lugar de
ls -lh /etc/nginx/sites-enabled
lrwxrwxrwx 1 root root 23 Feb 19 11:11 default -> ../sites-available/default
Tuve exactamente el mismo problema. Acabo de comentar una línea en mi archivo nginx.conf:
include /etc/nginx/sites-enabled/*;
cambiado a
#include /etc/nginx/sites-enabled/*;