He registrado un subdominio ddns en No-IP: example.ddns.net
configuré No-IP para asignarlo a la IP de mi enrutador, que reenvía el puerto a mi servidor web NGINX. Quiero tener un servidor web separado que alojé y web1.example.ddns.net
que apunte a /var/www/web1
. Lo que no sé es cómo decirle a NGINX que apunte /var/www/web1
cuando se le llame desde web1.example.ddns.net
. ¿Alguien puede darme una explicación detallada sobre cómo configurar mi servidor?
A continuación se muestra mi configuración para example.ddns.net
esta configuración . /etc/nginx/sites-available/
Hay un enlace a /etc/nginx/sites-enabled
.
server {
listen 80 default_server;
listen [::]:80 default_server;
root /var/www/example.ddns.net;
server_name example.ddns.net;
location / {
# First attempt to serve request as file, then
# as directory, then fall back to displaying a 404.
try_files $uri $uri/ =404;
}
}
A continuación se muestra mi configuración para web1.example.ddns.net
esta configuración . /etc/nginx/sites-available/
Hay un enlace a /etc/nginx/sites-enabled
.
server {
listen 80;
listen [::]:80;
root /var/www/web1.example.ddns.net;
server_name web1.example.ddns.net;
location / {
# First attempt to serve request as file, then
# as directory, then fall back to displaying a 404.
try_files $uri $uri/ =404;
}
}
Estos son los únicos archivos que he cambiado. El siguiente servidor NGINX está alojado en Ubuntu Server y estoy accediendo al servidor a través de ssh y accediendo a la página web a través de una computadora separada. ¿Alguien puede dar algunas instrucciones sobre cómo solucionar este problema?
Respuesta1
La siguiente respuesta es bastante básica. Así que perdóname si repaso algo que ya sabes. =)
He registrado un subdominio DDNS en No-IP:
example.ddns.net
. [...] quiero tener un servidor web separado que alojo yweb1.example.ddns.net
que apunte a/var/www/web1
.
Como aviso, si aún no lo has hecho, debes hacer un ex. web1.example.ddns.net
con No-IP y apúntelo a su servidor. De lo contrario, la configuración del servidor no importará, ya que nadie podrá contactar con el servidor a través de esa dirección.
Lo que no sé es cómo decirle a NGINX que apunte
/var/www/web1
cuando se le llame desdeweb1.example.ddns.net
.
Todo lo que realmente deberías necesitar son bloques de servidor básicos. Tomando como referencia los ejemplos predeterminados de NGINX:
ex. ejemplo.ddns.net
server {
listen 80;
server_name example.ddns.net;
#charset koi8-r;
#access_log logs/host.access.log main;
location / {
root /var/www/example.ddns.net;
index index.html index.htm;
}
# error_page 404 /404.html;
# redirect server error pages to the static page /50x.html
#
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root html;
}
ex. web1.ejemplo.ddns.net
server {
listen 80;
server_name web1.example.ddns.net;
#charset koi8-r;
#access_log logs/host.access.log main;
location / {
root /var/www/web1;
index index.html index.htm;
}
# error_page 404 /404.html;
# redirect server error pages to the static page /50x.html
#
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root html;
}
Instrucciones básicas
Para Ubuntu, debe colocar estos bloques de servidor en el
sites-available
directorio apropiado (por ejemplo,/etc/nginx/sites-available/
) como, por ejemplo,example.ddns.net
yweb1.example.ddns.net
.Cree los enlaces simbólicos relevantes a
sites-enabled
(ej./etc/nginx/sites-enabled/
) como, por ejemplo:sudo ln -s /etc/nginx/sites-available/example.ddns.net /etc/nginx/sites-enabled/ sudo ln -s /etc/nginx/sites-available/web1.example.ddns.net /etc/nginx/sites-enabled/
o por cualquier método recomendado por su sistema operativo.
Ejecute
nginx -t
(como por ejemplosudo nginx -t
) como se sugiere en los comentarios para asegurarse de que NGINX no encuentre ningún error de sintaxis u otros problemas.Reinicie NGINX con ej.
sudo systemctl restart nginx
.
Notas
Los bloques anteriores eliminan IPv6 (esto probablemente no debería ser necesario para las pruebas).
Ninguno de estos ejemplos utiliza
default_server
.Cada entrada respectiva
root
se coloca en unlocation
bloque (es decir, la raíz del sitio web/
).El segundo bloque de servidor anterior se utiliza
/var/www/web1
comoroot
for/
(en lugar deweb1.example.ddns.net
), ya que eso es lo que especificó inicialmente en su pregunta. En cualquier caso, para ser claros,root
debe coincidir con cualquier estructura de directorios que tenga en su sistema de archivos físico. Es decir, no tiene que reflejar su archivoserver_name
, a menos que haya creado directorios (o similares) llamados ex.example.ddns.net
yweb1.example.ddns.net
.El primer bloque de servidor todavía se utiliza
/var/www/example.ddns.net
, así que asegúrese de que sea la ruta correcta al lugar donde almacena sus archivosexample.ddns.net
.En términos generales, después de realizar cambios en su servidor, generalmente es una buena medida borrar la memoria caché de su navegador para que éste no le devuelva datos antiguos.