# Change a web proxy's settings

> Turn HTTPS redirects, the WAF, WebSockets and development mode on or off for a web proxy, or delete it.

Source: https://docs.coritan.com/proxies/web-proxies/settings/

In the dashboard:

- /dashboard/proxies/web/…/settings: https://www.coritan.com/dashboard/proxies/web

The **Switches** card on a web proxy's **Overview** tab turns the web application firewall, **Force HTTPS**, **WebSockets** and development mode on or off. The **Settings** tab shows the web proxy's name and number, checks how the name resolves when Coritan hosts its DNS zone, and deletes the web proxy.

## Before you begin

- The web proxy is on your [Edge Proxy](https://www.coritan.com/dashboard/proxies/web) list. A web proxy that a proxied DNS record created is not, and you change it through the record ([Web proxies and DNS records](/proxies/web-proxies/#web-proxies-and-dns-records)).

## Turn a switch on or off

1. In the dashboard, go to [Edge Proxy](https://www.coritan.com/dashboard/proxies/web) and select the web proxy. Its **Overview** tab opens.
2. On the **Switches** card, turn the switch on or off. It saves at once.

**Web application firewall**
: Checks each request against the managed rule set before it reaches the origin ([The web application firewall](/proxies/web-proxies/#the-web-application-firewall)). With it off, every request that passes the other steps reaches the origin unchecked.

**Force HTTPS**
: Redirects plain HTTP requests to the same address over HTTPS with a `301`. Certificate validation over HTTP still works while it is on.

**WebSockets**
: Passes WebSocket connections through to the origin. With it off, a visitor's WebSocket connection fails.

**Development mode**
: Adds diagnostics to the edge's error pages for a time you choose ([Use development mode while you debug](#use-development-mode-while-you-debug)).

## Use development mode while you debug

When the edge cannot reach the origin, its error page shows a ray ID, the edge, the time and the name of the failure, such as `Connection refused`. Development mode adds what you need to find the cause:

- The web proxy's number, the failure's reason code and how many origins the edge tried.
- A table of each origin the edge tried, with its address, the protocol, the result and how long the attempt took.
- The full diagnostics, even when your error page is set to show less ([Customise the error page](/proxies/web-proxies/custom-error-page/)).
- On every answer that succeeds, a `Coritan-Origin` header with the address of the origin that answered, next to `Coritan-Ray` and `Coritan-Edge`.

> [!WARNING]
> While development mode is on, anyone who gets an error page or reads the response headers can see your origin's address. Turn it off when you have found the cause.

1. On the **Switches** card, choose how long it stays on under **Turn off after**: **1 hour**, **3 hours**, **12 hours**, **24 hours** or **Until switched off**. It starts at **3 hours**.
2. Turn on **Development mode**.

The switch then shows the time left and when it ends, such as `On for 2 more h`, or `On until switched off`. When the time runs out, the edge stops showing the diagnostics and the switch shows `Expired`. To turn development mode on again, or to change its time, turn it off, choose a new time and turn it on again.

## Check how the name resolves

When Coritan hosts the DNS zone for the name, the **Settings** tab has a **DNS** card. It lists the name's `A`, `AAAA` and `CNAME` records and says where visitors go:

**Traffic goes through the edge**
: Every `A` and `AAAA` record for the name is proxied, so resolvers get the edge's addresses.

**Visitors reach the origin directly**
: At least one address record is not proxied. Visitors who get its address skip the edge, the certificate and the WAF. Turn **Proxied** on for the record ([Edit a record](/websites/dns/manage-dns-records/#edit-a-record)).

**Nothing points here yet**
: The zone has no `A`, `AAAA` or `CNAME` record for the name. Add a proxied `A` record with the origin's address ([Add, edit and delete DNS records](/websites/dns/manage-dns-records/)).

A `CNAME` record shows `Follows the target`: visitors go wherever its target resolves. **Open zone** opens the zone's **DNS** tab. When another provider hosts the zone, the card does not appear, and you check the name's records there.

## Delete a web proxy

> [!WARNING]
> Deleting a web proxy deletes its settings, its redirect rules and its error page, and you cannot undo it. Visitors who reach the edge for the name get an error page until the name has a web proxy again.

1. On the web proxy's **Settings** tab, find the **Delete this route** card and select **Delete route…**.
2. Type the web proxy's name, such as `www.example.com`, to confirm.
3. Select **Delete route**.

Deleting leaves the name's DNS records as they are. A proxied record keeps sending visitors to the edge, which answers `404` for the name. Turn **Proxied** off for the record to send visitors straight to your server. The certificate stays on your account, and a new web proxy for the name uses it.

You cannot change a web proxy's name, because its certificate, WAF and DNS answer belong to the name. To serve a different name, create a web proxy for it ([Create a web proxy](/proxies/web-proxies/create-a-web-proxy/)), then delete this one.

## Result

- Each switch confirms its change, such as `WAF updated.`, `Force HTTPS updated.`, `WebSockets updated.` or `Development mode updated.` The edge applies it within a few seconds.
- Deleting shows `Route for www.example.com deleted.` and returns to the list of web proxies.

## Troubleshooting

The WAF blocks requests your site needs
: You cannot change the WAF's rules or exempt a path. Turn the **Web application firewall** off for this web proxy, or serve the traffic that the WAF blocks, such as an API, from a name with a web proxy of its own and the WAF off.

The switch shows `Expired`
: Development mode ran out, and the edge no longer shows the diagnostics. Turn the switch off, choose a new time under **Turn off after** and turn it on again.

The name answers `404` after you delete its web proxy
: The name's record is proxied, so visitors still reach the edge, and the name has no web proxy. Create a web proxy for the name, or turn **Proxied** off for the record and on again, which gives the name a web proxy to the record's address.

## Related

- [How web proxies work](/proxies/web-proxies/)
- [Change a web proxy's origin](/proxies/web-proxies/change-the-origin/)
- [Customise the error page](/proxies/web-proxies/custom-error-page/)
- [Troubleshoot proxies and join addresses](/proxies/troubleshooting/)

## With the API

The switches are fields of `PATCH /api/v1/proxy/routes/{route_id}`: `waf_enabled`, `force_https`, `websocket_enabled` and `development_mode` ([Change a web proxy's origin](/proxies/web-proxies/change-the-origin/#with-the-api)). This call turns development mode on for an hour:

```bash
curl -X PATCH https://api.coritan.com/api/v1/proxy/routes/31 \
  -H "Authorization: Bearer $CORITAN_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"development_mode": true, "development_mode_minutes": 60}'
```

```json
{"message": "Route updated"}
```

`development_mode_minutes` runs from `0` to `1440`. `0` keeps development mode on until you turn it off, and leaving the field out gives 180 minutes. Send `{"development_mode": false}` to turn it off. `GET /api/v1/proxy/routes/{route_id}` returns the state the edge reads: `development_mode_active`, `development_mode_expires_at` in UTC, and `development_mode_seconds_left`, which is `null` when development mode has no end.

Delete a web proxy with `DELETE /api/v1/proxy/routes/{route_id}`:

```bash
curl -X DELETE https://api.coritan.com/api/v1/proxy/routes/31 \
  -H "Authorization: Bearer $CORITAN_TOKEN"
```

```json
{"message": "Route deleted"}
```

The call deletes the web proxy with its redirect rules at once, and asks for no confirmation. A web proxy that is not on your account answers `404` with `Route not found`.

## API

- `DELETE /api/v1/proxy/routes/{route_id}`: Delete a proxy route you own (https://docs.coritan.com/api/reference/client/reverse-proxy/#op-delete-api-v1-proxy-routes-route-id)
