Hi all,
Followed this tutorial to get Let’s Encrypt working on my Nest.js/Node server.
Everything works - running sudo nginx -t
returns:
nginx: the configuration file /etc/nginx/nginx.conf syntax is ok nginx: configuration file /etc/nginx/nginx.conf test is successful
However, accessing my domain gives me a 502 Bad Gateway error. Specifically (from /var/log/nginx
):
15004#15004: *1 connect() failed (111: Connection refused) while connecting to upstream, client: 77.98.141.183, server: ww2.zone, request: "GET / HTTP/2.0", upstream: "http://127.0.0.1:8000/", host: "ww2.zone"
Here is my /etc/nginx/sites-available
file:
Default server configuration
server {
listen 80;
listen 127.0.01;
listen [::]:80 default_server ipv6only=on;
return 301 https://$host$request_uri;
}
server {
# Enable HTTP/2
listen 443 ssl http2;
listen [::]:443 ssl http2;
server_name ww2.zone;
# Use the Let’s Encrypt certificates
ssl_certificate /etc/letsencrypt/live/ww2.zone/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/ww2.zone/privkey.pem;
# Include the SSL configuration from cipherli.st
include snippets/ssl-params.conf;
location / {
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-NginX-Proxy true;
proxy_pass http://localhost:8000/;
proxy_ssl_session_reuse off;
proxy_set_header Host $http_host;
proxy_cache_bypass $http_upgrade;
proxy_redirect off;
}
}
And my server is within a git Repo within home/username
.
The code to listen on the port is:
await app.listen(process.env.PORT || 5000);
This used to be process.env.PORT || 80
but that would throw:
Error: listen EADDRINUSE: address already in use :::80
Any ideas? Pulling my hair out atm.
This textbox defaults to using Markdown to format your answer.
You can type !ref in this text area to quickly search our full set of tutorials, documentation & marketplace offerings and insert the link!
Accepted Answer
Hello,
You can only have 1 service listening on 1 port. So as you have Nginx listening on port 80 at the moment, you can not have your Node on the same port.
Also as you currently have your Nginx set to work as a reverse proxy for port 8000, what you could do is to just set Node to listen on port 8000.
This would fix your 502 error.
Here is a link to an answer on how to troubleshoot common Nginx problems:
Here is also a quick video demo on how to do that:
Hope that this helps! Regards, Bobby
I have the same problem, when trying to access the nginx test page
2020/05/23 17:03:43 [error] 9037#9037: *28 connect() failed (111: Connection refused) while connecting to upstream, client: 179.126.139.213, server: hellonode, request: "GET /favicon.ico HTTP/1.1", upstream: "http://127.0.0.1:3000/favicon.ico", host: "165.22.43.156", referrer: "http://165.22.43.156/"
2020/05/23 17:03:43 [error] 9037#9037: *27 connect() failed (111: Connection refused) while connecting to upstream, client: 179.126.139.213, server: hellonode, request: "GET / HTTP/1.1", upstream: "http://127.0.0.1:3000/", host: "165.22.43.156"
run the comand netstat -plant
root@know-how-cloud:/# netstat -plant
Active Internet connections (servers and established)
Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name
tcp 0 0 165.22.43.156:3333 0.0.0.0:* LISTEN 6385/node /home/dep
tcp 0 0 0.0.0.0:80 0.0.0.0:* LISTEN 9029/nginx: master
tcp 0 0 127.0.0.53:53 0.0.0.0:* LISTEN 722/systemd-resolve
tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN 926/sshd
tcp 0 0 165.22.43.156:22 179.126.139.213:5270 ESTABLISHED 8011/sshd: root@not
tcp 0 0 165.22.43.156:37592 161.35.127.202:25060 ESTABLISHED 6385/node /home/dep
tcp 0 340 165.22.43.156:22 179.126.139.213:1979 ESTABLISHED 5495/sshd: deploy [
tcp 0 1081 165.22.43.156:22 112.85.42.195:41424 FIN_WAIT1 -
tcp 0 0 165.22.43.156:22 222.186.42.7:61212 ESTABLISHED 9455/sshd: [accepte
tcp 0 0 165.22.43.156:80 179.126.139.213:65126 ESTABLISHED 9037/nginx: worker
tcp 0 0 165.22.43.156:80 179.126.139.213:6467 ESTABLISHED 9037/nginx: worker
tcp6 0 0 :::80 :::* LISTEN 9029/nginx: master
tcp6 0 0 :::22 :::* LISTEN 926/sshd
Do you know how I can fix it?
Hi there @moisesalejandro,
What I could suggest in your case is to check your Docker container’s logs for more information on why the connections might be failing.
To do that, you can run the following:
- docker ps -a
- docker logs your_container_id
Feel free to share the logs here! Regards, Bobby
Get paid to write technical tutorials and select a tech-focused charity to receive a matching donation.
Full documentation for every DigitalOcean product.
The Wave has everything you need to know about building a business, from raising funding to marketing your product.
Stay up to date by signing up for DigitalOcean’s Infrastructure as a Newsletter.
New accounts only. By submitting your email you agree to our Privacy Policy
Scale up as you grow — whether you're running one virtual machine or ten thousand.
Sign up and get $200 in credit for your first 60 days with DigitalOcean.*
*This promotional offer applies to new accounts only.