Nginx代理-端口转发

目录
1.使用nginx+docker端口转发
2.未使用docker容器的端口转发

使用nginx+docker实现端口转发

背景:
一台服务器,使用docker搭建了多个服务容器;
服务1:0.0.0.0:3010->80/tcp
服务2:0.0.0.0:3000->80/tcp

实现目标:
1.在服务器监听访问端口,实现指定的端口分发
2.多个域名绑定一台服务器的不同服务,都使用80端口

实现方法:
在服务器端,最外层使用nginx服务

apt-get install nginx

修改nginx配置(/etc/nginx/sites-enabled)
1.监听不同端口
server_name 使用域名、服务器ip地址都可以

## nginx代理转发
# 根据接收的域名/ip+端口号 转发到指定端口的docker容器服务

server {
    listen  80;
    server_name     www.micico.cn;
    location / {
        proxy_pass      http://0.0.0.0:3010; # 转发
    }
}

server {
    listen  8999;
    server_name     www.micico.cn;
    location / {
        proxy_pass      http://0.0.0.0:3000; # 转发
    }
}

2.多域名都使用80端口

## nginx代理转发
# 根据接收的域名/ip+端口号 转发到指定端口的docker容器服务

server {
    listen  80;
    server_name     www.micico.cn;
    location / {
        proxy_pass      http://0.0.0.0:3010; # 转发
    }
}

server {
    listen  80;
    server_name     test.micico.cn;
    location / {
        proxy_pass      http://0.0.0.0:3000; # 转发
    }
}


未使用docker(单容器)实现

背景:
单个nginx服务,使用不同端口开启了多个服务

nginx配置:/etc/nginx/sites-enabled/default.conf

1.正常的nginx配置(示例)使用你自己的即可,不用复制

# 服务1的监听配置
# 正常访问:www.micico.cn:8080
# 注意:不用复制,使用自己的配置就可以,此处为示例
server {
    listen       8080;
    root         /var/www/html/service1/publish/;
    index        index.html;
    location / {
        try_files $uri $uri/ /index.html;
    }
}
 
# 服务2的监听配置
# 正常访问:www.micico.cn:8081
# 注意:不用复制,使用自己的配置就可以,此处为示例
server {
    listen       8081;
    root         /var/www/html/service2/publish/;
    index        index.html;
    location / {
    	try_files $uri $uri/ /index.html;
    }
}

2.需要不同域名都使用80端口访问,可在conf文件添加以下配置

## nginx代理转发
# 根据接收的域名/ip+端口号 转发到指定端口服务

server {
    listen  80;
    server_name     www.micico.cn;
    location / {
        proxy_pass      http://0.0.0.0:8080; # 转发
    }
}

server {
    listen  80;
    server_name     test.micico.cn;
    location / {
        proxy_pass      http://0.0.0.0:8081; # 转发
    }
}

注意事项

若多个域名需要使用80端口,则搭建服务时,需要使用80端口以外的其他端口

你可能感兴趣的:(docker,Nginx,nginx,docker,运维)