Looking for help in docker installation of Lemmy
I followed the docker installation instructions and added the certificate successfully but I get this status:
400 Bad Request | nginx
host nginx error logs:
2023/06/11 12:12:45 [debug] 10161#10161: *16 http upstream process header
2023/06/11 12:12:45 [error] 10161#10161: *16 connect() failed (111: Connection refused) while connecting to upstream, client: 198.199.109.53, server: mydomain.tld, request: "GET /version HTTP/1.1", upstream: "http://127.0.0.1:82/version", host: "xxx.xxx.xx.xxx"
2023/06/11 12:12:45 [debug] 10161#10161: *16 http next upstream, 2
2023/06/11 12:12:45 [debug] 10161#10161: *16 free rr peer 2 4
2023/06/11 12:12:45 [warn] 10161#10161: *16 upstream server temporarily disabled while connecting to upstream, client: 198.199.109.53, server: mydomain.tld, request: "GET /version HTTP/1.1", upstream: "http://127.0.0.1:82/version", host: "xxx.xxx.xx.xxx"
I replaced my host IP and domain for privacy
Please see my comments below for more info. I tried putting all text here in the body but it won't let me post.
EDIT: It is now fixed! What I did is replace the following line in my host nginx:
location / {
proxy_pass http://localhost:82;
proxy_set_header Host $host; <---- replace this
include proxy_params;
}
With this:
location / {
proxy_pass http://127.0.0.1:82;
proxy_set_header Connection "keep-alive, Upgrade";
proxy_set_header Upgrade websocket;
include proxy_params;
}
And thanks to @[email protected] who pointed me in the right direction to allow search to other instances:
networks:
# communication to web and clients
lemmyexternalproxy:
lemmybridge: <<----- added this
# communication between lemmy services
lemmyinternal:
driver: bridge
internal: true
services:
proxy:
image: nginx:1-alpine
networks:
- lemmyinternal
- lemmyexternalproxy
- lemmybridge <<----- added this
lemmy:
image: dessalines/lemmy:0.17.3
hostname: lemmy
networks:
- lemmyinternal
- lemmybridge <<----- added this
Host lemmy conf ::: spoiler spoiler
:::
Comment out
proxy_set_header Host $host;andsudo systemctl reload nginx.Nginx container conf ::: spoiler spoiler
:::
docker-compose ::: spoiler spoiler
:::
The lemmy service needs access to the external network, too. It's not in the docs, but there's a bug on GitHub about it (on mobile, can't find it).
I created a third network called lemmybridge and added it to my lemmy service definition.
Thank you for the tip, I've been fighting this damn problem for hours trying to figure out why my instance wasn't able to make external requests.
Popped in a third network into the docker compose file and now things seem to be working
Other info
OS: Centos 7
DNS: Cloudflare
I can curl to localhost:82 in my vps
I am not familiar to nginx but I think I updated the ports this way:
docker container proxy internal port 80 expose to port 82 localhost in my host host nginx pickups localhost:82 to expose for my domain.tld:443
Is this cloudflare dns issue or my setup is wrong?
Host nginx.conf ::: spoiler spoiler
:::
lemmy.hjson ::: spoiler spoiler
:::