AppServiceProxy.SiteExtension
2.0.0
See the version list below for details.
dotnet add package AppServiceProxy.SiteExtension --version 2.0.0
NuGet\Install-Package AppServiceProxy.SiteExtension -Version 2.0.0
<PackageReference Include="AppServiceProxy.SiteExtension" Version="2.0.0" />
paket add AppServiceProxy.SiteExtension --version 2.0.0
#r "nuget: AppServiceProxy.SiteExtension, 2.0.0"
// Install AppServiceProxy.SiteExtension as a Cake Addin #addin nuget:?package=AppServiceProxy.SiteExtension&version=2.0.0 // Install AppServiceProxy.SiteExtension as a Cake Tool #tool nuget:?package=AppServiceProxy.SiteExtension&version=2.0.0
App Service Proxy Site Extension
Site Extension-based Reverse Proxy compatible with Azure Functions Proxies
Motivation
With the permanent removal of Azure Functions Proxies from Azure Functions v4, there is no longer a readily available and inexpensive L7 reverse proxy in Azure.
This project provides an alternative implementation of a VNET-integrated gateway built using Azure Functions Proxies, and secure proxies authenticated in combination with App Service Authentication.
Features
- All features of the App Service is available
- App Service Authentication
- Custom Domain
- SSL / TLS (Managed Certificate / Key Vault Certificate)
- VNET Integration
- .NET 6.0 and YARP-based high-performance reverse proxy
- Compatibility with Azure Functions Proxies (
proxies.json
) - Easy to setup with Azure Portal or ARM Template
- Support for Git integration and CI pipelines
Quick Start
Azure (Public) | Azure China | Azure Government |
---|---|---|
<a href="https://portal.azure.com/#create/Microsoft.Template/uri/https%3A%2F%2Fraw.githubusercontent.com%2Fshibayan%2FAppServiceProxy.SiteExtension%2Fmaster%2Fazuredeploy.json" target="_blank"><img src="https://aka.ms/deploytoazurebutton" /></a> | <a href="https://portal.azure.cn/#create/Microsoft.Template/uri/https%3A%2F%2Fraw.githubusercontent.com%2Fshibayan%2FAppServiceProxy.SiteExtension%2Fmaster%2Fazuredeploy.json" target="_blank"><img src="https://aka.ms/deploytoazurebutton" /></a> | <a href="https://portal.azure.us/#create/Microsoft.Template/uri/https%3A%2F%2Fraw.githubusercontent.com%2Fshibayan%2FAppServiceProxy.SiteExtension%2Fmaster%2Fazuredeploy.json" target="_blank"><img src="https://aka.ms/deploytoazurebutton" /></a> |
Manual Installation
Since this application is based on .NET 6.0 and Site Extension, it requires a App Service (Windows) with .NET 6.0 enabled.
You need to specify the App Service Proxy
or AppServiceProxy.SiteExtension
for installation.
Azure Portal
ARM Template
{
"apiVersion": "2021-02-01",
"name": "AppServiceProxy.SiteExtension",
"type": "siteextensions",
"dependsOn": [
"[resourceId('Microsoft.Web/sites', variables('webAppName'))]"
]
}
Bicep
resource symbolicname 'Microsoft.Web/sites/siteextensions@2021-02-01' = {
name: '${webApp.name}/AppServiceProxy.SiteExtension'
}
Terraform
See also App Service Proxy Terraform module repository.
Usage
Create proxies.json
into wwwroot
directory.
{
"$schema": "http://json.schemastore.org/proxies",
"proxies": {
"proxy1": {
"matchCondition": {
"methods": [ "GET" ],
"route": "/{*path}"
},
"backendUri": "https://shibayan.jp/{path}"
}
}
}
Appendix: proxies.json
Reference
License
This project is licensed under the MIT License
Learn more about Target Frameworks and .NET Standard.
This package has no dependencies.
NuGet packages
This package is not used by any NuGet packages.
GitHub repositories
This package is not used by any popular GitHub repositories.