Documentation

5.5. HTTP redirection

The http-redirect service allows to configure an HTTP server with the sole purpose of redirecting to another service on a different port.

5.5.1. Introduction

This can be used to redirect HTTP requests to an HTTPS-only file transfer service.

Below is an example of such a redirection service:

[services/9ac4-1054-f0e4]
name = HTTP to HTTPs redirection
type = http-redirect
address = 0.0.0.0
port = 80
redirect_url = https://your.domain.tld/home/
headers = Strict-Transport-Security: max-age=1607040; includeSubDomains

Below you can find the list of available configuration options.

5.5.2. enabled

Default value

Yes

Optional

Yes

Values
  • Yes - to automatically start the service when the server is started.

  • No - to leave the service stopped when the server is started.

From version

1.6.0

To version

None

Description

When a service is not automatically started, it can still be manually started afterwards from the Local Manager.

5.5.3. name

Default value

undefined-service-name

Optional

No

Values
  • Any text.

From version

2.0.0

To version

None

Description

Human-readable short string used to identify this service.

5.5.4. type

Default value

''

Optional

No

Values
  • ftp - for FTP and Explicit FTPS services.

  • ftpsi - for Implicit FTPS services.

  • ssh - for SSH services providing the SFTP and SCP protocols.

  • http - for HTTP services.

  • http-redirect - for HTTP Redirection services.

  • https - for HTTPS services.

  • monitor - for local file system monitor services.

  • manager - for Local Manager services.

From version

2.10.0

To version

None

Description

The main option which defines what protocol will be used for this service.

FTP and Explicit FTPS are using the same ftp protocol type, since both protocols can be served by the same service.

Note

The sftp option is also available for backward compatibility, and has the same effect as the ssh option.

5.5.5. address

Default value

'127.0.0.1'

Optional

No

Values
  • Host name resolving to an IPv4 address

  • Fully qualified domain name resolving to an IPv4 address

  • IPv4 address

  • IPv6 address

  • 0.0.0.0

From version

1.7.0

To version

None

Description

Host name or IP used to listen for incoming connections.

To accept connections on all available IPv4 interfaces, use the 0.0.0.0 address.

To accept connections on all available IPv6 interfaces, use the :: address.

Note

On some operating systems (for example Linux) setting the address. to :: will listen to all available IPv6 and IPv4 addresses.

Note

This option is ignored for services of type monitor.

5.5.6. port

Default value

''

Optional

No

Values
  • Port number used for incoming connections.

From version

1.7.0

To version

None

Description

To avoid conflicts between different services on the same local machine, this must be a unique port number. On Unix-like systems, a root account is usually required for using ports below 1024.

Note

This option is ignored for services of type monitor.

5.5.7. description

Default value

''

Optional

Yes

Values
  • Any text describing the role of this service.

From version

1.8.0

Description

This can be used for attaching notes to a service.

5.5.8. authentications

Default value

''

Optional

Yes

Values
  • Comma separated list of authentication UUIDs.

From version

3.2.0

To version

Description

Comma-separated list of UUIDs for the authentication methods enabled for this service.

The list should be ordered by priority. The service will try to use the first authentication from the list, and continue with the following method if the user is not accepted.

If this configuration option is empty or is left out the global authentication methods are used.

Note

This configuration option is ignored for the monitor service as this service does not authenticate clients.

5.5.9. debug

Default value

'No'

Optional

Yes

Values
  • Yes

  • No

From version

3.48.0

Description

When enabled, the service will emit events with id 20000 containing low-level debug messages for the file transfer protocol.

Configuration changes are applied only to new connections. Existing connections respect the debug configuration in use when they were initiated.

Warning

When this is enabled, emitted events may include used passwords in plain text.

5.5.10. idle_connection_timeout

Default value

300

Optional

Yes

Values
  • Number of seconds after which idle connections are disconnected.

  • 0 - To disable timeouts.

From version

1.7.19

To version

None

Description

The service will close the connection if a client connection is idle for a configurable amount of time.

5.5.11. maximum_concurrent_connections

Default value

10000

Optional

Yes

Values
  • Number of maximum concurrent connections accepted by the service.

  • 0 - To disable the limit.

From version

1.7.19

To version

None

Description

Maximum number of allowed concurrent connections for this service.

This limit is imposed by each service, and it is not a global limit for all services active on the server.

5.5.12. redirect_url

Default value

Empty

Optional

No

Values
  • Absolute URL

From version

3.52.0

Description

This configuration option is used to define the URL to which any request made to this service is redirected.

5.5.13. headers

Default value

Empty

Optional

Yes

Values
  • Single header with name and value.

  • Multiple headers, each header on a separate line.

From version

3.52.0

Description

This configuration option can be used to extend the list of headers returned by SFTPPlus for each HTTP response.

Each line should start with header name , followed by :, and ending with the header's values.

5.5.14. accepted_origins

Default value

Empty

Optional

Yes

Values
  • Comma-separated values of fully qualified domain names.

  • Comma-separated pairs of FQDN:PORT values.

From version

3.52.0

Description

When running behind a load balancer, you can configure the list of domain names handled by the load balancer for which SFTPPlus should accept the forwarded requests.

Leave it empty when SFTPPlus is not behind a load balancer.