Skip to content

Installing AngusProxy

AngusProxy serves as the request proxy for AngusTester, providing two core capabilities:

  1. Request Proxying: Proxies HTTP and WebSocket protocol interface debugging requests, resolving browser cross-origin restrictions.
  2. Plugin-Based Request Processing: Allows custom processing of proxied requests through plugins, enabling users to perform secondary processing on proxied requests, such as custom request parameter signing.

To accommodate different usage scenarios, AngusTester offers four proxy options:

  • No Proxy: Requests interfaces directly through the browser. For cross-origin access, the server must disable cross-origin restrictions.
  • Client Proxy: Requires installing the proxy program on the user's local machine. Once configured, requests will be sent via the client proxy.
  • Server Proxy: Requires installing the proxy program on a shared network server. This eliminates the need for users to install the proxy locally. Once configured, requests will use the server proxy. This is the recommended approach.
  • Cloud Proxy: Uses AngusTester's cloud service to proxy requests. Note: This cannot access internal network services.

For these proxy types, you can freely select the appropriate option in the "Interface Proxy" section of the debugging interface's right-hand panel based on your scenario.

I. Prerequisites

  • Ensure the target port 6806 is available.
  • Operating System: Supports Linux / macOS / Windows Server.
  • Java Environment: For non-container installations, ensure JDK 17+ is installed.

II. Manual Installation

  1. Run the following command or click Download Installation Package.
    bash
    curl -LO https://nexus.xcan.cloud/repository/release/package/AngusProxy-1.0.0.zip
  2. After downloading, extract the package to the target directory (e.g., /opt/AngusProxy).
    bash
    # Extract the package to the target directory  
    mkdir -p /opt/AngusProxy  
    unzip -qo AngusProxy-1.0.0.zip -d /opt/AngusProxy  
    
    # Navigate to the installation directory  
    cd /opt/AngusProxy

    Note: To modify the proxy address or other configurations, refer to the "Configuration Reference" section below.

  3. Start the request proxy.
    bash
    ./startup-proxy.sh

III. Containerized Deployment

Prepare Installation Directory and Permissions

bash
# Create the main installation directory (required for volume mounting)  
mkdir -p /opt/AngusProxy  

# Navigate to the installation directory  
cd /opt/AngusProxy  

# Create subdirectories for configurations, data, logs, etc.  
mkdir -p {conf,data,logs,lib,tmp}  

# Set directory permissions (ensure the container user has read/write access)  
# Note: For production environments, finer-grained permissions (e.g., chown 1000:1000) are recommended.  
chmod -R 777 /opt/AngusProxy

Quick Start with Docker

bash
# Start the application container (in detached mode)  
docker run \  
  --name angusproxy -d \  
  -p 6806:6806 \  
  -v ./conf:/opt/AngusProxy/conf \  
  -v ./data:/opt/AngusProxy/data \  
  -v ./logs:/opt/AngusProxy/logs \  
  -v ./lib:/opt/AngusProxy/lib \  
  -v ./tmp:/opt/AngusProxy/tmp \  
  --ulimit nofile=1024000:1024000 \  
  --ulimit nproc=1024000 \  
  xcancloud/angusproxy:1.0.0

Docker Compose Deployment

bash
# Create a Compose file  
cat << EOF > proxy.yml  
services:  
  angusproxy:  
    image: xcancloud/angusproxy:1.0.0  
    container_name: angusproxy  
    restart: unless-stopped  
    volumes:  
      - ./conf:/opt/AngusProxy/conf  
      - ./data:/opt/AngusProxy/data  
      - ./logs:/opt/AngusProxy/logs  
      - ./lib:/opt/AngusProxy/lib  
      - ./tmp:/opt/AngusProxy/tmp  
    ports:  
      - "6806:6806"  
    ulimits:  
      nproc: 1024000  
      nofile:  
        soft: 1024000  
        hard: 1024000  
EOF  

# Start the proxy  
docker compose -f proxy.yml up -d

