Getting 'welcome to nginx' with no access to internet

Hello,
I have the same problem with nginx and discourse. Always getting the “welcome to nginx"-Page instead of discourse.
DNS and Mail server are setup and I’m hosting on-prem and not in the cloud.
I used this guide: https://github.com/discourse/discourse/blob/master/docs/INSTALL-cloud.md

Fresh installation from Ubuntu:

Distributor ID: Ubuntu
Description:    Ubuntu 19.10
Release:        19.10
Codename:       eoan

lsof -i:80
COMMAND     PID USER   FD   TYPE DEVICE SIZE/OFF NODE NAME
docker-pr 23296 root    4u  IPv6  62651      0t0  TCP *:http (LISTEN)

netstat -plnt
Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address           Foreign Address         State       PID/Program name
tcp        0      0 127.0.0.53:53           0.0.0.0:*               LISTEN      819/systemd-resolve
tcp        0      0 0.0.0.0:22              0.0.0.0:*               LISTEN      906/sshd
tcp6       0      0 :::80                   :::*                    LISTEN      23296/docker-proxy
tcp6       0      0 :::22                   :::*                    LISTEN      906/sshd
tcp6       0      0 :::443                  :::*                    LISTEN      23283/docker-proxy

please help me :smile:

I’d recommend using 18.04LTS and not a release that’s going to be unsupported soon.

What does docker ps say?

docker ps
CONTAINER ID        IMAGE                 COMMAND             CREATED             STATUS              PORTS                                      NAMES
01b8b484088b        local_discourse/app   "/sbin/boot"        12 hours ago        Up 12 hours         0.0.0.0:80->80/tcp, 0.0.0.0:443->443/tcp   app

I also tried Debian 9 and 10.
I will also try Ubuntu 18.04LTS and write down the result

If you keep wiping and rebuilding let’s encrypt is going to temporarily stop issuing certificates.

The server has access to the Internet, but is not accessible from the Internet and the DNS ends with .lan
Soo… does letsencrypt play a role at all, because authority can’t check it from the Internet?

I installed Ubuntu 18.04LTS and I have the same problem.

lsb_release -a:
Distributor ID: Ubuntu
Description:    Ubuntu 18.04.4 LTS
Release:        18.04
Codename:       bionic

lsof -i:80
COMMAND    PID USER   FD   TYPE DEVICE SIZE/OFF NODE NAME
docker-pr 1598 root    4u  IPv6  21087      0t0  TCP *:http (LISTEN)

netstat -tulpn:
Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address           Foreign Address         State       PID/Program name
tcp        0      0 127.0.0.53:53           0.0.0.0:*               LISTEN      854/systemd-resolve
tcp        0      0 0.0.0.0:22              0.0.0.0:*               LISTEN      1233/sshd
tcp6       0      0 :::80                   :::*                    LISTEN      1598/docker-proxy
tcp6       0      0 :::22                   :::*                    LISTEN      1233/sshd
tcp6       0      0 :::443                  :::*                    LISTEN      1583/docker-proxy
udp        0      0 127.0.0.53:53           0.0.0.0:*                           854/systemd-resolve

docker ps:
CONTAINER ID        IMAGE                 COMMAND             CREATED             STATUS              PORTS                                      NAMES
798e15496293        local_discourse/app   "/sbin/boot"        2 hours ago         Up 3 minutes        0.0.0.0:80->80/tcp, 0.0.0.0:443->443/tcp   app

From the Install Guide

:bell: Discourse will not work from an IP address, you must own a domain name such as example.com to proceed.

If you’re not using a publicly valid FQDN then the normal install route won’t work for you. Local DNS entries and domain names aren’t interchangeable here. Let’s Encrypt will fail because the DNS entry isn’t valid.

You’re going to need to modify the app.yml by hand to eliminate HTTPS and Let’s Encrypt. Comment out the unnecessary templates and the entry which exposes port 443.

Unless you plan on issuing a self-signed certificate you will be serving everything over HTTP.

4 Likes

Hello Stephen!

I have the same problem with Fun Tec. I have my own domain and I don’t think it is the problem of letsencrypt. Here is my logs after command sudo ./launcher restart app. Can you find some useful information?

Shutting Down
run-parts: executing /etc/runit/3.d/01-nginx
ok: down: nginx: 0s, normally up, want up
run-parts: executing /etc/runit/3.d/02-unicorn
(2165) exiting
ok: down: unicorn: 1s, normally up
run-parts: executing /etc/runit/3.d/10-redis
ok: down: redis: 0s, normally up
run-parts: executing /etc/runit/3.d/99-postgres
ok: down: postgres: 0s, normally up
ok: down: nginx: 2s, normally up
ok: down: postgres: 0s, normally up
ok: down: redis: 1s, normally up
ok: down: unicorn: 2s, normally up
ok: down: cron: 0s, normally up
ok: down: rsyslog: 0s, normally up
run-parts: executing /etc/runit/1.d/00-ensure-links
run-parts: executing /etc/runit/1.d/00-fix-var-logs
run-parts: executing /etc/runit/1.d/01-cleanup-web-pids
run-parts: executing /etc/runit/1.d/anacron
run-parts: executing /etc/runit/1.d/cleanup-pids
Cleaning stale PID files
run-parts: executing /etc/runit/1.d/copy-env
run-parts: executing /etc/runit/1.d/letsencrypt
[Wed 16 Dec 2020 01:26:10 PM UTC] Using CA: https://acme-v02.api.letsencrypt.org/directory
[Wed 16 Dec 2020 01:26:10 PM UTC] Single domain='a.mapengfei.xyz'
[Wed 16 Dec 2020 01:26:10 PM UTC] Getting domain auth token for each domain

