Installing AngusProxy
AngusProxy serves as the request proxy for AngusTester, providing two core capabilities:
- Request Proxying: Proxies HTTP and WebSocket protocol interface debugging requests, resolving browser cross-origin restrictions.
- 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
- Run the following command or click Download Installation Package.bash
curl -LO https://nexus.xcan.cloud/repository/release/package/AngusProxy-1.0.0.zip
- 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.
- Start the request proxy.bash
./startup-proxy.sh
III. Containerized Deployment
Prepare Installation Directory and Permissions
# 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
# 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
# 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.
# 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.
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:
For server-installed proxies shared across all users in a tenant, configure the address in the "Configuration -> Proxy" menu, as shown below:
VI. Service Management
- Linux/macOS
# Start the service
./startup-proxy.sh
# Stop the service
./shutdown-proxy.sh
# View logs
tail -f logs/proxy.log
- Docker
# Start the service
docker start angusproxy
# Stop the service
docker stop angusproxy
# View logs
docker logs angusproxy
- Docker Compose
# 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)
# 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