Usé nginx como proxy inverso en una aplicación express simple. En mi archivo de configuración, he usado la IP del servidor ( http://45.33.97.232/ ) como server_name.
pero, ¿hay alguna forma de evitar escribir la IP del servidor real en este archivo sin romper nada?
server { listen 80 default_server; server_name 45.33.97.232; location / { proxy_set_header Host $host; proxy_set_header X-Forwarded-For $remote_addr; proxy_set_header X-Real-IP $remote_addr; proxy_pass http://45.33.97.232:3000; #port where you are serving your express app. } }Sí. Estableciendo el indicador default_server en la directiva de listen y configurando el nombre del servidor en cualquier nombre de dominio no válido. Por lo general, el nombre _ se usa en los archivos de configuración de ejemplo de nginx, pero puede ser cualquier nombre de dominio no válido, como ! etc:
server { listen 80 default_server; server_name _; ... }Consulte http://nginx.org/en/docs/http/server_names.html#miscellaneous_names para obtener más información al respecto.
Tenga en cuenta que hay un nombre de servidor especial que tiene un significado adicional. Si necesita atender a clientes que no envían el encabezado Host (por ejemplo, clientes HTTP/1.0), la cadena vacía se utiliza para señalar que este bloque de servidor es el que está destinado a atender a dichos clientes. Por lo tanto, server_name se puede configurar con dos comillas dobles ( "" ) para indicar una cadena vacía:
server { listen 80; server_name ""; ... } Sin embargo, tenga en cuenta que esto no funciona como un nombre de dominio general como el _ anterior. En su lugar, detecta solicitudes con encabezado de host vacío.