Catatan
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba masuk atau mengubah direktori.
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba mengubah direktori.
Proksi terbalik adalah Azure Service Fabric opsional yang membantu layanan mikro yang berjalan di kluster Service Fabric menemukan dan berkomunikasi dengan layanan lain yang memiliki titik akhir http. Untuk mempelajari selengkapnya, lihat Membalik proksi di Azure Service Fabric. Artikel ini menunjukkan kepada Anda cara menyiapkan dan mengonfigurasi proksi terbalik di kluster Anda.
Mengaktifkan proksi terbalik menggunakan portal Microsoft Azure
Portal Microsoft Azure menyediakan opsi untuk mengaktifkan proksi terbalik saat Anda membuat kluster Service Fabric baru. Anda tidak dapat meningkatkan kluster yang ada untuk menggunakan proksi terbalik melalui portal.
Untuk mengonfigurasi proksi terbalik saat Anda membuat kluster menggunakan portal Microsoft Azure, pastikan Anda melakukan hal berikut:
Di Langkah 2: Konfigurasi Kluster,di konfigurasi tipe Node, pilih Aktifkan proksi terbalik.

(Opsional) Untuk mengonfigurasi proksi terbalik yang aman, Anda perlu mengonfigurasi sertifikat TLS/SSL. Di Langkah 3: Keamanan, pada pengaturan Konfigurasi keamanan kluster, di Jenis konfigurasi, pilih Kustom. Kemudian, di Sertifikat SSL Proksi Terbalik, pilih Sertakan sertifikat SSL untuk proksi terbalik dan masukkan detail sertifikat Anda.

