http端口转发
docker-compose.yml文件(示例转发geoserver服务)
services:
nginx:
image: nginx:latest
container_name: nginx-proxy-geoserver
ports:
- "18080:18080"
volumes:
- ./nginx.conf:/etc/nginx/nginx.conf
restart: unless-stopped
nginx.conf文件
events {
worker_connections 1024;
}
http {
server {
listen 18080;
location /geoserver/ {
proxy_pass http://目的ip:目的端口/geoserver/;
proxy_set_header Host 目的ip:目的端口;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_redirect http://目的ip:目的端口/ http://$host:目的端口/;
}
}
以上配置达到的目的是将目的ip的目的端口映射到本机的18080端口,达到本机18080端口转发到目的ip的目的端口。(监控的是本机的18080端口)
TCP端口转发(例如mysql 、postgres)
docker-compose.yml文件
services:
nginx:
image: nginx:latest
container_name: nginx-proxy-pg
ports:
- "15432:15432"
volumes:
- ./nginx.conf:/etc/nginx/nginx.conf
restart: unless-stopped
nginx.conf文件
events {
worker_connections 1024;
}
stream {
server {
listen 15432;
proxy_pass 目的ip:目的端口;
proxy_timeout 30s;
proxy_connect_timeout 10s;
}
}
以上配置达到的目的是将目的ip的目的端口映射到本机的15432端口,达到本机15432端口转发到目的ip的目的端口。(监控的是本机的15432端口)