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 :)

  • Slashzero
    link
    fedilink
    English
    5
    edit-2
    1 year ago

    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 or docker 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.

    • @SolvenaOP
      link
      English
      11 year ago

      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 :)

      • @footty
        link
        English
        11 year ago

        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"
        
  • 𝙚𝙧𝙧𝙚
    link
    fedilink
    English
    11 year ago

    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 🤔

  • @[email protected]
    link
    fedilink
    English
    11 year ago

    As @[email protected] 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.