Hi FunTec!

I think you haven’t isntall netcat. I hope it will help you!

1 Like

Hi there.

I’m getting the exact same issue.

I’m starting with a fresh install of ubuntu: 20.04.3 LTS

To clarify, no. Nginx was not installed prior.

Here is a link to the install log: install

How to resolve, thanks.

I’m dealing with the same issue here.
Fresh install of ubuntu 24 lts
Bootstrap completes, then nginx default page.
When I ./discourse-doctor I get:

DISCOURSE DOCTOR Fri Apr 25 06:19:55 PM UTC 2025
OS: Linux talk 6.8.0-58-generic #60-Ubuntu SMP PREEMPT_DYNAMIC Fri Mar 14 18:29:48 UTC 2025 x86_64 x86_64 x86_64 GNU/Linux


Found containers/app.yml

==================== YML SETTINGS ====================
DISCOURSE_HOSTNAME=talk.technospider.com
SMTP_ADDRESS=smtppro.zoho.com
DEVELOPER_EMAILS=REDACTED 
SMTP_PASSWORD=REDACTED 
SMTP_PORT=587
SMTP_USER_NAME=david@technospider.com
LETSENCRYPT_ACCOUNT_EMAIL=REDACTED 

==================== DOCKER INFO ====================
DOCKER VERSION: Docker version 26.1.3, build 26.1.3-0ubuntu1~24.04.1

DOCKER PROCESSES (docker ps -a)

CONTAINER ID   IMAGE                 COMMAND        CREATED          STATUS          PORTS                                           
                           NAMES
394018ecf271   local_discourse/app   "/sbin/boot"   21 minutes ago   Up 21 minutes   0.0.0.0:80->80/tcp, :::80->80/tcp, 0.0.0.0:443->
443/tcp, :::443->443/tcp   app


Discourse container app is running


==================== PLUGINS ====================
          - git clone https://github.com/discourse/docker_manager.git

No non-official plugins detected.

See https://github.com/discourse/discourse/blob/main/lib/plugin/metadata.rb for the official list.

========================================
Discourse version at talk.technospider.com: NOT FOUND
Discourse version at localhost: NOT FOUND


==================== MEMORY INFORMATION ====================
OS: Linux
RAM (MB): 4055

               total        used        free      shared  buff/cache   available
Mem:            3867        1695         174          56        2345        2172
Swap:           3866          98        3768

==================== DISK SPACE CHECK ====================
---------- OS Disk Space ----------
Filesystem                         Size  Used Avail Use% Mounted on
/dev/mapper/ubuntu--vg-ubuntu--lv   19G   12G  6.0G  66% /

==================== DISK INFORMATION ====================
Disk /dev/loop0: 44.45 MiB, 46604288 bytes, 91024 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes


Disk /dev/loop1: 73.89 MiB, 77475840 bytes, 151320 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes


Disk /dev/loop2: 144.46 MiB, 151478272 bytes, 295856 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes


Disk /dev/sda: 40 GiB, 42949672960 bytes, 83886080 sectors
Disk model: VMware Virtual S
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disklabel type: gpt
Disk identifier: 57115BC0-AFA9-4902-9910-BB09315092BA

Device       Start      End  Sectors  Size Type
/dev/sda1     2048  2203647  2201600    1G EFI System
/dev/sda2  2203648  6397951  4194304    2G Linux filesystem
/dev/sda3  6397952 83884031 77486080 36.9G Linux filesystem


Disk /dev/mapper/ubuntu--vg-ubuntu--lv: 18.47 GiB, 19834863616 bytes, 38739968 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes

==================== END DISK INFORMATION ====================

==================== MAIL TEST ====================
For a robust test, get an address from http://www.mail-tester.com/
Sending mail to REDACTED  . . 
Testing sending to technospider@icloud.com using smtppro.zoho.com:587, username:david@technospider.com with plain auth.
SMTP server connection successful.
Sending to technospider@icloud.com. . . 
Mail accepted by SMTP server.
Message-ID: 9e763c7d-b64d-4119-8f74-edd47154a799@talk.technospider.com

If you do not receive the message, check your SPAM folder
or test again using a service like http://www.mail-tester.com/.

If the message is not delivered it is not a problem with Discourse.
Check the SMTP server logs for the above Message ID to see why it
failed to deliver the message.

==================== DONE! ====================

And the test email arrives as expected.
I feel like I’m really close.

docker ps:

394018ecf271   local_discourse/app   "/sbin/boot"   47 minutes ago   Up 47 minutes   0.0.0.0:80->80/tcp, :::80->80/tcp, 0.0.0.0:443->443/tcp, :::443->443/tcp   app

There is no nginx or apache2 for that matter installed on the server.

Just to clarify, it seems that nginx page is only available when surfing to the host name from the host computer, any other computers on the network just get a failed to connect error.

Did you run ./discourse-setup? Did the connection tests pass?

Yes ./discourse-setup is the bootstrapping sequence right? The container wouldn’t be running if I didn’t I don’t believe. I followed the instructions here, and about 7 minutes later I got the Welcome to NGINX page.

Is there a specific connection test you’d like me to run? There was so much output from the setup I couldn’t capture it all.