this post was submitted on 28 Jun 2024
0 points (50.0% liked)

Web Development

3407 readers
6 users here now

Welcome to the web development community! This is a place to post, discuss, get help about, etc. anything related to web development

What is web development?

Web development is the process of creating websites or web applications

Rules/Guidelines

Related Communities

Wormhole

Some webdev blogsNot sure what to post in here? Want some web development related things to read?

Heres a couple blogs that have web development related content

CreditsIcon base by Delapouite under CC BY 3.0 with modifications to add a gradient

founded 1 year ago
MODERATORS
0
submitted 2 months ago* (last edited 2 months ago) by Rick_C137 to c/webdev
 

Hi,

You might be aware that if a DNS request point your nginx server.

and this later do not have a server rule for it , nginx will server anyway the first server found in your config file, WTF !

So I've found https://stackoverflow.com/a/23281442

server {
  listen       80 default_server;
  server_name  everythingelse;

  error_page 404 /404.html;

  # Everything is a 404
  location / {
    return 404; #return the code 404
  }

  # link the code to the file
  location = /404.html {
    #EDIT this line to make it match the folder where there is your errors page
    #Dont forget to create 404.html in this folder
    root  /var/www/nginx/errors/;
  }
}

But this is not working !

I made one of my domain pointing to this nginx server, and he still server another site aka server For httpS for http nothing appear..

Thanks.

top 6 comments
sorted by: hot top controversial new old
[–] [email protected] 2 points 2 months ago (1 children)

What is it that you want to happen? Sorry it is a bit unclear in your post.

[–] Rick_C137 1 points 2 months ago* (last edited 2 months ago)

I wanted to have a default server that catch ~wrong DNS query to the server

Solution

I don't know how to link to my previous lemmy post, so here it is again

server {
    listen 443 ssl;
    server_name _;
    ssl_certificate /etc/nginx/ssl/catchall.crt;
    ssl_certificate_key /etc/nginx/ssl/catchall.key;

    error_page 404 /404_CatchAll.html;

    # Everything is a 404
    location / {
        return 404;
    }

    location /404_CatchAll.html {root /var/www/html/;}
}

[–] [email protected] 1 points 2 months ago* (last edited 2 months ago) (1 children)

Just guessing, but should it be pointing at 404.txt, not /404.txt

[–] Rick_C137 1 points 2 months ago

line 5 you mean ?

error_page 404 /404.html; #this one ?
[–] Rick_C137 1 points 2 months ago (1 children)

ok I've found something that ~works !

	server {
		listen 443 ssl;
		server_name _;
		ssl_certificate /etc/nginx/ssl/catchall.crt;
		ssl_certificate_key /etc/nginx/ssl/catchall.key;

		error_page 404 /404.html; #at /var/www/html/

		location /404.html {internal;}

		return 404;
	}

so i get the default 404 html from nginx. but not the one that I specified error_page 404 /404.html; any ideas ?

[–] Rick_C137 1 points 2 months ago

The full working code:

server {
    listen 443 ssl;
    server_name _;
    ssl_certificate /etc/nginx/ssl/catchall.crt;
    ssl_certificate_key /etc/nginx/ssl/catchall.key;

    error_page 404 /404_CatchAll.html;

    # Everything is a 404
    location / {
        return 404;
    }

    location /404_CatchAll.html {root /var/www/html/;}
}