Skip to main content
Skip to main content
🚧 Work in Progress

Customize web server

Default Nginx configuration​

The default Nginx static service has following configuration:

server {
listen 80 default_server;
listen [::]:80 default_server;

server_name _;
root {{.DocumentRoot}};

location / {
try_files $uri $uri/ /index.html;
}

access_log syslog:server=unix:/dev/log,facility=local1,tag=nginx,severity=info default_short;
error_log syslog:server=unix:/dev/log,facility=local1,tag=nginx,severity=error;
}

The configuration contains 2 variables:

  • {{.DocumentRoot}} is replaced by the run.documentRoot attribute from the zerops.yml. If the attribute is not specified, the default value /var/www is used.

Customize Nginx configuration​

Follow these steps to customize the Nginx configuration in Nginx static service:

  1. Create a .tmpl file with the Nginx configuration in your repository.

  2. Optionally use following variables:

  • {{.DocumentRoot}} is replaced by the run.documentRoot attribute from the zerops.yml. If the attribute is not specified, the default value /var/www is used.

Example:

root {{.DocumentRoot}};
Caution

Use the .tmpl file extension to make Zerops interpret the file as a template. Zerops will replace the supported variables listed above.

  1. Check that your Nginx configuration is consistent with Zerops requirements:
  • Do not use IP addresses in the listen directive
  • If you use other ports than :80 in the listen directive, add them to the run.ports in your zerops.yml as well.
  • Do not use the port :443. All the incoming https:// traffic is terminated on the Zerops internal balancer where the SSL certificate is installed and the request is forwarded to your Nginx static service as a http:// on the port :80.
  1. Add the siteConfigPath to the run section of your zerops.yml
zerops:
# define hostname of your service
- setup: app
# ==== how to build your application ====
build:
# REQUIRED. Set the base technology for the build environment:
base: nodejs@latest

# REQUIRED. Select which files / folders to deploy after
# the build has successfully finished
deployFiles:
- vendor
- public

# ==== how to run your application ====
run:
documentRoot: public

# OPTIONAL. Sets the custom Nginx or Apache configuration. The file must be deployed in the runtime container. Enter the path to the file relative to the /var/www folder
siteConfigPath: site_config.tmpl
  1. Ensure that the build.deployFiles contains the folder with the siteConfigPath or add the path to the Nginx config file to the deployFiles list. Zerops will deploy the file to the runtime container(s).

  2. Trigger the build & deploy pipeline.

Built-in Prerender.io Support​

The default Nginx configuration includes automatic prerender.io support for SEO optimization. When PRERENDER_TOKEN is set, Nginx will automatically serve pre-rendered content to search engines and social media crawlers.

See environment variables for configuration details.