# Migrate from mod_pagespeed 1.15

Move a 1.15 install to mod_pagespeed 2.1 in place: one package upgrade brings the optimizer worker, configuration carries over, the old cache stays.

Canonical URL: https://modpagespeed.com/docs/migrate-from-1-15/

The move from a 1.15 install is a package upgrade in place. mod_pagespeed 2.1
continues the 1.15 module lineage on top of a separate optimizer worker, keeps
the same directives and the same filter names, and installs from the same
signed repository your 1.15 packages came from. Your configuration carries
over; what you gain is the worker.

## What changes

| In 1.15                                           | In 2.1                                                                                                                                                         |
| ------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| The module optimizes in process                   | The module still serves and rewrites in process; the `pagespeed-optimizer` worker builds optimized variants beside it and the module serves them from the shared cache |
| One package per web server                        | The Apache module package depends on `pagespeed-optimizer` at the same version; one upgrade command moves both                                                   |
| A Cyclone volume under the module's file-cache path | The module's own cache stays where it was; the worker keeps its volume under `/var/cache/pagespeed-optimizer/v2`                                             |
| `X-Mod-Pagespeed` / `X-Page-Speed` headers        | Unchanged                                                                                                                                                      |
| Admin console at `/pagespeed_admin`               | Unchanged, plus an Overview page and panels for the worker                                                                                                     |

## Upgrade

```bash
# Debian / Ubuntu
sudo apt-get update
sudo apt-get install --only-upgrade mod-pagespeed            # Apache
sudo apt-get install --only-upgrade nginx-module-pagespeed   # nginx
# AlmaLinux / RHEL / Rocky
sudo dnf upgrade mod-pagespeed             # Apache
sudo dnf upgrade nginx-module-pagespeed    # nginx
```

The `mod-pagespeed` package depends on `pagespeed-optimizer` at the exact same
version, so the Apache upgrade pulls the worker in. On nginx the worker is
optional: `sudo apt-get install pagespeed-optimizer` (or `dnf install`) adds
it, and two directives hand nginx's in-place optimization to it; see
[Using the optimizer worker with nginx](https://modpagespeed.com/docs/installation-module/#using-the-optimizer-daemon-with-nginx).

Then start things in order:

```bash
sudo systemctl restart pagespeed-optimizer   # the package starts it; make sure it is up
sudo systemctl restart apache2               # httpd on Enterprise Linux, or nginx
```

At boot the packaged unit orders the optimizer ahead of the web server and
counts it as started only once its notification socket exists. During the
upgrade itself, when you start things by hand, keep that order: optimizer
first, web server second.

On Apache the package also installs `pagespeed_daemon.conf`
(`/etc/apache2/conf-available/` on Debian and Ubuntu, `/etc/httpd/conf.d/` on
the Red Hat family), which sets `ModPagespeedDaemonSocketPath` and
`ModPagespeedDaemonVolumePath` to the worker's defaults, so the module reaches
the worker without editing any configuration. A file you created by hand
earlier at that path stops an unattended Debian upgrade with a dpkg prompt;
remove it before upgrading, or install with
`-o Dpkg::Options::=--force-confold` to keep it.

## The cache

Nothing is purged. A 1.15 install stores its cache in a Cyclone volume under
the module's file-cache path; the 2.1 optimizer opens its own volume under
`/var/cache/pagespeed-optimizer/v2` and never touches the old file. The first
requests after the upgrade are misses and the cache refills as traffic
arrives, so pick a quiet hour if your origin is sensitive to that. Both files
exist during the upgrade, so the disk needs room for the second volume. The
old file is what makes a rollback warm; delete it yourself once you are
confident you will not roll back.

## Platform notes

- **IIS / Windows Server.** The IIS package ships from the 1.15 packaging
  channel: run the current MSI over the existing install and `iisreset`. See
  [Install on IIS](https://modpagespeed.com/docs/install-iis/).
- **Debian 11 (bullseye).** The repository's bullseye suite carries the 1.15.0
  module packages; the 2.1 packages need Debian 12 or newer.
- **cPanel EasyApache 4 (EL8).** The module runs without the optimizer worker.

## Verify

```bash
curl -I http://localhost/ | grep -i -E 'X-Mod-Pagespeed|X-Page-Speed'
```

The header is unchanged. Open the admin console's Overview page: the optimizer
card reads **Running** once the module has reached the worker, and the
Statistics page's `ipro_daemon_served` rises as in-place requests are answered
from the worker's cache. [Is it working?](https://modpagespeed.com/docs/is-it-working/) has the rest.

## Roll back

Roll the module and `pagespeed-optimizer` back together to the 1.15 packages
you ran; the old Cyclone volume reopens still warm unless you deleted it.
[Uninstall and rollback](https://modpagespeed.com/docs/uninstall/#roll-back-to-the-previous-release)
has the commands.

## Frequently asked questions

**Does my 1.15 configuration carry over?**

Yes. mod_pagespeed 2.1 keeps the same directives and the same filter names; 1.14 and 1.15 configurations load unchanged. The Apache packages add one file, `pagespeed_daemon.conf`, which points the module at the optimizer worker.

**Is the cache purged?**

No. The 2.1 optimizer opens its own volume under `/var/cache/pagespeed-optimizer/v2` and never touches the Cyclone volume a 1.15 install kept under its file-cache path. The first requests are cold; the old file stays where it is and makes a rollback warm.
