Help:Using a web proxy to reach Cloud VPS servers from the internet
This page describes how to create a simple web proxy for a Cloud VPS instance.
For reaching the internet from production servers, see HTTP proxy.
Before you begin
Before you begin, you must:
- Be a Project admin for the project that contains the instance you wish to proxy.
- Enable two-factor authentication on your developer account.
- Set up security groups properly.
Creating a web proxy
- Go to https://horizon.wikimedia.org/
- Select your project.
- Click "DNS" in the left navigation menu.
- Click "Web Proxies" inside the expanded "DNS" section of the left navigation menu.
- Click the "Create Proxy" button in the upper right of the page.
- In the "Hostname" field, enter the hostname that you wish to have as the publicly-visible name for your instance. Important: Enter just the hostname (e.g. 'webtastic'), not the fully qualified name (e.g. 'webtastic.wmflabs.org').
- Specify the domain for your instance using the “Domain” selector. If you want a domain that is not already present in the menu, a cloud admin (most likely a staff member) will need to create it for you.
- Select the instance that you're creating a proxy for in the “Backend Instance” selector.
- Enter the “Backend port” that the proxy should connect to on your instance. This will probably be either the default value of
80
if you are running a normal web server or8080
if you are using MediaWiki-Vagrant. - Click “Create proxy”.
An entry for the new web proxy should appear in the proxy table.
Security groups
You may need to update your security group settings before you can access the instance on an external browser.
Some projects have setup a 'web' security group to make this easier or already added the common 80
and 8080
ports to their default security group.
- Find "Security Groups" under the "Network" section in the left-hand navigation bar, and select the project you want to make available externally.
- Add a new rule to open up your proxied port for outside access.
- Set the start and end port in the rule form to the value you entered for “Backend port” when creating the proxy.
- Select "tcp" as the protocol
- CIDR range: 172.16.0.0/21
- Click "Submit"
You may also have to apply this new (or existing) security group to the instance you want to make available: navigate to "Instances" (in the "Compute" section) and select "Edit Security Groups" from the "Actions" menu of the appropriate instance.
Delete unused web proxies
Once your instance is no longer in use, make sure to delete the unused web proxy.
Migrate from a *.wmflabs.org proxy to a *.wmcloud.org proxy
Since 2020-07-06, newly created proxies use the wmcloud.org domain by default instead of the legacy wmflabs.org domain. Projects which have been using a *.wmflabs.org proxy can migrate to a *.wmcloud.org proxy by following these steps:
- Create a new *.wmcloud.org proxy pointing to your backend service
- Test your service using the new hostname while the related *.wmflabs.org proxy still exists
- Once you are ready to redirect all traffic to the *.wmcloud.org hostname, just delete the legacy *.wmflabs.org proxy. The Cloud VPS HTTP proxy service will automatically issue a redirect from <host>.wmflabs.org to <host>.wmcloud.org when there is no existing proxy for <host>.wmflabs.org.
Troubleshooting
There are two reasons why web pages cannot be served by a default Cloud VPS instance:
- Instances are closed off from outside networks with a firewall. You must open holes in the firewall by editing the security groups for your project.
- Instances are assigned private IP addresses that are only visible from within Cloud VPS. This can be addressed by assigning your instance a public IP or by creating a web proxy.
Communication and support
Support and administration of the WMCS resources is provided by the Wikimedia Foundation Cloud Services team and Wikimedia movement volunteers. Please reach out with questions and join the conversation:
- Chat in real time in the IRC channel #wikimedia-cloud connect, the bridged Telegram group, or the bridged Mattermost channel
- Discuss via email after you subscribed to the cloud@ mailing list