Skip to main content
Version: 2.9

Configuration file switching based on environment variables

The reason the configuration is extracted from the code is to better adapt to changes. Usually our applications have different operating environments such as development environment and production environment. Certain configurations of these applications will definitely be different, such as the address of the configuration center.

If the configuration of all environments is placed in the same file, it is very difficult to manage. After receiving new requirements, we need to change the parameters in the configuration file to the development environment when developing the development environment. You have to change it back. It's very easy to make mistakes.

The solution to the above problem is to distinguish the current running environment through environment variables, and switch between different configuration files through environment variables. The corresponding environment variable in APISIX is: APISIX_PROFILE

When APISIX_PROFILE is not set, the following three configuration files are used by default:

  • conf/config.yaml
  • conf/apisix.yaml
  • conf/debug.yaml

If the value of APISIX_PROFILE is set to prod, the following three configuration files are used:

  • conf/config-prod.yaml
  • conf/apisix-prod.yaml
  • conf/debug-prod.yaml

Although this way will increase the number of configuration files, it can be managed independently, and then version management tools such as git can be configured, and version management can be better achieved.