Configurar / etc / hosts para ejecutar una aplicación

0

Estoy usando nginx, hasta ahora estaba ejecutando mis aplicaciones php en / usr / share / nginx / html, que es la raíz del documento predeterminada cuando nginx está instalado en centOS y sistemas similares.

Ahora tenía que crear bloques de servidor (o hosts virtuales) para ejecutar otra aplicación, seguí este tutorial ( https://www.digitalocean.com/community/tutorials/how-to-set-up-nginx-server-blocks-virtual -hosts-on-ubuntu-14-04-lts ) y terminé creando mi aplicación en / var / www / html.

En este proceso, como indica el tutorial para editar etc / hosts a su IP pública, esto hizo que se ejecutara otra aplicación que se implementa en mi LAN. Quería que se ejecutara solo en mi máquina, así que lo cambié a mi IP local e hice la siguiente entrada a los hosts

192.168.0.38 dev.mysite.com www.dev.mysite.com 

Curiosamente, justo después de eso, noté que mi nombre de host había cambiado a

muUsername@dev instead of @localhost before
  1. Por favor, dime por qué sucedió y cómo cambiarlo
  2. Ahora la aplicación se ejecuta cuando accedo a localhost en el navegador, pero no cuando accedo a dev.mysite.com, ¿cómo solucionarlo?
  3. Al acceder a www.dev.mysite.com obtengo mi antigua aplicación en el antiguo webroot (uss / share / nginx / html) ¿Por qué sucede esto y cómo solucionarlo?

Necesita más información, por favor comente.

usuario1502178
fuente

Respuestas:

1

1) Ocurre porque está configurando un FQDN para su máquina y se supone que el nombre de host es la parte del subdominio en este caso. Eso se debe al comportamiento de la función gethostname . Si lo ejecuta hosname -f, le dará el FQDN y hostname -dle dará el nombre de dominio. Establezca el nombre de su máquina antes de todos estos FQDN.

Actualización : no le presté atención a que estaba en centos, actualicé la ubicación del segundo archivo

/ etc / hosts:

192.168.0.38 mymachine dev.mysite.com www.dev.mysite.com  

/ etc / sysconfig / network:

HOSTNAME=mymachine  

Luego reiniciar .

2) Cuando llegue a ese nombre de dominio localmente, el núcleo buscará /etc/hostscontenido en algún momento y luego enrutará la solicitud a su interfaz de bucle invertido. Probablemente haya perdido un nombre de servidor en su configuración de nginx.

3) Cambie la ruta raíz de su documento para este nombre de servidor.

server {
    listen 80;
    server_name www.dev.mysite.com;
    root /var/www/dev.mysite.com;
}

server {
    listen 80 default_server;
    server_name _;
    return 301 http://www.dev.mysite.com;
}
Xavier Lucas
fuente
Realicé los cambios, pero ahora cuando accedo a dev.mysite.com, obtengo el antiguo webRoot (usr / share / nginx / html) y al acceder a localhost, obtengo la aplicación de la página almacenada en / var / www / html. Puse el mymachine en / etc / hostname y en / etc / hosts pero el nombre de host no ha cambiado en el relog.
user1502178
Oh si, CentOS. Cambie el nombre de host en / etc / hosts y / etc / sysconfig / network (para este último configúrelo con HOSTNAME = mymachine) y REBOOT . Elimine / etc / hostname, eso es para debian. Para la parte nginx, no es realmente el lugar aquí, pregunte en serverfault. Verifique la respuesta actualizada.
Xavier Lucas
¡HOSTNAME es correcto allí!
user1502178
@ user1502178 Reiniciar.
Xavier Lucas