Entonces estoy usando el océano digital y nginx. Quiero alojar varios sitios web (mis proyectos) pero no quiero comprar un dominio para cada uno.
¿Hay alguna manera de alojar múltiples sitios web en nginx y el océano digital mientras se accede a ellos usando esa ip?
X.Y.Z.W/foo
,X.Y.Z.W/bar
)? ¿Por qué no puedes obtener dominios para ellos? (¿Puede asignar la misma IP a múltiples dominios)?Respuestas:
Hay dos formas de lograr esto. O haces todo por dirección IP, con ubicaciones de subcarpetas, o necesitarás comprar un dominio y luego tener múltiples subdominios en ese dominio (los subdominios no deberían costar nada, si compras el dominio, pero consulta con tu registrador).
No aconsejo el método de la dirección IP solo porque es muy malo tener que recordar las direcciones IP, y si intentas compartir información con otros, también tienes el mismo problema de que otros tengan que recordar la dirección IP.
El enfoque de una sola IP, muchas subcarpetas, sin un nombre de dominio
Por
nginx
otro lado, tenemos que hacer un enfoque 'malvado' para esto: una dirección IP, muchas docroots y ubicaciones de subcarpetas. Este es un enfoque muy muy malo y puede causar muchos problemas con algunos marcos web.Suponiendo una
nginx
instalación predeterminada como base de los repositorios, entonces tenemos que crear una configuración de sitio para manejar cada solicitud de subdirectorio del proyecto. Luego tenemos que vincularlo en la ubicación correcta.Cree
/etc/nginx/sites-available/my-projects
con lo siguiente (use esto como una plantilla / guía: asume tres proyectos con HTML estático y sin aplicaciones web dinámicas en PHP o python o similares, y puede copiar los bloques de ubicación individuales y crear nuevas ubicaciones en consecuencia; también asume su IP del servidor es1.2.3.4
).Ahora reemplazamos la configuración predeterminada (elimínela) y agregamos la nuestra:
Y luego reinicie el
nginx
servicio:El enfoque de un dominio y subdominios múltiples.
Con cada
nginx
server {}
bloque en la configuración, necesitará definir el nombre del servidor y, probablemente, establecer un cuarto bloque de servidor como "capturar todo" para otras solicitudes.Con el escenario anterior, tenemos dos partes: dominios y subdominios, y la configuración del servidor.
(1): Configuración DNS
Configure su DNS en su host de manera que lo siguiente sea cierto con los registros DNS:
(2): configuración de NGINX en el servidor (1.2.3.4)
Ahora para sus
nginx
configuraciones. Supongo que tendrá las configuraciones predeterminadas de nginx y los paquetes de los repositorios (voy a usar 14.04 como ejemplo base)./etc/nginx/sites-available
Primero tendremos cuatro archivos de configuración . Es posible que deba usarlosudo
al crear estos archivos, ya que la carpeta en cuestión es propiedad deroot
./etc/nginx/sites-available/catch-all
- Este será el 'catch all' para cualquier dominio no válido. Me gusta devolver el código de error http 410 (GONE).A continuación, configuramos la configuración para sus sitios / proyectos. Sin embargo, voy a suponer que todos son archivos estáticos. Cada uno de estos implica que también tiene diferentes directorios web para cada proyecto en el servidor (diferentes 'raíces de documentos').
/etc/nginx/sites-available/proj1.evil-projects.net
:/etc/nginx/sites-available/proj2.evil-projects.net
:/etc/nginx/sites-available/proj3.evil-projects.net
:Luego tenemos que eliminar la configuración 'predeterminada'
/etc/nginx/sites-enabled
y agregar la nuestra. De nuevo,sudo
se necesita aquí.Y luego reiniciamos el
nginx
proceso:Una vez que el DNS se propaga, los sitios funcionarán como deberían.
fuente