Hi, does anybody have an idea what the reason could be? I installed a lemmy instance on a VPS using the docker images. Beforehand I installed nginx and got a letsencrypt - certificate (which seems to have worked). I downloaded the nginx.conf file from github and made the configurations, also in the lemmy.config and docker-compose.yml files. However, I’m unsure if there’s anything else I should look at. Any tips are welcome :)
Hi there!
TL;DR: probably have an nginx misconfiguration. Check the nginx logs for errors.
You don’t need to install and run nginx on the host. It has its own container in the docker-compose.yml which gets started up on
docker-compose up -d
If both instances of nginx are trying to bind to the same port, one will start and one will fail.
Is the lemmy proxy nginx docker container running? Check with:
docker ps
ordocker container ls
. If the lemmy nginx proxy container isn’t running, try stopping the host instance of nginx (systemctl nginx stop
) and restart docker lemmy (docker-compose down
,docker-compose up -d
), then try to access your site again.that seems to have been part of the problem, as I indeed had nginx running on the host as well. Now I get the error code “website cannot be reached” when I try to go to my instance in the browser.
I tried to follow the configuration for nginx as was in the template file on github, but I most probably have an error there. One thing confuses me, that’s the ports for lemmy and the lemmy UI. I think they should be 8536 an 1235 respectively, but sometimes it says 1234 and 1236 for the UI port as well. Also in the template I’m using (https://github.com/LemmyNet/lemmy-ansible/blob/main/templates/nginx.conf#L63) there is only one section to enter ports: proxy_pass http://0.0.0.0:{{lemmy_port}}; - which port do I enter here?
if you happen to know, please let me know :)
That is a conf for the host system nginx, in which you enter the lemmy port defined on the left side of your proxy service’s port section.
... ports: # actual and only port facing any connection from outside # Note, change the left number if port 1236 is already in use on your system # You could use port 80 if you won't use a reverse proxy - "{{ lemmy_port }}:8536"
I’m pretty sure that error indicates nginx isn’t receiving a response from the upstream server (Lemmy and Lemmy-UI). So, either your upstream server isn’t responding to requests or nginx is misconfigured with the wrong upstream server 🤔
As @slashzero@hakbox.social said, if you’re using an additional nginx server, your docker nginx can’t listen for port 80 or 443. Here’s my host nginx reverse proxy’s ssl section for reference:
server { server_name kek.henlo.fi; location / { proxy_http_version 1.1; proxy_set_header Upgrade $http_upgrade; proxy_set_header Connection "upgrade"; include proxy_params; proxy_pass http://localhost:9001; } listen 443 ssl http2; listen [::]:443 ssl http2; ssl_certificate /etc/letsencrypt/live/kek.henlo.fi/fullchain.pem; # managed by Certbot ssl_certificate_key /etc/letsencrypt/live/kek.henlo.fi/privkey.pem; # managed by Certbot include /etc/letsencrypt/options-ssl-nginx.conf; # managed by Certbot ssl_dhparam /etc/letsencrypt/ssl-dhparams.pem; # managed by Certbot }
Maybe you’re missing some proxy headers, or the docker compose isn’t forwarding the correct ports.
But it can definitely be something completely different.