Problem configuring tusd over https on Nginx

I am trying to setup tusd with Uppy on https without success. It works well on http.

Here’s my ngynx conf file:

server {
  listen 80;
  listen[::]: 80;

  root / srv / users / DOMAIN / apps / DOMAIN / public;

  access_log / srv / users / DOMAIN / log / DOMAIN / DOMAIN_nginx.access.log main;
  error_log / srv / users / DOMAIN / log / DOMAIN / DOMAIN_nginx.error.log;

  proxy_set_header Host $host;
  proxy_set_header X - Real - IP $remote_addr;
  proxy_set_header X - Forwarded - For $proxy_add_x_forwarded_for;

  include / etc / nginx - sp / vhosts.d / DOMAIN.d
      include /etc/nginx-sp/vhosts.d/DOMAIN.d/*.conf;

  server {
      listen       443 ssl http2;
      listen       [::]:443 ssl http2;


      ssl_certificate_key      ssl/DOMAIN.key;
      ssl_certificate          ssl/DOMAIN.combined_crt;

      root   /srv/users/DOMAIN/apps/DOMAIN/public;

      access_log  /srv/users/DOMAIN/log/DOMAIN/DOMAIN_nginx.access_ssl.log  main;
      error_log  /srv/users/DOMAIN/log/DOMAIN/DOMAIN_nginx.error_ssl.log;

      proxy_set_header    Host              $host;
      proxy_set_header    X-Real-IP         $remote_addr;
      proxy_set_header    X-Forwarded-For   $proxy_add_x_forwarded_for;
      proxy_set_header    X-Forwarded-SSL   on;
      proxy_set_header    X-Forwarded-Proto $scheme;

      include /etc/nginx-sp/vhosts.d/DOMAIN.d/*.ssl_conf;
      include /etc/nginx-sp/vhosts.d/DOMAIN.d/*.conf;

  location /files/ {
        proxy_pass  http://localhost:3020/files;   
        proxy_set_header Host $host; 
        proxy_set_header X-Real-IP $remote_addr;    

        # Disable request and response buffering    
        proxy_request_buffering  off;               
        proxy_buffering          off;                
        proxy_http_version       1.1;                 
        # Add X-Forwarded-* headers so that response can reference https and
        # originating host:port                                                     
        proxy_set_header X-Forwarded-Host $hostname;                       
        proxy_set_header X-Forwarded-Proto $scheme;                                
        proxy_set_header X-Forwarded-Proto https;      
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;            
        # Allow proxying of websockets if required               
        proxy_set_header         Upgrade $http_upgrade;         
        proxy_set_header         Connection "upgrade";        
        client_max_body_size     0;  

At another conf file I have this additional configuration:

location / {
    proxy_pass      $backend_protocol://$backend_host:$backend_port;

At Chrome console I have the following output:

upload.js:2 OPTIONS https://DOMAIN/files/2b775a112504ed1222c6ffdd4fbdac03+Dc99JI0Zvgh54FXVfpp5K32GAiZBjV5bY-d9tzj8fDL1FxNKKZrHP_SBE6OERG8SWAm1ZjqtjYMVWSvWCQLba0qsR8krfVBYw8ApHqIBO7DG9Bn1t_tv_a6nuuTuqlXC net::ERR_NAME_NOT_RESOLVED

Notice the domain without the .com extension!

I tried all combinations of configuration, commenting the configuration lines without success. Can you spot the mistake?

Hey there. I believe that there is an open GitHub issue that is referring to a similar issue (specifically, https not working)

I don’t know nginx well enough to spot an error in the config, so I think the best that I can do is to link to the issue

This appears to mirror your problems

Hopefully this can get fixed soon. Good luck
- Andrew