Slow printing using IPPS from Linux

Situation

Print jobs sent using IPPS take several minutes, even for a small job and good network connection. Print jobs sent using IPP, without TLS encryption, are not affected by this issue and are transferred as quickly as the network will support.

Possible cause

Communication issues between some versions of Linux CUPS TLS implementation and the Microsoft .NET implementation of TLS can cause slow data transfers.

Solution

The recommended solution is to use Nginx as a reverse proxy to receive print jobs using IPPS. After Nginx receives the print job from the Linux client the data is sent to YSoft SafeQ Mobile Integration Gateway using the local network interface.

Nginx can be installed on the same server as YSoft SafeQ Mobile Integration Gateway. All Linux clients need to send print jobs using IPPS to the Nginx proxy instead of YSoft SafeQ Mobile Integration Gateway.


How to run Nginx on the same server under Windows.

  1. Download and extract Nginx for Windows from https://nginx.org/en/download.html

  2. Download and extract nssm from https://nssm.cc/download

  3. Open nginx\conf\nginx.conf. Find the http section and add this (configure according to the comments):

    server {
    ## Configure port to listen for IPPS requests
    listen 631 ssl;
    ## Configure path to certificate
    ssl_certificate path/to/cert.pem;
    ssl_certificate_key path/to/key.pem;
     
    location / {
    ## Forward IPPS requests to the configured YSoft SafeQ Mobile Integration Gateway URL and port
    proxy_pass https://127.0.0.1:8050/;
    ## Certificate verification is disabled by default.
    ## Certificate verification is recommended if proxy_pass is not 127.0.0.1.
    ## To validate server certificate uncomment and specify path to CA certificate.
    # proxy_ssl_verify on;
    # proxy_ssl_trusted_certificate path/to/ca/certificate.pem;
    }
     
    }
  4. In nssm\win64 directory, run this command:

    nssm install "Nginx for YSoft SafeQ Mobile Integration Gateway"
  5. Fill nginx.exe with full path in Application Path and Nginx directory in Startup directory.

  6. Press Install service.

  7. Open Windows services and enable automatic start for this service.

  8. Configure Linux clients to send print jobs using IPPS to the configured Nginx port.