IV. Verify Installation

Check the proxy startup logs to confirm successful installation.

bash
# For manual installations  
tail -f -n100 logs/proxy.log  

# For Docker installations  
docker logs angusproxy  

# For Docker Compose installations  
docker compose -f proxy.yml logs

If the logs include the message Start AngusProxy successfully, the startup was successful.

txt
01/17 17:55:45.282 [main] INFO  Load target sample handler: cloud.xcan.angus.core.handler.HttpDynamicValueHandler  
01/17 17:55:45.286 [main] INFO  Load target sample handler: cloud.xcan.angus.core.handler.HttpAssertionHandler  
01/17 17:55:45.522 [nioEventLoopGroup-2-1] INFO  #############################################  
 _  _ ___  __   __ _      __   __ _  ___ _  _  ____    ____ ____  __ _  _ _  _  
( \/ ) __)/ _\ (  ( \___ / _\ (  ( \/ __) )( \/ ___)__(  _ (  _ \/  ( \/ | \/ )  
 )  ( (__/    \/    (___)    \/    ( (_ ) \/ (\___ (___) __/)   (  O )  ( )  /  
(_/\_)___)_/\_/\_)__)   \_/\_/\_)__)\___|____/(____/  (__) (__\_)\__(_/\_|__/  

01/17 17:55:45.523 [nioEventLoopGroup-2-1] INFO  *** Start AngusProxy successfully and 0.0.0.0:6806 is ready [PID=70892] ***  
01/17 17:55:45.525 [nioEventLoopGroup-2-1] INFO  *** Request proxy endpoint:   ws://192.168.1.4:6806/angusProxy  ***

V. Configuring Proxy Usage

For locally installed proxies, configure the address in the "Interface Proxy -> Client Proxy" section of the debugging interface's right-hand panel, as shown below:

proxy-client-config.png

For server-installed proxies shared across all users in a tenant, configure the address in the "Configuration -> Proxy" menu, as shown below:

proxy-server-config.png

VI. Service Management

  • Linux/macOS
bash
# Start the service  
./startup-proxy.sh  
# Stop the service  
./shutdown-proxy.sh  
# View logs  
tail -f logs/proxy.log
  • Docker
bash
# Start the service  
docker start angusproxy  
# Stop the service  
docker stop angusproxy  
# View logs  
docker logs angusproxy
  • Docker Compose
bash
# Start the service  
docker compose -f proxy.yml up -d  
# Stop the service  
docker compose -f proxy.yml stop  
# View logs  
docker compose -f proxy.yml logs

VII. Configuration Reference

Proxy Service Configuration (proxy.properties)

properties
# Proxy server binding IP (default: 0.0.0.0)  
angusproxy.serverIp=0.0.0.0  
# Proxy server binding port (default: 6806)  
angusproxy.serverPort=6806  
# Proxy server endpoint (default: /angusProxy)  
angusproxy.wsPath=/angusProxy  
## Enable SSL for Netty HTTP server (default: false)  
angusproxy.useSsl=false  
## Enable Netty logs (recommended for debugging only, default: false)  
angusproxy.enableNettyLog=false  
# Maximum allowed request size (default: 1000MB)  
angusproxy.maxContentLength=1048576000  
# Maximum HTTP client connections for proxying requests (default: 128)  
angusproxy.maxHttpConnectionNum=128  
# Maximum connection timeout in milliseconds (default: 5000)  
angusproxy.maxConnectTimeout=5000  
# Maximum request timeout in milliseconds (default: no timeout)  
angusproxy.maxRequestTimeout=-1  
# Maximum read timeout in milliseconds (default: no timeout)  
angusproxy.maxReadTimeout=-1  
# Maximum HTTP redirects allowed (default: 3)  
angusproxy.maxRedirects=3  
# Thread name prefix for proxy server request handling (default: AngusProxy-Thread)  
angusproxy.threadNamePrefix=AngusProxy-Thread

Released under the GPL-3.0 License.