Jika memilih untuk tidak mengonfigurasi proksi terbalik dengan sertifikat saat membuat kluster, Anda dapat melakukannya nanti melalui templat Resource Manager untuk grup sumber daya kluster. Untuk mempelajari selengkapnya, lihat Mengaktifkan proksi terbalik melalui templat Azure Resource Manager.
Mengaktifkan proksi terbalik melalui templat Azure Resource Manager
Untuk kluster di Azure, Anda dapat menggunakan templat Azure Resource Manager untuk mengaktifkan proksi terbalik di Service Fabric. Anda dapat mengaktifkan proksi terbalik saat membuat kluster atau mengaktifkannya dengan memperbarui kluster di lain waktu.
Untuk kluster baru, Anda dapat membuat templat Resource Manager kustom atau Anda bisa menggunakan templat sampel.
Anda dapat menemukan contoh templat Resource Manager yang dapat membantu mengonfigurasi proksi terbalik yang aman untuk kluster Azure di Templat Sampel Proksi Terbalik yang Aman di GitHub. Lihat Mengonfigurasi Proksi Terbalik HTTPS dalam kluster yang aman di file README untuk instruksi dan templat yang digunakan guna mengonfigurasi proksi terbalik aman dengan sertifikat dan untuk menangani rollover sertifikat.
Untuk kluster yang sudah ada, Anda dapat mengekspor templat Resource Manager untuk grup sumber daya kluster menggunakan portal Microsoft Azure, PowerShell, atau Azure CLI.
Setelah memiliki templat Resource Manager, Anda bisa mengaktifkan proksi terbalik dengan langkah-langkah berikut:
Tentukan port untuk proksi terbalik di bagian Parameter templat.
"SFReverseProxyPort": { "type": "int", "defaultValue": 19081, "metadata": { "description": "Endpoint for Service Fabric Reverse proxy" } },Tentukan port untuk setiap objek nodetype di bagian jenis Resource Microsoft.ServiceFabric/clusters.
Port diidentifikasi dengan nama parameter, reverseProxyEndpointPort.
{ "apiVersion": "2021-06-01", "type": "Microsoft.ServiceFabric/clusters", "name": "[parameters('clusterName')]", "location": "[parameters('clusterLocation')]", ... "nodeTypes": [ { ... "reverseProxyEndpointPort": "[parameters('SFReverseProxyPort')]", ... }, ... ], ... }Untuk mengonfigurasi sertifikat TLS/SSL pada port untuk proksi terbalik, tambahkan sertifikat ke objek reverseProxyCertificate di templat sumber daya Microsoft.ServiceFabric/clusters.
{ "apiVersion": "2021-06-01", "type": "Microsoft.ServiceFabric/clusters", "name": "[parameters('clusterName')]", "location": "[parameters('clusterLocation')]", "dependsOn": [ "[concat('Microsoft.Storage/storageAccounts/', parameters('supportLogStorageAccountName'))]" ], "properties": { ... "reverseProxyCertificate": { "thumbprint": "[parameters('sfReverseProxyCertificateThumbprint')]", "x509StoreName": "[parameters('sfReverseProxyCertificateStoreName')]" }, ... "clusterState": "Default", } }Anda juga dapat menentukan nama umum untuk sertifikat proxy terbalik menggunakan objek reverseProxyCertificateCommonNames di templat sumber daya kluster.
Mendukung sertifikat proksi terbalik yang berbeda dari sertifikat kluster
Jika sertifikat proksi terbalik berbeda dari sertifikat yang mengamankan kluster, sertifikat yang sebelumnya ditentukan harus dipasang pada komputer virtual dan ditambahkan ke daftar kontrol akses (ACL) sehingga Service Fabric dapat mengaksesnya. Ini dapat dilakukan di bagian jenis Resource Microsoft.Compute/virtualMachineScaleSets. Untuk pemasangan, tambahkan sertifikat ke osProfile. Bagian ekstensi templat dapat memperbarui sertifikat di ACL.
{
"apiVersion": "[variables('vmssApiVersion')]",
"type": "Microsoft.Compute/virtualMachineScaleSets",
....
"osProfile": {
"adminPassword": "[parameters('adminPassword')]",
"adminUsername": "[parameters('adminUsername')]",
"computernamePrefix": "[parameters('vmNodeType0Name')]",
"secrets": [
{
"sourceVault": {
"id": "[parameters('sfReverseProxySourceVaultValue')]"
},
"vaultCertificates": [
{
"certificateStore": "[parameters('sfReverseProxyCertificateStoreValue')]",
"certificateUrl": "[parameters('sfReverseProxyCertificateUrlValue')]"
}
]
}
]
}
....
"extensions": [
{
"name": "[concat(parameters('vmNodeType0Name'),'_ServiceFabricNode')]",
"properties": {
"type": "ServiceFabricNode",
"autoUpgradeMinorVersion": false,
...
"publisher": "Microsoft.Azure.ServiceFabric",
"settings": {
"clusterEndpoint": "[reference(parameters('clusterName')).clusterEndpoint]",
"nodeTypeRef": "[parameters('vmNodeType0Name')]",
"dataPath": "D:\\\\SvcFab",
"durabilityLevel": "Bronze",
"testExtension": true,
"reverseProxyCertificate": {
"thumbprint": "[parameters('sfReverseProxyCertificateThumbprint')]",
"x509StoreName": "[parameters('sfReverseProxyCertificateStoreValue')]"
},
},
"typeHandlerVersion": "1.0"
}
},
]
}
Catatan
Ketika Anda menggunakan sertifikat yang berbeda dari sertifikat kluster untuk mengaktifkan proksi terbalik pada kluster yang ada, pasang sertifikat proksi terbalik dan perbarui ACL pada kluster sebelum Anda mengaktifkan proksi terbalik. Selesaikan penyebaran templat Azure Resource Manager menggunakan pengaturan yang disebutkan sebelumnya sebelum Anda memulai penyebaran untuk mengaktifkan proksi terbalik di langkah 1-3.
Aktifkan proksi terbalik pada kluster mandiri
Untuk kluster mandiri, Anda mengaktifkan proksi terbalik di file ClusterConfig.js. Anda dapat mengaktifkan proksi terbalik pada pembuatan kluster atau dengan meningkatkan konfigurasi untuk kluster yang ada. Untuk mempelajari selengkapnya tentang pengaturan yang tersedia di file ClusterConfig.js, lihat Pengaturan kluster mandiri.
Langkah-langkah berikut menunjukkan pengaturan yang akan digunakan untuk mengaktifkan proksi terbalik dan, secara opsional, untuk mengamankan proksi terbalik dengan sertifikat X.509.
Untuk mengaktifkan proksi terbalik, atur nilai reverseProxyEndpointPort untuk jenis node di properti dalam konfigurasi kluster. JSON berikut menunjukkan pengaturan port titik akhir proksi terbalik ke 19081 untuk node dengan jenis "NodeType0":
"properties": { ... "nodeTypes": [ { "name": "NodeType0", ... "reverseProxyEndpointPort": "19081", ... } ], ... }(Opsional) Untuk proksi terbalik yang aman, konfigurasi sertifikat di bagian keamanan di properti.
Untuk lingkungan pengembangan atau pengujian, Anda dapat menggunakan pengaturan ReverseProxyCertificate:
"properties": { ... "security": { ... "CertificateInformation": { ... "ReverseProxyCertificate": { "Thumbprint": "[Thumbprint]", "ThumbprintSecondary": "[Thumbprint]", "X509StoreName": "My" }, ... } }, ... }Untuk lingkungan produksi, pengaturan ReverseProxyCertificateCommonNames direkomendasikan:
"properties": { ... "security": { ... "CertificateInformation": { ... "ReverseProxyCertificateCommonNames": { "CommonNames": [ { "CertificateCommonName": "[CertificateCommonName]" } ], "X509StoreName": "My" }, ... } }, ... }
Untuk mempelajari selengkapnya tentang mengonfigurasi dan mengelola sertifikat untuk kluster mandiri serta detail selengkapnya tentang mengonfigurasi sertifikat yang digunakan untuk mengamankan proksi terbalik, lihat keamanan berbasis sertifikat X509.
Setelah memodifikasi file ClusterConfig.js untuk mengaktifkan proksi terbalik, ikuti instruksi di Meningkatkan konfigurasi kluster untuk mendorong perubahan pada kluster Anda.
Mengekspos proksi terbalik pada port publik melalui Azure Load Balancer
Untuk mengatasi proksi terbalik dari luar kluster Azure, siapkan aturan Azure Load Balancer dan Azure Health Probe untuk port proksi terbalik. Langkah-langkah ini dapat dilakukan menggunakan portal Microsoft Azure atau templat Resource Manager kapan saja setelah Anda membuat kluster.
Peringatan
Saat Anda mengonfigurasi port proksi terbalik di Load Balancer, semua layanan mikro dalam kluster yang mengekspos titik akhir HTTP dapat diatasi dari luar kluster. Ini berarti bahwa layanan mikro yang dimaksudkan untuk menjadi internal dapat ditemukan oleh pengguna jahat yang ditentukan. Ini berpotensi menghadirkan kerentanan serius yang dapat dieksploitasi; misalnya:
- Pengguna jahat dapat meluncurkan penolakan serangan layanan dengan berulang kali memanggil layanan internal yang tidak memiliki permukaan serangan yang cukup mengeras.
- Pengguna jahat dapat mengirimkan paket rusak ke layanan internal yang mengakibatkan perilaku yang tidak diinginkan.
- Layanan yang dimaksudkan untuk bersifat internal dapat mengembalikan informasi privat atau sensitif yang tidak dimaksudkan untuk diekspos ke layanan di luar kluster, sehingga memaparkan informasi sensitif ini kepada pengguna jahat.
Pastikan Anda sepenuhnya memahami dan mengurangi potensi konsekuensi keamanan untuk kluster Anda dan aplikasi yang berjalan padanya, sebelum Anda membuat port proksi terbalik menjadi publik.
Jika ingin mengekspos proksi terbalik secara publik untuk kluster mandiri, cara Anda melakukannya akan bergantung pada sistem yang meng-host kluster dan berada di luar lingkup artikel ini. Namun, peringatan sebelumnya tentang mengekspos proksi terbalik secara publik, masih berlaku.
Mengekspos proksi terbalik menggunakan portal Microsoft Azure
Pada portal Microsoft Azure, klik grup sumber daya untuk kluster Anda, lalu klik load balancer untuk kluster Anda.
Untuk menambahkan Pemeriksaan kesehatan untuk port proksi terbalik, di panel kiri jendela load balancer, di PENGATURAN, klik Pemeriksaan kesehatan. Lalu, klik Tambahkan di bagian atas jendela Pemeriksaan kesehatan dan masukkan detail untuk port proksi terbalik, lalu klik OK. Secara default, port proksi terbalik adalah 19081, kecuali Jika Anda mengubahnya saat membuat kluster.

