Server Setup


Table of Contents

Overview
Hosting server: Kestrel
Overview
Starting Kestrel in development environment
Starting Kestrel in production environment
(Optional) Using a reverse proxy server
Apache (Windows)
Apache (Linux)
Nginx (Windows)
Nginx (Linux)
IIS
Hosting server: IIS (in-process hosting)
In-process hosting vs. out-of-process hosting
Preparations
Installing IIS
Creating an IIS website
Configuring IIS
Configuring SSL on IIS
Installing Web Deploy
Troubleshooting tips for Web Deploy
Installing ASP.NET Core Hosting Bundle
Deploying the installable cloud app to IIS
Option A: Automatic deploy
Option B: Manual deploy
Running and verifying the deployment
Hosting server: Docker
Overview
Setting up Docker
Setting up a docker host (Docker Engine)
Setting up a docker registry
Setting up the database server
Preparations
Installing and running the database
Publishing to Docker
Preparing the development PC
Modifying and re-deploying the PowerServer project
Publishing Web APIs to Docker
Specifying the Web API URL in the client app
Hosting server: Kubernetes
Overview
Before you begin
Configuring Azure Kubernetes Service
Creating a Kubernetes cluster in AKS
Connecting to the Kubernetes cluster
Installing ingress controller
Logging into Azure container registry
Creating a database
Containerizing the installable cloud app
Preparing the application
Creating the container images
Pushing images to Azure container registry
Deploying the application to the Kubernetes cluster
Creating the YAML manifest files
Deploying the application
Configuring the domain name
Testing the application
Hosting server: Azure App Service
Prerequisites
Deployment Architecture
Steps Summary
Cloud Database
Creating the Database Resource
Configuring the Database
Dumping the Database
Restoring the Database
Configuring the PowerServer project
Web APIs
Creating the App Service
Deploying the PowerServer project as a folder
Deploying the Web APIs
Installable Cloud App
Option A: With Static Web Apps
Option B: With Azure Blob Storage
Troubleshooting
no pg_hba.conf entry for host
Workflow deployment fails with "Failed to find a default file in the app artifacts folder (/). Valid default files: index.html,Index.html." error
Hosting server: Azure Container Instances
Prerequisites
Overview
Deployment Architecture
Creating an Azure Container Registry
Preparing the PowerServer Project
Containerizing and Deploying Web API
Pushing the container to the Azure Container Repository
Creating the Container Instance
Updating the Web API URL on the PowerServer project
Publishing the Cloud App
Adding a Dockerfile
Adding a home page
Tagging and pushing the image
Creating the container instance
Appendix
Customizing the Containers' URLs
Troubleshooting
Cannot push image to Azure Container Registry
Hosting server: AWS Elastic Beanstalk
Prerequisites
Deployment Architecture
Steps Summary
Creating an application and environment in AWS
Cloud Database
Making the database publicly accessible
Restoring the PBDemoDB database
Configuring the database URL in the PowerServer project
Web APIs
Configuring the Web API and deploy settings in the PowerServer project
Deploying the Web APIs
Cloud App
Creating and configuring the bucket
Creating an index.html file
Uploading the Cloud App
Troubleshooting
Uploading and deploying the Web APIs to Elastic Beanstalk fails
Trying to access the Web APIs returns HTTP 502 Bad Gateway
Hosting app static files on a file server
Overview
IIS
Preparations
Installing Web Server (IIS)
Configuring SSL on IIS
Packaging and copying the client app
Apache on Windows
Preparations
Installing Apache HTTP Server
Configuring SSL on Apache
Packaging and copying the client app
Apache on Linux
Preparations
Installing Apache HTTP Server
Configuring SSL on Apache
Configuring Apache to be case-insensitive
Packaging and copying the client app
Nginx on Windows
Preparations
Installing Nginx
Configuring SSL on Nginx
Packaging and copying the client app
Nginx on Linux
Preparations
Installing Nginx
Configuring SSL on Nginx
Configuring Nginx to be case-insensitive
Packaging and copying the client app
Uploading the app to an FTP server
Preparations
Enabling the FTP service
Creating an FTP site
Configuring SSL on FTP server
Uploading the application via FTP client
Load-balancer
Overview
Nginx
Using Nginx Sticky Module
Using Nginx Plus
Using IP hash load-balancing
Apache
IIS