在docker容器中使用nginx运行qgis服务器(docker-compose)



我需要将QGIS服务器与NGINX一起运行。我必须使用docker compose来设置环境。我正在使用评论中提到的docker compose文件。和nginx.conf如下-

events {
worker_connections 4096;
}
http {
#  error_log /etc/nginx/error/error.log warn; #./nginx/error.log warn;
client_max_body_size 20m;   
proxy_cache_path /etc/nginx/cache keys_zone=one:500m max_size=1000m;
server {
listen 80;
server_name xx.xx.xx.xxx;
#   return 301 https://localhost:80$request_uri;
return 301 https://$server_name$request_uri;
#  return 301 https://localhost:8008;
}
server {
listen 443 ssl http2;    
server_name xx.xx.xx.xxx; # localhost;    
ssl_session_cache shared:SSL:50m;
ssl_session_timeout 1d;
ssl_session_tickets off;   
#ssl_certificate /etc/nginx/ssl.crt;
#ssl_certificate_key /etc/nginx/ssl.key;   
ssl_protocols TLSv1.2;
ssl_ciphers EECDH+AESGCM:EDH+AESGCM:EECDH:EDH:!MD5:!RC4:!LOW:!MEDIUM:!CAMELLIA:!ECDSA:!DES:!DSS:!3DES:!NULL;
ssl_prefer_server_ciphers on;
keepalive_timeout 70;
location /qgis/ {
proxy_pass http://qgis:8080;              
proxy_set_header X-Forwarded-Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
proxy_set_header Host $http_host;

}

}

}

docker-compose up之后,nginx容器始终处于重新启动状态。docker-compose logs如下-

web_server_1   | 2021/05/12 16:53:45 [emerg] 1#1: host not found in upstream "qgis" in /etc/nginx/nginx.conf:40
web_server_1   | nginx: [emerg] host not found in upstream "qgis" in /etc/nginx/nginx.conf:40

提前感谢!!

使用类似的东西作为docker-compose.yml

services:
web_server:
image: nginx
volumes:
- ./nginx.conf:/etc/nginx/nginx.conf
- ./mime.types:/etc/nginx/conf/mime.types
- ./public:/data/www
- ./tile_cache:/tile_cache
- ./logs:/logs
ports:
- "80:80"
- "443:443"
restart: always
networks:
tile_network:
aliases: 
- webserver   
qgis_server:
image: camptocamp/qgis-server
volumes:
- ./qgisserver:/etc/qgisserver/
restart: always
environment:
- QGIS_PROJECT_FILE=/etc/qgisserver/project.qgs
networks:
tile_network:
aliases: 
- qgis    

nginx.conf中添加以下位置:

location /qgis/ {

proxy_pass http://qgis/;

proxy_set_header X-Forwarded-Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
proxy_set_header Host $http_host;

}

因此,您有一个web服务器,它隐藏QGIS服务器并在ULRlocalhost/qgis上显示它

最新更新