Untuk menambahkan aturan Load Balancer untuk mengekspos port proksi terbalik, di panel kiri jendela load balancer, di PENGATURAN,klik aturan Load Balancer. Lalu klik Tambahkan di bagian atas jendela aturan load balancing dan masukkan detail untuk port proksi terbalik. Pastikan Anda menetapkan nilai Port ke port yang Anda inginkan agar proksi terbalik terekspos, nilai port Backend ke port yang Anda tetapkan saat mengaktifkan proksi terbalik, dan nilai Pemeriksaan kesehatan ke pemeriksaan kesehatan yang Anda konfigurasi di langkah sebelumnya. Atur bidang lain yang sesuai dan klik OK.

Mengekspos proksi terbalik melalui templat Resource Manager
JSON berikut ini mereferensikan templat yang sama yang digunakan dalam Mengaktifkan proksi terbalik melalui templat Azure Resource Manager. Lihat bagian dokumen tersebut untuk informasi tentang cara membuat templat Resource Manager atau mengekspor templat untuk kluster yang sudah ada. Perubahan dilakukan pada bagian jenis Resource Microsoft.Network/loadBalancers.
{
"apiVersion": "[variables('lbApiVersion')]",
"type": "Microsoft.Network/loadBalancers",
...
...
"loadBalancingRules": [
...
{
"name": "LBSFReverseProxyRule",
"properties": {
"backendAddressPool": {
"id": "[variables('lbPoolID0')]"
},
"backendPort": "[parameters('SFReverseProxyPort')]",
"enableFloatingIP": "false",
"frontendIPConfiguration": {
"id": "[variables('lbIPConfig0')]"
},
"frontendPort": "[parameters('SFReverseProxyPort')]",
"idleTimeoutInMinutes": "5",
"probe": {
"id": "[concat(variables('lbID0'),'/probes/SFReverseProxyProbe')]"
},
"protocol": "tcp"
}
}
],
"probes": [
...
{
"name": "SFReverseProxyProbe",
"properties": {
"intervalInSeconds": 5,
"numberOfProbes": 2,
"port": "[parameters('SFReverseProxyPort')]",
"protocol": "tcp"
}
}
]
}
Menyesuaikan perilaku proksi terbalik menggunakan pengaturan kain
Anda dapat menyesuaikan perilaku proksi terbalik melalui pengaturan kain di templat Resource Manager untuk kluster yang di-host di Azure atau di file ClusterConfig.js untuk kluster mandiri. Pengaturan yang mengontrol perilaku proksi terbalik terletak di bagian ApplicationGateway/Http di bagian fabricSettings di bagian properti kluster.
Misalnya, Anda bisa mengatur nilai DefaultHttpRequestTimeout untuk mengatur waktu habis untuk permintaan ke proksi terbalik menjadi 180 detik seperti dalam JSON berikut ini:
{
"fabricSettings": [
...
{
"name": "ApplicationGateway/Http",
"parameters": [
{
"name": "DefaultHttpRequestTimeout",
"value": "180"
}
]
}
],
...
}
Catatan
Proksi Terbalik memiliki batas 16 KB untuk header dan tidak mendukung perubahan ambang ke ukuran yang lebih besar.
Untuk informasi selengkapnya tentang memperbarui pengaturan fabric untuk kluster Azure, lihat Menyesuaikan pengaturan kluster menggunakan templat Resource Manager. Untuk kluster mandiri, lihat Menyesuaikan pengaturan kluster untuk kluster mandiri.
Beberapa pengaturan fabric digunakan untuk membantu membangun komunikasi yang aman antara proksi terbalik dan layanan. Untuk informasi detail tentang pengaturan ini, lihat Tersambung ke layanan aman dengan proksi terbalik.
Langkah berikutnya
- Menyiapkan penerusan untuk mengamankan layanan HTTP dengan proksi terbalik
- Untuk opsi konfigurasi proksi terbalik, lihat bagian ApplicationGateway/Http di pengaturan kluster Customize Service Fabric.