ฉันมีคอนเทนเนอร์สองคอนเทนเนอร์ในกลุ่มคอนเทนเนอร์ของฉันบน Azure โดยใช้ Azure Container Instances (ACI) หนึ่งคอนเทนเนอร์ (คอนเทนเนอร์ A) เปิดเผยพอร์ต 80
และ 443
ไปยังอินเทอร์เน็ต (reverse proxy) อีกอันหนึ่ง (คอนเทนเนอร์ B) ก็ทำงานบนพอร์ตเช่นกัน 80
. ฉันจะแมปพอร์ตของคอนเทนเนอร์ B ได้อย่างไร 80
ไปยังท่าเรืออื่น พูด 8080
เพื่อไม่ให้คอนเทนเนอร์ทั้งสองชนกันกับพอร์ตที่เปิดอยู่ โลคัลโฮสต์
(บน Azure คอนเทนเนอร์ภายในกลุ่มคอนเทนเนอร์สามารถเข้าถึงได้ผ่าน localhost)
ฉันใช้ไม่ได้ 8080:80
เพราะมันต้องเป็นตัวเลขและฉันไม่เห็นวิธีอื่นที่จะระบุสิ่งนี้ ถ้าฉันระบุพอร์ต 80
บนคอนเทนเนอร์ A พร็อกซีย้อนกลับจะวนซ้ำเข้าหาตัวเอง โดยพื้นฐานแล้วพร็อกซีย้อนกลับคือการย้อนกลับพร็อกซี (โดยปกติจะเป็นพอร์ตของคอนเทนเนอร์ B 80
จะสามารถเข้าถึงได้บน localhost)
ตัวอย่าง:
ทรัพยากร "azurerm_container_group" "main_containers" {
ชื่อ = "กลุ่มคอนเทนเนอร์"
สถานที่ = var.location
resource_group_name = var.rg_name
ip_address_type = "สาธารณะ"
dns_name_label = local.dns_name_label
os_type = "ลินุกซ์"
restart_policy = "เสมอ"
แท็ก = var.tags
คอนเทนเนอร์ {
ชื่อ = "เน็กซ์คลาวด์"
รูปภาพ = "เน็กซ์คลาวด์"
ซีพียู = "0.8"
หน่วยความจำ = "0.8"
สภาพแวดล้อม_ตัวแปร = {
MYSQL_DATABASE = azurerm_mariadb_database.nextcloud_database_db.name
MYSQL_USER=azurerm_mariadb_server.nextcloud_database.administrator_login
MYSQL_HOST=azurerm_mariadb_server.nextcloud_database.fqdn
}
secure_environment_variables = {
MYSQL_PASSWORD = azurerm_mariadb_server.nextcloud_database.administrator_login_password
}
ปริมาณ {
ชื่อ = azurerm_storage_share.nextcloud_storage_nextcloud_data_share.name
mount_path = "/var/www/html"
storage_account_name = azurerm_storage_account.nextcloud_storage.name
storage_account_key = azurerm_storage_account.nextcloud_storage.primary_access_key
share_name = azurerm_storage_share.nextcloud_storage_nextcloud_data_share.name
}
พอร์ต {
# นี่คือสิ่งที่ฉันต้องการทำ แต่มันล้มเหลวด้วย:
# ค่าที่ไม่เหมาะสมสำหรับแอตทริบิวต์ "พอร์ต": ต้องระบุตัวเลข
พอร์ต = "8080:80"
โปรโตคอล = "TCP"
}
}
คอนเทนเนอร์ {
ชื่อ = "reverse-proxy-https"
ภาพ = "แคดดี้"
ซีพียู = "0.2"
หน่วยความจำ = "0.2"
คำสั่ง = [
"แคดดี้", "reverse-proxy",
"-จาก", local.public_domain_name,
# นี่คือที่ที่ฉันจะบอกให้ย้อนกลับพร็อกซีเป็น 8080
"-ถึง", "localhost:8080",
]
พอร์ต {
พอร์ต = 80
โปรโตคอล = "TCP"
}
พอร์ต {
พอร์ต = 443
โปรโตคอล = "TCP"
}
ปริมาณ {
ชื่อ = azurerm_storage_share.nextcloud_storage_caddy_data_share.name
mount_path = "/ข้อมูล/แคดดี้"
storage_account_name = azurerm_storage_account.nextcloud_storage.name
storage_account_key = azurerm_storage_account.nextcloud_storage.primary_access_key
share_name = azurerm_storage_share.nextcloud_storage_caddy_data_share.name
}
ปริมาณ {
ชื่อ = azurerm_storage_share.nextcloud_storage_caddy_config_share.name
mount_path = "/config/แคดดี้"
storage_account_name = azurerm_storage_account.nextcloud_storage.name
storage_account_key = azurerm_storage_account.nextcloud_storage.primary_access_key
share_name = azurerm_storage_share.nextcloud_storage_caddy_config_share.name
}
}
}