全部产品
Search
文档中心

Alibaba Cloud SDK:Konfigurasikan proxy HTTP

更新时间:Jul 06, 2025

Jika aplikasi Anda tidak dapat memanggil operasi API karena lingkungan jaringan yang terbatas, seperti jaringan internal atau isolasi firewall, Anda dapat menggunakan server proxy untuk mengaktifkan akses ke jaringan eksternal. Alibaba Cloud SDK menyediakan konfigurasi proxy lengkap dan mendukung protokol HTTP serta HTTPS secara fleksibel. Setelah mengonfigurasi alamat proxy, port, dan parameter autentikasi dari server proxy, Anda dapat mengaktifkan proxy untuk meneruskan permintaan API. Topik ini menjelaskan cara mengonfigurasi proxy Tengine dan menggunakan Tengine SDK untuk memanggil operasi API.

Skenario contoh

Misalkan aplikasi Anda diterapkan di jaringan internal, dan Anda perlu menerapkan server proxy untuk memungkinkan aplikasi mengakses Internet. Dalam contoh berikut, instance Elastic Compute Service (ECS) yang diterapkan di virtual private clouds (VPCs) digunakan.

  • Instance ECS A: Aplikasi diterapkan di VPC dan memiliki akses ke sumber daya di jaringan internal, tetapi tidak memiliki akses Internet. Alamat IP privat adalah 10.0.0.115.

  • Instance ECS B: Berfungsi sebagai server proxy yang menyediakan akses ke Internet. Instance ECS B berada di VPC yang sama dengan Instance ECS A. Alamat IP privat adalah 10.0.0.112.

    Catatan

    Jika Instance A dan Instance B berada di VPC yang berbeda, Anda dapat membuat koneksi peering VPC atau Router transit edisi perusahaan untuk menetapkan komunikasi VPC-to-VPC.

Terapkan server proxy

Dalam contoh ini, server Tengine digunakan sebagai server proxy dan diterapkan pada Instance ECS B.

Unduh dan Instal Tengine

  1. Unduh dan dekompresi paket.

    wget https://tengine.taobao.org/download/tengine-3.1.0.tar.gz
    tar zxvf tengine-3.1.0.tar.gz
    
  2. Perbarui pustaka dependensi.

    Alibaba Cloud Linux/CentOS

    sudo yum update -y
    

    Ubuntu/Debian

    sudo apt-get update 
    sudo apt-get upgrade -y
    
  3. Instal dependensi.

    Alibaba Cloud Linux/CentOS

    sudo yum install pcre pcre-devel openssl openssl-devel zlib-devel -y
    sudo yum groupinstall "Development Tools" -y
    

    Ubuntu/Debian

    sudo apt-get install libpcre3 libpcre3-dev zlib1g-dev openssl libssl-dev build-essential -y 
    
  4. Kompilasi file dan instal Tengine.

    cd tengine-3.1.0
    ./configure --with-http_stub_status_module --with-http_ssl_module --with-http_gzip_static_module --add-module=./modules/ngx_http_proxy_connect_module
    make && make install
  5. Mulai proses Tengine.

    Jalankan perintah berikut untuk menanyakan lokasi file eksekusi Tengine, misalnya, /root/tengine-3.1.0/objs/nginx:

    find / -name nginx 2>/dev/null | grep tengine

    Jalankan file eksekusi Tengine untuk memulai Tengine:

    sudo /root/tengine-3.1.0/objs/nginx
  6. Periksa apakah Tengine telah dimulai.

    # Periksa apakah proses Tengine ada.
    ps aux | grep nginx

Konfigurasikan proxy HTTP atau HTTPS

  1. Jalankan perintah berikut untuk memodifikasi file konfigurasi Tengine:

    vim /usr/local/nginx/conf/nginx.conf

    Tambahkan konten berikut ke modul http dalam file konfigurasi:

    Peringatan

    Kode sampel berikut hanya untuk referensi. Sesuaikan konfigurasi berdasarkan skenario aktual.

        # Proxy HTTPS
        server {
            listen 8089;
            access_log  /var/log/host.access.log;
            access_log  "pipe:rollback /var/log/host.access_log interval=1d baknum=7 maxsize=2G";
            # dns resolver used by forward proxying
    	# forward proxy for CONNECT request
            proxy_connect;
            proxy_connect_allow            443 563;
            proxy_connect_connect_timeout  10s;
            proxy_connect_read_timeout     10s;
            proxy_connect_send_timeout     10s;
     
            # forward proxy for non-CONNECT request
            location / {
                proxy_pass $scheme://$http_host$request_uri;
            }
        }
     
        # Proxy HTTP
        server {
            listen 8088;
            location / {
                proxy_pass $scheme://$http_host$request_uri;
            }
        }

    Simpan file setelah menambahkan konten.

  2. Muat ulang Tengine.

    # Hentikan Tengine.
    /usr/local/nginx/sbin/nginx -s stop
    # Buat konfigurasi berlaku.
    /usr/local/nginx/sbin/nginx -c /usr/local/nginx/conf/nginx.conf
    # Mulai ulang Tengine
    /usr/local/nginx/sbin/nginx -s reload

Gunakan SDK untuk memanggil API melalui server proxy.

Terapkan kode bisnis pada Instance ECS A. Kode sampel berikut hanya untuk referensi.

# pip install alibabacloud_ecs20140526
import os

from alibabacloud_ecs20140526.client import Client as EcsClient
from alibabacloud_ecs20140526.models import DescribeRegionsRequest
from alibabacloud_tea_openapi.models import Config
from alibabacloud_tea_util.models import RuntimeOptions

config = Config(
    access_key_id=os.environ.get('ALIBABA_CLOUD_ACCESS_KEY_ID'),
    access_key_secret=os.environ.get('ALIBABA_CLOUD_ACCESS_KEY_SECRET'),
    endpoint='ecs-cn-hangzhou.aliyuncs.com',
    protocol='https', # Gunakan protokol yang sama dengan proxy. Jika Anda menggunakan proxy HTTP, atur nilainya menjadi http. Jika Anda menggunakan proxy HTTPS, atur nilainya menjadi https.
)
ecs_client = EcsClient(config)

runtime_options = RuntimeOptions(
    # http_proxy='http://10.0.0.112:8088', # Alamat IP dan port dari proxy HTTP.
    https_proxy='http://10.0.0.112:8089'  # Alamat IP dan port dari proxy HTTPS.
)
request = DescribeRegionsRequest(
    accept_language='en-US',
)
response = ecs_client.describe_regions_with_options(request, runtime_options)
print(response.body)

Tanggapan yang diharapkan:

image