docker – 如何使用nginx和terraform配置两个实例?

我有这个代码

resource "docker_image" "Nginx" {                        
  name = "Nginx:1.11-alpine"                             
}                                                        
resource "docker_container" "Nginx-server" {          
  name = "Nginx-server"                               
  image = "${docker_image.Nginx.latest}"              
  ports {                                             
    internal = 80                                     
    external = 80                                     
  }                                                   
  volumes {                                           
    container_path  = "/usr/share/Nginx/html"         
    host_path = "/home/scrapbook/tutorial/www"        
    read_only = true                                  
  }                                                   
} 

一个terraform文件(.tf)中…我想配置在同一台服务器上的两个不同端口中提供的两个Web程序实例.

resource "docker_container" "odoo-iku_1" {                 
  name  = "odoo-iku 1"                                     
  image = "ikusolutions/odoo-iku:latest"                 
  links = ["db"]                                         
  ports {                                                
    external = 8070                                      
    internal = 8069                                   
  }    
}

resource "docker_container" "odoo-iku_2" {                 
  name  = "odoo-iku 2"                                     
  image = "ikusolutions/odoo-iku:latest"                 
  links = ["db"]                                         
  ports {                                                
    external = 8071                                      
    internal = 8069                                   
  }    
}

如何让Nginx将外部端口8070和8071用于域名?例如:端口8070指向https://iku.solutions,端口8071指向https://demo.iku.solutions

解决方法:

Nginx根据您配置的方式路由到达服务器的流量.
在您的情况下,您希望将Nginx配置为反向代理,根据他们尝试访问的服务器名称来路由请求.假设odoo-iku 1 odoo-iku 2的请求分别来自odoo-iku1.example.com和odoo-iku2.example.com,此配置应该适合您.

server {
  listen      8001 default_server;
  server_name odoo-iku1.example.com;
  location / {
    proxy_pass       http://127.0.0.1:8071;
  }
}

server {
  listen      8002 default_server;
  server_name odoo-iku2.example.com;
  location / {
    proxy_pass       http://127.0.0.1:8070;
  }
}

upstream main {
  server 127.0.0.1:8001;
  server 127.0.0.1:8002;
}

server {
  listen      80;
  server_name example.com;
  location / {
    proxy_pass http://main;
  }
}

相关文章

Nginx (engine x) 是一个高性能的HTTP和反向代理服务,也是一...
本地项目配置 1 复制 luffy/settings/dev.py为prop.py 修改l...
nginx不仅可以隐藏版本信息,还支持自定义web服务器信息 先看...
一 、此次漏洞分析 1 nginx HTTP/2漏洞 [nginx-announce] ng...
###进入nginx 目录cd /usr/local/nginx###递归显示 2 级目录...
在cmd命令窗口输入下面命令进行查看 tasklist /fi "ima...