Publish a local app with IIS ARR reverse proxy

A reverse proxy forwards external HTTPS requests to a local application; it does not itself start the application process. Plan IIS routing separately from the lifecycle of the server and its workers.

By: AdaPanel · Updated:

Trace the request path

A typical path is client → IIS HTTPS → ARR → application on 127.0.0.1. That architecture does not require opening the backend port to the internet. Still verify that the application listens only on the intended interface.

The URL Rewrite rule and ARR proxy functionality are separate components. Presence of one does not prove the other is enabled. Inspect existing modules and the site rule before reinstalling components on a working server.

Keep an operating record for each app

Keep an operating record for each app
FieldPurpose
Working directory and executableResolve dependencies and relative paths correctly
Arguments and environmentSelect the right module and application configuration
Local port and addressAvoid collisions and unintended exposure
Process ownerChoose one task, service or panel manager
Logs and health routeMeasure startup separately from useful behavior

Avoid conflicting process managers

If server and worker are separate processes, locate existing tasks or services for each. A transfer to panel management should not leave both managers active. Record the original setup, stop the previous owner in a maintenance window, validate the replacement and restore the recorded setup if it fails.

This is an operating principle, not a claim of automatic migration for every app. Verify the process controls available in the installed AdaPanel version and its release notes. A healthy HTTP process alone does not establish a healthy worker.

Test the process and proxy independently

  1. Check the expected health response on the local port and confirm which process owns that port.
  2. Call the application through the external HTTPS hostname and verify certificate, redirects and response content.
  3. Exercise login, uploads and any required long-lived connection or WebSocket behavior.
  4. In a maintenance environment, confirm restart behavior, exactly one server and the intended worker count; verify that queued work progresses.

Validate scheme, headers and time budgets

Check that the application recognizes the original HTTPS scheme and hostname. Configure forwarded-header handling according to the application documentation and trusted proxy sources; do not trust arbitrary client-supplied headers.

For long operations, proxy timeout, transfer time and processing duration can differ. Measure with the actual workload. A running IIS service does not establish application health when backend connections are failing.

Frequently asked questions

Does URL Rewrite start the application?

No. A routing rule is not a process manager. Startup, recovery and boot behavior need separate configuration.

Should I expose the backend port publicly?

Usually not when IIS proxies to an application on the same server’s localhost. Publish through IIS and verify the actual listening interface.

Can a Windows task and the panel manage the same worker?

Do not leave two active owners for the same process. Transfer ownership deliberately and test for duplicate execution.

Does a health response prove the worker is running?

Only if that check actually measures worker progress. Otherwise submit a harmless job and verify its completion separately.

Sources and next steps

AdaPanel installation guide · More guides

Explore AdaPanel releases