Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[BUG] I used nginx to redirect to HTTPS, However, it's keep reloading. #91

Open
1 task
raychan907 opened this issue Dec 31, 2024 · 23 comments
Open
1 task

Comments

@raychan907
Copy link

raychan907 commented Dec 31, 2024

Is there an existing issue for this?

  • I have searched the existing issues

Current Behavior

image

I am using docker duplicati:lastest version.
and Use nginx to redirect it to HTTPS

But something is not working.
May I confirm that how can I change http to https?

Thank you very much.

Expected Behavior

No response

Steps To Reproduce

image

Nginx config
location ~ ^/duplicati(/.*)$ {
proxy_read_timeout 300;
proxy_connect_timeout 300;
proxy_send_timeout 300;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection 'upgrade';
proxy_pass http://127.0.0.1:8200/$1$is_args$args;
proxy_set_header Host $host;
proxy_set_header X-Forwarded-Host $server_name;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $http_x_forwarded_proto;
proxy_redirect http://127.0.0.1:8200/ /duplicati/;
proxy_cookie_path / /duplicati/;
if ($scheme = https) {
set $xforwardedssl "on";
}
proxy_set_header X-Forwarded-Ssl $xforwardedssl;

Environment

Ubuntu 24.04 LTS
ARM 64 - Raspberry PI5

CPU architecture

arm64

Docker creation

---
services:
  duplicati:
    image: lscr.io/linuxserver/duplicati:latest
    container_name: duplicati
    env_file:N
      - stack.env

    volumes:
      - /opt/duplicati/config:/config
      - /opt/duplicati/backups:/backups
      - /opt/duplicati/source:/source
    ports:
      - 8200:8200
    restart: unless-stopped

Container logs

GET /notifications?token=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0eXAiOiJBY2Nlc3NUb2tlbiIsInNpZCI6IndlYnNlcnZlciIsImZhbSI6IjVCQTk3MUZDNzczQjJE
Q0EiLCJuYmYiOjE3MzU2MDA5MjYsImV4cCI6MTczNTYwMTgyNiwiaXNzIjoiaHR0cHM6Ly9kdXBsaWNhdGkiLCJhdWQiOiJodHRwczovL2R1cGxpY2F0aSJ9.p5SafxYbId-cw-pd3m1Y6ZiJ5LxcqBXjo7QoMtPTEek HTTP/1.1" 404 555 "-" "M
ozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/131.0.0.0 Safari/537.36" "-"
Copy link

Thanks for opening your first issue here! Be sure to follow the relevant issue templates, or risk having this issue marked as invalid.

@raychan907
Copy link
Author

Thanks for opening your first issue here! Be sure to follow the relevant issue templates, or risk having this issue marked as invalid.

What should I do?
Thanks

@j0nnymoe
Copy link
Member

Can you access it normally via ip:port?

@raychan907
Copy link
Author

Can you access it normally via ip:port?

Yes. The http is working.
I can use it and backup to Cloud.
However, I tried to use Nginx to change it to HTTPS. It will keep reload the connection.

@j0nnymoe
Copy link
Member

Looks like your issue is trying to do subfolder reverse proxy.

@raychan907
Copy link
Author

Looks like your issue is trying to do subfolder reverse proxy.

And I have any problem. When I login from https. it will redirect to /login.html. not /duplicati/login.html.

So That's why the my nginx config is so odd.

@j0nnymoe
Copy link
Member

I can point you to our reverse proxy config we ship with swag: https://github.com/linuxserver/reverse-proxy-confs/blob/master/duplicati.subfolder.conf.sample but other than that, it's outside our support.

@raychan907
Copy link
Author

I am not sure about wher is the files for
include /config/nginx/proxy.conf;
include /config/nginx/resolver.conf;

@j0nnymoe
Copy link
Member

Their related to our reverse proxy, you can find the proxy.conf in our swag GitHub repo.

@raychan907
Copy link
Author

/config/nginx/proxy.conf

Thanks for your help. I have one more question.
Is it possible to enable https from Duplicati? if yes. I can just enable it and no need to redirect via Nignx.

@j0nnymoe
Copy link
Member

You would need to check their documentation.

@clement-brodu
Copy link

Hello,

see #89 (comment)

If it's like me, you should try to add these 2 WebSocket headers to your reverse proxy.

  • Upgrade : $http_upgrade
  • Connection : $connection_upgrade

@kenkendk
Copy link

kenkendk commented Jan 6, 2025

Is it possible to enable https from Duplicati? if yes. I can just enable it and no need to redirect via Nignx.

Yes, as described in the documentation, but there is no automatic LetsEncrypt, so you probably want to use Nginx.

Looks like your issue is trying to do subfolder reverse proxy.

There is a problem in 2.1.0.2 where it tries to use a websocket on /api/v1/notifications regardless of the subfolder in the proxy. It has been fixed in source, and will be available "soon". It does not depend on HTTPS though 🤔

@raychan907
Copy link
Author

你好

參見 #89 (評論)

如果和我一樣,你應該嘗試將這 2 個 WebSocket 標頭添加到你的反向代理中。

  • Upgrade:$http_upgrade
  • Connection:$connection_upgrade

it is

Hello,

see #89 (comment)

If it's like me, you should try to add these 2 WebSocket headers to your reverse proxy.

  • Upgrade : $http_upgrade
  • Connection : $connection_upgrade

Thanks for your sharing. But it is not work for me.

@raychan907
Copy link
Author

Is it possible to enable https from Duplicati? if yes. I can just enable it and no need to redirect via Nignx.

Yes, as described in the documentation, but there is no automatic LetsEncrypt, so you probably want to use Nginx.

Looks like your issue is trying to do subfolder reverse proxy.

There is a problem in 2.1.0.2 where it tries to use a websocket on /api/v1/notifications regardless of the subfolder in the proxy. It has been fixed in source, and will be available "soon". It does not depend on HTTPS though 🤔

Let me wait for the update. Thanks for your update :)

