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 therun.documentRoot
attribute from thezerops.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:
-
Create a .tmpl file with the Nginx configuration in your repository.
-
Optionally use following variables:
{{.DocumentRoot}}
is replaced by therun.documentRoot
attribute from thezerops.yml
. If the attribute is not specified, the default value/var/www
is used.
Example:
{{.Environment.ENV_NAME}}
is replaced by the env variable value. The env variable must be either defined in run.envVariables inzerops.yml
or set as a secret or generated env variable in Zerops GUI.
Use the .tmpl file extension to make Zerops interpret the file as a template. Zerops will replace the supported variables listed above.
- 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 thelisten
directive, add them to therun.ports
in yourzerops.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.
- Add the
siteConfigPath
to the run section of yourzerops.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
-
Ensure that the
build.deployFiles
contains the folder with thesiteConfigPath
or add the path to the Nginx config file to thedeployFiles
list. Zerops will deploy the file to the runtime container(s). -
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.