Hi,I have successfully installed Pydio Cells on my server, and I have local access to the public IP, but I can not connect to my nginx proxy reverse server to put in my subdomain.
“404 Site subdomain is not served on this interface”
Can anybody help me?
I have searched for configurations but none of them are useful for the Pydio Cells. It’s the new one.
I installed Cells into Centos7, using the default settings and with the IP:443 for the URL.
I wanted to then setup the server on it’s own domain and found the ‘url’ parameter in pydio.json
Changed that, and it allowed access using the URL (page loaded) but did not login due a 404… on the IP which the URL setting was changed from. There is probably a setting I am missing, but hopefully someone will answer or more in-depth docs will come.
My first attempt was to set Cells up on port 8180 with ssl and a custom domain name using reverse proxy. I received the same error in the Cells log.
My second attempt was to let the proxy server handle the ssl and domain name. Internal and external for Cells was set to localhost:8180. The interface loads and login works, but I kept getting a time out error showing in the front end and loading errors for mixed ssl content.
My third attempt was to turn on self assign certificates so the proxy connection would be ssl, still using localhost:8180. This also loads the front end but still has errors. It has Websocket closed errors and access control check errors.
I think there still needs to be directives for the websocket connection and maybe modifying the headers? This is not my area whatsoever, so I’ll be watching this thread.
My current apache reverse proxy config is below, which may help even though you are using Nginx
<VirtualHost *:8443>
ServerAdmin admin@example.com
ServerName files.example.com
ProxyRequests off
SSLProxyEngine on
ProxyPass / https://localhost:8180/
ProxyPassReverse / https://localhost:8180/
ErrorLog "/logs/sites-files.com-error-ssl.log"
CustomLog "/logs/sites-files.com-access-ssl.log" common
SSLCertificateFile "/etc/letsencrypt/live/example.com/cert.pem"
SSLCertificateKeyFile "/etc/letsencrypt/live/example.com/privkey.pem"
SSLCertificateChainFile "/etc/letsencrypt/live/example.com/chain.pem"
</VirtualHost>
I found a configuration for Apache that works and resolves the following
"404 Site subdomain is not served on this interface”
UI errors mixed content
timeout errors
websocket connection errors
access control check errors
I run home automation with Home Assistant which also uses websockets and I managed to cobble together the proxy settings from that. They also have instructions for Ngix, maybe it will help find the correct directives. Hopefully someone may be able to confirm these are the only and correct directives needed.
Cells Install Config I use 8180 because I run Apache on 8080 on a non-provilidged user
Binding Host (Internal, Other): files.example.com:8180
External Host: files.example.com
I also supplied the correct location for the files.examples.com
cert and key files, not self signed
Apache Reverse Proxy
<VirtualHost *:8080>
ServerAdmin admin@files.example.com
ServerName files.example.com
ServerSignature Off
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteCond %{HTTPS} off
RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI}
</IfModule>
ErrorLog "/logs/sites-files.example.com-error.log"
CustomLog "/logs/sites-files.example.com-access.log" common
</VirtualHost>
<IfModule mod_ssl.c>
<VirtualHost *:8443>
ServerAdmin admin@files.example.com
ServerName files.example.com
ProxyPreserveHost On
ProxyRequests off
SSLProxyEngine on
RewriteEngine on
RewriteCond %{HTTP:Upgrade} =websocket [NC]
RewriteRule /(.*) wss://files.example.com:8180/$1 [P,L]
RewriteCond %{HTTP:Upgrade} !=websocket [NC]
RewriteRule /(.*) https://files.example.com:8180/$1 [P,L]
ProxyPass / https://files.example.com:8180/
ProxyPassReverse / https://files.example.com:8180/
ProxyPass /ws/ ws://files.example.com:8180/ws/
ProxyPassReverse /ws/ ws://files.example.com:8180/ws/
ErrorLog "/logs/sites-files.example.com-error-ssl.log"
CustomLog "/logs/sites-files.example.com-access-ssl.log" common
SSLCertificateFile "/etc/letsencrypt/live/files.example.com/cert.pem"
SSLCertificateKeyFile "/etc/letsencrypt/live/files.example.com/privkey.pem"
SSLCertificateChainFile "/etc/letsencrypt/live/files.example.com/chain.pem"
</VirtualHost>
</IfModule>
Hi,
Thanks for replying and helping out ! We must start a dedicated knowledge base for Pydio Cells, it’s in the pipe.
As a hint, I’ll add a working config that we use also for a similar setup (Cells listening on an internal port and Apache reverse-proxying the domain name) :
<IfModule mod_ssl.c>
<VirtualHost *:443>
ServerName domain.pydio.com
# May be necessary for API direct accesses
AllowEncodedSlashes On
RewriteEngine On
# Make sure to proxy SSL
SSLProxyEngine On
# Disable SSLProxyCheck : maybe necessary if Cells is configured with self_signed
SSLProxyCheckPeerCN Off
SSLProxyCheckPeerName Off
SSLProxyVerify none
# Proxy WebSocket
RewriteCond %{HTTP:Upgrade} =websocket [NC]
RewriteRule /(.*) wss://domain.pydio.com:8080/$1 [P,L]
# Finally simple proxy instruction
ProxyPass "/" "https://domain.pydio.com:8080/"
ProxyPassReverse "/" "https://domain.pydio.com:8080/"
</VirtualHost>
</IfModule>
Please note:
The AllowEncodedSlashes On that may be necessary if not activated globally in apache (to call APIs like /a/meta/bulk/path%2F%to%2Ffolder
When I configure Cells, even on another port, I actually make sure to bind it directly to the domain.pydio.com as well (like Apache). This is necessary for the presigned URL used with S3 API for uploads and downloads (they used signed headers and a mismatch between received Host headers may break the signature). Another option is to still bind Cells using a local IP, then in the Admin Settings, under Configs Backend, use the field “Replace Host Header for S3 Signature” and use the internal IP here.
Anybody willing to translate this into NGINX is welcome!
I’m testing different configurations of the NGINX with Pydio Cells, but the following error comes up, can someone tell me where the error is, thanks in advance.
I’m using NGINX proxy reverse with Apache Pydio Cells.