@Baukeo
Copy link

Baukeo commented Jan 7, 2025

I also had the issue with constant reload of the webinterface behind nginx reverse proxy. I managed to resolve this with this config:
Add this to nginx.conf, see: https://futurestud.io/tutorials/nginx-how-to-fix-unknown-connection_upgrade-variable

map $http_upgrade $connection_upgrade {  
   default upgrade;
   ''      close;
}

And also add the 2 websocket headers as mentioned earlier in your siteconfig:

   proxy_set_header      Upgrade $http_upgrade;
   proxy_set_header      Connection $connection_upgrade;

@raychan907
Copy link
Author

proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection $connection_upgrade;

Thanks for your update.
However, it still does not work.
it still showing net::ERR_ABORTED 404 (Not Found)

@Baukeo
Copy link

Baukeo commented Jan 7, 2025

Maybe you problem is this:
proxy_redirect http://127.0.0.1:8200/ /duplicati/;
can you change that into:
proxy_redirect http://127.0.0.1:8200/;

@raychan907
Copy link
Author

7

you mean proxy_redirect / http://127.0.0.1:8200/; ?

@raychan907
Copy link
Author

7

you mean proxy_redirect / http://127.0.0.1:8200/; ?

I tried, but it is the same.

@Baukeo
Copy link

Baukeo commented Jan 7, 2025

Maybe just remove the whole redirect option.

@raychan907
Copy link
Author

raychan907 commented Jan 7, 2025

Maybe just remove the whole redirect option.

It is showing 404.
image

My currently nginx config
map $http_upgrade $connection_upgrade {
default upgrade;
'' close;
}

#This is server 443
location ~ ^/duplicati(/.*)$ {
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection $connection_upgrade;
proxy_pass http://127.0.0.1:8200/$1$is_args$args;
proxy_set_header Host $host;
proxy_set_header X-Forwarded-Host $server_name;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $http_x_forwarded_proto;
}

@1n5aN1aC
Copy link

I had this issues on two servers with different nginx setups.

One was easily solved by adding:

    proxy_http_version 1.1;
    proxy_set_header Upgrade $http_upgrade;
    proxy_set_header Connection "Upgrade";

While the other one (a more complicated nginx setup) has not been solved yet. Will update when solved.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
Status: Issues
Development

No branches or pull requests

6 participants