Multiple Access Address Configuration
Dual Address
By default, an access exception occurs if the second access address of the system is directly proxy forwarded to the current original system address.
Due to the characteristics of HAP service, if you need to configure the second access address of the system, you need to forward the request to port 18880 in the container and specify the second access address in the configuration file before you can use the system through the second access address normally.
Configuration
-
Modify the file
docker-compose.yaml
.Add a new variable under
environment
to specify the second access address.ENV_EXT_MINGDAO_PROTO: "https"
ENV_EXT_MINGDAO_HOST: "hap2.domain.com"
ENV_EXT_MINGDAO_PORT: "443"Add port mapping under
ports
to map port 18880 out of the container.- 18880:18880
docker-compose.yaml Example of Configuration File
version: '3'
services:
app:
image: nocoly/hap-community:5.8.3
environment:
ENV_ADDRESS_MAIN: "http://hap1.domain.com:80"
ENV_APP_VERSION: "5.8.3"
ENV_API_TOKEN: "******"
ENV_EXT_MINGDAO_PROTO: "https" # Add
ENV_EXT_MINGDAO_HOST: "hap2.domain.com" # Add
ENV_EXT_MINGDAO_PORT: "443" # Add
ports:
- 8880:8880
- 18880:18880 # Add
volumes:
- ./volume/data/:/data/
- ../data:/data/hap/data- Note that there are four additions in
docker-compose.yaml
.
- Note that there are four additions in
-
Restart the HAP service in the directory of Install Manager to take effect.
bash ./service.sh restartall
-
Forward the second access address request to port 18880 of the server.
Multiple Address
If the system is to be configured with three, four, or more access addresses, the dual-address configuration method described above is not applicable, and you can refer to the following method of adding the pdaddr
header to realize multi-address access to the system through the nginx proxy (Microservice Version: v3.5.0+).
Note: When configuring multiple addresses in this way, the configuration file
dockerc-compose.yaml
cannot containENV_EXT_MINGDAO_PROTO
,ENV_EXT_MINGDAO_HOST
orENV_EXT_MINGDAO_PORT
.
Configuration
-
Add port mapping under the app service
ports
indocker-compose.yaml
to map the 18880 port in the container.- 18880:18880
-
Add a variable in the app service environment with the value of your extended access address. Separate multiple values with commas
ENV_ADDRESS_ALLOWLIST: "https://hap2.domain.com"
-
Restart the HAP service in the directory of Install Manager to take effect.
bash ./service.sh restartall
-
Configure the file for nginx. Reverse proxy the new access address to port 18880 of HAP microservice.
The reverse proxy configuration file for nginx is as follows:
-
Add
proxy_set_header pdaddr
underlocaltion
in the configuration file of nginx to specify the system access address.Example:
location / {
set $real_ip '';
if ($http_x_real_ip) {
set $real_ip $http_x_real_ip;
}
if ($http_x_real_ip = '') {
set $real_ip $remote_addr;
}
proxy_set_header X-Real-IP $real_ip;
proxy_set_header Host $http_host;
proxy_set_header X-Forwarded-Proto $scheme;
proxy_pass http://hap;
proxy_set_header pdaddr https://hap2.domain.com; # New, please note to modify to your actual extended access address
}
# IM Requirements
location ~ /mds2 {
proxy_set_header Host $http_host;
proxy_hide_header X-Powered-By;
proxy_set_header X-NginX-Proxy true;
proxy_pass http://hap;
proxy_redirect off;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection upgrade;
proxy_set_header pdaddr https://hap2.domain.com; # New, please note to modify to your actual extended access address
} -
After reloading nginx, you can use HAP system with a new access address.