How To Install Angie Web Server on Ubuntu 24.04 LTS
The modern web server landscape demands performance, security, and flexibility. Angie Web Server emerges as a powerful solution, offering cutting-edge features that surpass traditional web server capabilities. This comprehensive guide walks you through installing Angie on Ubuntu 24.04 LTS, ensuring optimal configuration for production environments.
Web administrators seeking nginx alternatives will find Angie particularly compelling. Built by former nginx core developers, this high-performance web server delivers enhanced functionality while maintaining complete compatibility with existing nginx configurations. The installation process on Ubuntu 24.04 LTS provides a solid foundation for deploying modern web applications with advanced protocol support and monitoring capabilities.
What is Angie Web Server?
Angie represents a significant evolution in web server technology. This efficient, powerful, and scalable web server emerged as a fork from nginx, created by seasoned developers who previously contributed to nginx’s core functionality. The project aims to extend nginx’s capabilities far beyond its original scope while maintaining the reliability and performance characteristics that made nginx popular.
The development team behind Angie focuses on addressing modern web infrastructure challenges. Their approach combines proven nginx architecture with innovative features designed for contemporary deployment scenarios. This strategic development philosophy ensures administrators benefit from both stability and cutting-edge functionality.
Unlike traditional web servers that require extensive third-party modules, Angie incorporates advanced features directly into its core distribution. This integration approach reduces complexity while improving performance and reliability. The result is a web server that handles modern protocols, monitoring requirements, and scalability challenges without additional configuration overhead.
Key Advantages Over Traditional Web Servers
Angie’s feature set significantly exceeds standard nginx capabilities. HTTP/3 support extends to both client connections and proxied server connections, enabling administrators to use different protocol versions independently on opposite connection sides. This flexibility proves invaluable in mixed-protocol environments where legacy systems coexist with modern applications.
Built-in ACME support revolutionizes SSL certificate management by automatically provisioning TLS certificates without external tools. This feature eliminates the complexity traditionally associated with certificate deployment and renewal, significantly reducing administrative overhead while improving security posture.
The integrated RESTful API provides comprehensive server monitoring and configuration capabilities through JSON-formatted interfaces. Administrators can access real-time metrics covering proxied servers, client connections, shared memory zones, and numerous other operational parameters. This native monitoring capability reduces dependency on external monitoring solutions while providing granular visibility into server performance.
System Requirements and Prerequisites
Ubuntu 24.04 LTS provides an excellent foundation for Angie deployment. The long-term support designation ensures stability and security updates for extended periods, making it ideal for production environments. Server administrators benefit from Ubuntu’s extensive package ecosystem and community support while leveraging Angie’s advanced web server capabilities.
Hardware Requirements
Modern web server deployments require adequate system resources to handle concurrent connections and processing demands. Ubuntu 24.04 LTS systems need minimum hardware specifications to ensure smooth operation. The amd64 architecture (64-bit Intel/AMD processors) provides optimal compatibility and performance for Angie installations.
Memory requirements vary based on expected traffic and application complexity. Ubuntu Server installations require at least 1.5 GB RAM, though production environments benefit significantly from 3 GB or more. Angie’s efficient memory utilization means properly configured systems handle substantial traffic loads without excessive resource consumption.
Storage considerations encompass both operating system requirements and web content space. While Ubuntu 24.04 LTS requires minimum 5 GB disk space, production deployments should allocate at least 25 GB to accommodate system updates, logs, and web content. SSD storage provides superior performance for high-traffic scenarios where rapid file access improves response times.
Software Prerequisites and User Access
Successful Angie installation requires appropriate user privileges and system preparation. Administrative access through sudo or root user accounts enables package installation and system configuration. Remote server management typically utilizes SSH connections, requiring proper key-based authentication setup for security.
Basic Linux command-line proficiency ensures smooth installation and configuration processes. Administrators should understand file permissions, service management, and text editing concepts. These foundational skills prove essential when customizing Angie configurations or troubleshooting deployment issues.
Network connectivity enables package downloads and repository access during installation. Stable internet connections prevent installation interruptions and ensure complete package retrieval. Firewall configurations may require adjustment to permit repository access and subsequent web traffic.
Installing Dependencies and Preparing the System
System preparation forms the foundation for successful Angie installation. Beginning with package repository updates ensures access to the latest software versions and security patches. This preliminary step prevents compatibility issues and reduces potential installation complications.
sudo apt update && sudo apt upgrade -y
The update process refreshes package lists from configured repositories, while the upgrade command installs available updates. The -y
flag automatically confirms installation prompts, streamlining the update process. This combined command ensures the system operates with current software versions before proceeding with Angie installation.
Essential Package Installation
Angie installation requires specific packages for repository management and secure communications. Certificate authorities package (ca-certificates) enables secure repository verification, while curl provides reliable file download capabilities. The lsb-release package facilitates automatic distribution detection during repository configuration.
sudo apt install ca-certificates curl lsb-release -y
This installation command retrieves and configures the necessary tools for Angie repository access. Each package serves a specific purpose in the installation workflow. Certificate authorities ensure repository authenticity, curl enables secure file transfers, and lsb-release automates distribution-specific configuration.
Package installation typically completes within minutes, depending on network speed and system performance. Successful completion indicates the system is prepared for repository configuration and Angie installation procedures.
Repository Key Management and Security
Repository security relies on cryptographic key verification to prevent package tampering. Angie’s official signing key authenticates packages and ensures installation integrity. Downloading and installing this key establishes trust relationships between the system and Angie repositories.
sudo curl -o /etc/apt/trusted.gpg.d/angie-signing.gpg https://angie.software/keys/angie-signing.gpg
This command retrieves the Angie signing key from official servers and places it in the system’s trusted key directory. The /etc/apt/trusted.gpg.d/
location ensures APT package manager recognizes and utilizes the key for package verification. Proper key installation prevents security warnings during package installation.
Key verification provides additional security assurance by confirming key authenticity. Advanced administrators may choose to verify key fingerprints against official documentation. This optional step enhances security posture in high-security environments where package authenticity requires additional validation.
Adding Angie Repository and Installing the Web Server
Repository configuration enables APT package manager to locate and install Angie packages. The official Angie repository contains optimized packages for various Ubuntu distributions, including 24.04 LTS. Proper repository configuration ensures access to stable, tested software versions.
echo "deb https://download.angie.software/angie/ubuntu/ $(lsb_release -cs) main" | sudo tee /etc/apt/sources.list.d/angie.list > /dev/null
This command creates a new repository entry specifically for Angie packages. The $(lsb_release -cs)
component automatically detects the Ubuntu distribution codename, ensuring correct package selection. The repository entry directs APT to the official Angie download servers for package retrieval.
Repository addition requires package index updates to incorporate new package information. This refresh process enables APT to locate Angie packages in the newly configured repository.
sudo apt update
The update command retrieves package lists from all configured repositories, including the newly added Angie repository. Successful completion confirms repository accessibility and package availability. Error messages during this step may indicate network connectivity issues or repository configuration problems.
Core Angie Installation Process
Angie installation utilizes standard APT package management procedures. The installation process downloads required packages, resolves dependencies, and configures system services automatically. This streamlined approach minimizes configuration complexity while ensuring proper system integration.
sudo apt install angie -y
The installation command retrieves the Angie package and its dependencies from the configured repository. Dependency resolution ensures all required components are installed and properly configured. The installation process typically completes within several minutes, depending on network speed and system performance.
Package installation creates necessary system users, directories, and configuration files. Default configurations provide functional web server capabilities immediately after installation. Service files enable system-level management through standard Ubuntu service management tools.
Installation verification confirms successful package deployment and system integration. Checking installed package information provides version details and installation status.
dpkg -l | grep angie
This command displays installed packages matching “angie” in their names. Successful installation shows package version, architecture, and installation status. Missing entries may indicate installation failures requiring troubleshooting.
Service Management and Initial Configuration
Angie service management utilizes systemd, Ubuntu’s standard service management system. Systemd provides comprehensive service control capabilities, including startup, shutdown, status monitoring, and automatic restart functionality. Proper service configuration ensures reliable web server operation.
Starting and Enabling Angie Service
Initial service startup activates the Angie web server with default configurations. The systemctl command provides standardized service management across Ubuntu systems.
sudo systemctl start angie
This command initiates the Angie service immediately. Successful startup indicates proper installation and basic configuration validity. Service startup failures may indicate configuration errors or system resource conflicts requiring investigation.
Service enablement configures automatic startup during system boot sequences. This configuration ensures web server availability after system restarts or power failures.
sudo systemctl enable angie
The enable command creates necessary symbolic links for automatic service startup. Boot-time service activation provides continuous web server availability without manual intervention. Production environments particularly benefit from automatic service startup capabilities.
Service Status Verification and Monitoring
Service status monitoring provides real-time operational information and troubleshooting insights. Systemctl status commands display comprehensive service information, including operational state, recent log entries, and process details.
sudo systemctl status angie
Status output includes service state (active, inactive, failed), process identification numbers, memory usage, and recent log messages. Green “active (running)” status indicates successful service operation. Red “failed” status requires investigation and troubleshooting.
Process verification confirms Angie operation at the system level. Multiple commands provide process visibility and resource utilization information.
ps aux | grep angie
sudo netstat -tlnp | grep :80
These commands display running Angie processes and network port utilization. Process listings show memory usage, CPU utilization, and command-line parameters. Network listings confirm port binding and connection listening status.
Troubleshooting Common Service Issues
Service startup failures typically result from configuration errors or resource conflicts. Systemd journal logs provide detailed error information for troubleshooting purposes.
sudo journalctl -u angie -f
This command displays real-time Angie service logs, including startup messages, error conditions, and operational events. The -f
flag follows log output, providing continuous monitoring capabilities. Error messages guide troubleshooting efforts and identify specific configuration issues.
Port conflicts occur when multiple services attempt to bind identical network ports. Default Angie configuration uses ports 80 and 443, which may conflict with existing services.
sudo lsof -i :80
sudo lsof -i :443
These commands identify processes using HTTP and HTTPS ports. Apache or nginx services may require stopping before Angie startup. Service conflicts require resolution through service management or port reconfiguration.
Angie Configuration Deep Dive
Angie configuration follows nginx syntax patterns while incorporating additional directives for enhanced functionality. The primary configuration file resides at /etc/angie/angie.conf
, containing server-wide settings and default behaviors. Configuration directory structure mirrors nginx layouts, facilitating migration from existing nginx deployments.
Configuration File Structure and Organization
Default Angie installation creates a hierarchical configuration structure supporting modular organization. The main configuration file includes additional files from the /etc/angie/conf.d/
directory, enabling component-based configuration management.
sudo ls -la /etc/angie/
This command displays the complete Angie configuration directory structure. Key files include the main configuration (angie.conf
), module configurations, and SSL certificate directories. Understanding this structure facilitates effective configuration management and troubleshooting.
Configuration syntax validation prevents service startup failures caused by syntax errors. Angie provides built-in configuration testing capabilities.
sudo angie -t
The test command validates configuration syntax without starting the service. Successful validation displays “configuration file test is successful” messages. Error messages indicate specific syntax problems requiring correction before service startup.
Virtual Host Configuration and Management
Virtual host configuration enables multiple websites on single server instances. Angie supports both name-based and IP-based virtual hosting methodologies. Server blocks define individual virtual host configurations within the main configuration file or separate include files.
server {
listen 80;
server_name example.com www.example.com;
root /var/www/example.com;
index index.html index.htm;
location / {
try_files $uri $uri/ =404;
}
}
This example demonstrates basic virtual host configuration syntax. The server block defines listening ports, server names, document root directories, and request handling logic. Multiple server blocks enable hosting numerous websites on single Angie instances.
Directory structure creation supports virtual host organization and content management. Proper directory permissions ensure web server access while maintaining security.
sudo mkdir -p /var/www/example.com
sudo chown -R www-data:www-data /var/www/example.com
sudo chmod -R 755 /var/www/example.com
These commands create virtual host directories with appropriate ownership and permissions. The www-data user and group provide standard web server access rights. Directory permissions balance accessibility with security requirements.
SSL/TLS Configuration with Built-in ACME Support
Angie’s integrated ACME support revolutionizes SSL certificate management by automating certificate acquisition and renewal processes. This built-in functionality eliminates external tools while ensuring continuous HTTPS availability.
server {
listen 443 ssl http2;
server_name example.com;
acme {
server https://acme-v02.api.letsencrypt.org/directory;
email admin@example.com;
}
location / {
root /var/www/example.com;
index index.html;
}
}
ACME configuration requires minimal setup while providing comprehensive certificate management. The server directive specifies the ACME provider (typically Let’s Encrypt), while the email parameter enables certificate renewal notifications. Automatic renewal ensures continuous SSL availability without administrative intervention.
Certificate storage follows standard directory conventions within the Angie configuration structure. SSL certificates and private keys reside in protected directories with restricted access permissions.
sudo mkdir -p /etc/ssl/angie/
sudo chmod 700 /etc/ssl/angie/
These commands create secure certificate storage directories with restrictive permissions. Certificate files require protection from unauthorized access while remaining accessible to the Angie service.
Advanced Protocol Support and Optimization
Angie supports modern web protocols including HTTP/3, providing significant performance advantages for compatible clients. HTTP/3 utilization requires specific configuration directives and may necessitate firewall adjustments for UDP traffic.
server {
listen 443 ssl http2;
listen 443 quic;
server_name example.com;
ssl_protocols TLSv1.2 TLSv1.3;
ssl_ciphers HIGH:!aNULL:!MD5;
add_header Alt-Svc 'h3-29=":443"; ma=86400';
location / {
root /var/www/example.com;
index index.html;
}
}
HTTP/3 configuration includes QUIC protocol listeners and alternative service headers. The Alt-Svc header informs compatible clients about HTTP/3 availability, enabling protocol upgrades. SSL configuration ensures secure communication across all supported protocol versions.
Protocol optimization extends beyond basic configuration to include performance tuning parameters. Worker process configuration, connection limits, and buffer sizes impact overall server performance.
worker_processes auto;
worker_connections 1024;
keepalive_timeout 65;
http {
sendfile on;
tcp_nopush on;
tcp_nodelay on;
gzip on;
gzip_vary on;
}
These optimization directives improve server performance under various load conditions. Automatic worker process detection utilizes available CPU cores effectively. Connection and timeout parameters balance resource utilization with client experience requirements.
Firewall Configuration and Security Hardening
Ubuntu 24.04 LTS includes UFW (Uncomplicated Firewall) for simplified firewall management. Angie deployment requires specific port access for HTTP and HTTPS traffic. Proper firewall configuration balances accessibility with security requirements.
Opening Required Network Ports
Web server operation necessitates opening standard HTTP and HTTPS ports for client access. UFW provides straightforward commands for port management and rule configuration.
sudo ufw allow 80/tcp
sudo ufw allow 443/tcp
These commands open ports 80 and 443 for TCP traffic. HTTP traffic utilizes port 80, while HTTPS traffic requires port 443. Both protocols use TCP connections for reliable data transmission. Successful rule addition enables client connections to the web server.
HTTP/3 support requires UDP port 443 access for QUIC protocol functionality. Additional firewall rules accommodate modern protocol requirements.
sudo ufw allow 443/udp
This rule enables QUIC traffic for HTTP/3 connections. UDP protocol requirements differ from traditional TCP-based HTTP communications. Modern browsers utilize HTTP/3 when available, providing performance benefits over HTTP/2.
Firewall status verification confirms rule activation and current configuration state.
sudo ufw status
Status output displays active rules, default policies, and overall firewall state. Inactive firewalls require activation through sudo ufw enable
commands. Active firewalls show configured rules and their current operational status.
Advanced Security Configurations
Production deployments benefit from additional security measures beyond basic firewall rules. Rate limiting prevents abuse while maintaining legitimate user access.
http {
limit_req_zone $binary_remote_addr zone=one:10m rate=1r/s;
server {
location / {
limit_req zone=one burst=5;
root /var/www/html;
}
}
}
Rate limiting configuration creates request zones with specified limits. The example restricts clients to one request per second with burst capabilities for temporary increases. These limits prevent denial-of-service attacks while accommodating normal traffic patterns.
Security headers enhance client-side protection against various web-based attacks. Angie supports comprehensive security header configuration.
add_header X-Frame-Options DENY;
add_header X-Content-Type-Options nosniff;
add_header X-XSS-Protection "1; mode=block";
add_header Strict-Transport-Security "max-age=31536000; includeSubDomains" always;
These headers provide protection against clickjacking, content type confusion, cross-site scripting, and protocol downgrade attacks. Modern browsers utilize these headers to enhance security posture for website visitors.
Testing and Verification Procedures
Installation verification ensures proper Angie deployment and functionality. Multiple testing methods confirm service operation, network accessibility, and content delivery capabilities. Comprehensive testing identifies potential issues before production deployment.
Network Connectivity Testing
Port accessibility verification confirms firewall configuration and service binding. Network testing tools provide comprehensive connectivity analysis.
sudo netstat -tlnp | grep angie
ss -tlnp | grep angie
These commands display active network connections and listening ports associated with Angie processes. Successful output shows port 80 and 443 binding with LISTEN status. Missing entries may indicate service startup failures or configuration errors.
External connectivity testing verifies client access capabilities from outside the server system. Telnet provides basic connection testing for troubleshooting purposes.
telnet localhost 80
telnet localhost 443
Successful connections display connection establishment messages. Failed connections indicate service or firewall configuration issues requiring investigation. External testing from remote systems confirms internet accessibility.
HTTP Response Testing and Validation
Web server response testing validates content delivery and protocol functionality. Command-line tools provide detailed response analysis without browser requirements.
curl -I http://localhost
curl -I https://localhost
These commands retrieve HTTP headers without downloading complete responses. Successful responses include status codes, server identification, and response headers. Status code 200 indicates successful content delivery. Server headers should display “Angie” identification confirming proper installation.
Advanced testing includes protocol version verification and performance analysis.
curl -I --http2 https://localhost
curl -I --http3 https://localhost
Protocol-specific testing confirms HTTP/2 and HTTP/3 functionality when properly configured. These tests require corresponding protocol enablement in Angie configuration files. Successful responses indicate proper protocol support implementation.
Content Deployment and Management
Web content deployment encompasses file management, permission configuration, and directory organization. Angie’s default document root provides initial content hosting capabilities while supporting customization for specific requirements.
Document Root and Directory Structure
Default Angie installation creates standard directory structures for web content hosting. The primary document root resides at /usr/share/angie/html/
containing default welcome pages and example content.
sudo ls -la /usr/share/angie/html/
This command displays default content files and permissions. Standard installations include index.html files and basic styling components. These files provide immediate functionality testing and serve as templates for custom content development.
Production deployments typically utilize custom document root locations for improved organization and security. Common locations include /var/www/html/
or domain-specific directories under /var/www/
.
sudo mkdir -p /var/www/html
sudo chown -R www-data:www-data /var/www/html
sudo chmod -R 755 /var/www/html
These commands create custom document root directories with appropriate ownership and permissions. The www-data user provides standard web server access rights. Directory permissions enable content access while maintaining security boundaries.
File Upload and Content Management
Content deployment methods vary based on server access requirements and deployment workflows. Secure file transfer protocols provide encrypted content uploads for production environments.
scp -r local-content/* user@server:/var/www/html/
rsync -avz local-content/ user@server:/var/www/html/
These commands demonstrate secure content transfer methods. SCP provides straightforward file copying with SSH encryption. Rsync offers advanced synchronization capabilities with bandwidth optimization. Both methods ensure secure content deployment over network connections.
Git-based deployment workflows enable version control integration and automated deployment processes. Repository-based content management provides rollback capabilities and collaboration features.
cd /var/www/html
sudo git clone https://github.com/username/website-content.git .
sudo chown -R www-data:www-data /var/www/html
Git deployment requires repository access configuration and proper permission management. Automated deployment scripts can integrate with continuous integration systems for streamlined content updates.
Angie RESTful API and Monitoring Integration
Angie’s built-in RESTful API provides comprehensive server monitoring and configuration capabilities through JSON-formatted interfaces. API access enables real-time performance monitoring and automated management integration.
server {
listen 8080;
server_name localhost;
location /api/ {
api;
allow 127.0.0.1;
deny all;
}
}
API configuration requires dedicated server blocks with restricted access controls. The example limits API access to localhost connections, preventing unauthorized external access. Production deployments may require authentication mechanisms for enhanced security.
API endpoints provide detailed server statistics including connection counts, request rates, and backend server status information.
curl http://localhost:8080/api/stats
curl http://localhost:8080/api/config
These API calls retrieve comprehensive server statistics and configuration information in JSON format. Response data enables integration with monitoring systems and automated management tools. Regular API polling facilitates proactive performance monitoring and issue detection.
Advanced Features and Performance Optimization
Angie incorporates numerous advanced features that extend beyond traditional web server capabilities. These enhancements address modern infrastructure requirements including session management, caching optimization, and comprehensive monitoring integration.
Session Binding and Load Balancing Enhancements
Session binding capabilities ensure client requests within single sessions route to consistent backend servers. This functionality proves essential for applications requiring server-side session state maintenance.
upstream backend {
server backend1.example.com;
server backend2.example.com;
sticky cookie srv_id expires=1h;
}
server {
location / {
proxy_pass http://backend;
}
}
Sticky session configuration utilizes cookie-based client identification for consistent server routing. The configuration creates session cookies with specified expiration periods. Backend server selection maintains consistency throughout client session duration.
Advanced load balancing includes slow_start capabilities for graceful server reintroduction after maintenance or failures. This feature prevents overwhelming recovered servers with immediate full traffic loads.
upstream backend {
server backend1.example.com slow_start=30s;
server backend2.example.com max_fails=3 fail_timeout=30s;
}
Slow_start parameters specify gradual traffic increase periods after server recovery. Max_fails and fail_timeout directives configure health checking behavior. These parameters ensure robust backend server management and improved application reliability.
Caching and Performance Optimization
Proxy caching configuration significantly improves application performance by reducing backend server load and response times. Angie’s enhanced caching capabilities include cache preservation between service restarts.
proxy_cache_path /var/cache/angie/proxy levels=1:2 keys_zone=web_cache:10m inactive=60m;
server {
location / {
proxy_cache web_cache;
proxy_cache_valid 200 302 10m;
proxy_cache_valid 404 1m;
proxy_pass http://backend;
}
}
Cache configuration defines storage locations, directory structures, and retention policies. Cache zones specify memory allocation for cache metadata management. Cache validity directives determine content retention periods based on HTTP response codes.
Cache preservation functionality maintains cache indexes across service restarts, eliminating cache warming periods. This feature provides immediate performance benefits after service maintenance without cache rebuild delays.
Monitoring and Metrics Export
Prometheus metrics export enables integration with modern monitoring infrastructure. Angie provides comprehensive metrics covering server performance, connection statistics, and backend server health.
server {
listen 9090;
server_name localhost;
location /metrics {
prometheus;
allow 127.0.0.1;
deny all;
}
}
Prometheus endpoint configuration requires dedicated server blocks with appropriate access controls. Metrics export includes standard web server statistics plus Angie-specific enhancements. Integration with Prometheus monitoring systems enables comprehensive infrastructure visibility.
Console Light visual monitoring provides web-based dashboard capabilities for real-time server monitoring. This built-in tool eliminates external monitoring dependencies while providing comprehensive operational insights.
Troubleshooting Common Issues and Solutions
Angie deployment may encounter various issues ranging from configuration errors to network connectivity problems. Systematic troubleshooting approaches identify root causes and implement effective solutions.
Service Startup and Configuration Issues
Configuration syntax errors prevent successful service startup and require careful validation. Angie provides comprehensive syntax checking capabilities for error identification.
sudo angie -T
sudo journalctl -u angie --no-pager -l
These commands provide detailed configuration testing and service log analysis. Configuration testing identifies specific syntax errors with line number references. Service logs reveal startup failures, permission issues, and resource conflicts.
Common configuration errors include missing semicolons, incorrect directive placement, and invalid parameter values. Syntax validation prevents service failures and ensures proper configuration deployment.
Network and Firewall Troubleshooting
Network connectivity issues may result from firewall configurations, port conflicts, or service binding problems. Comprehensive network analysis identifies specific connectivity barriers.
sudo netstat -tlnp | grep :80
sudo ufw status verbose
sudo iptables -L -n
These commands analyze active network connections, firewall rules, and low-level packet filtering. Network diagnostics identify port availability, service binding, and traffic filtering configurations. Systematic analysis resolves connectivity issues and enables proper client access.
Port conflicts occur when multiple services attempt identical port utilization. Service management commands resolve conflicts through service reconfiguration or alternative port assignment.
sudo systemctl stop apache2
sudo systemctl disable apache2
sudo systemctl restart angie
These commands demonstrate conflict resolution by stopping conflicting services. Apache and nginx services commonly conflict with Angie installations. Service management ensures exclusive port access for Angie operation.
Performance and Resource Optimization
Resource utilization monitoring identifies performance bottlenecks and optimization opportunities. System monitoring tools provide comprehensive resource analysis.
top -p $(pgrep angie)
iotop -p $(pgrep angie)
ss -s
These commands monitor CPU usage, disk I/O, and network connection statistics specific to Angie processes. Resource monitoring identifies performance constraints and guides optimization efforts. Regular monitoring enables proactive performance management.
Memory usage optimization includes worker process configuration and connection limit adjustments. Proper sizing prevents resource exhaustion while maximizing server performance.
worker_processes auto;
worker_connections 2048;
worker_rlimit_nofile 8192;
Worker process optimization balances CPU utilization with memory consumption. Connection limits prevent resource exhaustion during traffic spikes. File descriptor limits accommodate high-concurrency scenarios without system limitations.
Security Best Practices and Hardening
Production Angie deployments require comprehensive security measures beyond basic installation procedures. Security hardening encompasses access controls, protocol configurations, and monitoring integration.
Access Control and Authentication
IP-based access restrictions provide fundamental security controls for administrative interfaces and sensitive content. Location blocks enable granular access control implementation.
location /admin/ {
allow 192.168.1.0/24;
allow 10.0.0.0/8;
deny all;
auth_basic "Administrative Area";
auth_basic_user_file /etc/angie/.htpasswd;
}
Access control combines IP filtering with HTTP basic authentication for enhanced security. Allow and deny directives specify permitted client networks. Authentication requirements provide additional access barriers for sensitive areas.
Password file generation utilizes standard tools for credential management.
sudo apt install apache2-utils
sudo htpasswd -c /etc/angie/.htpasswd admin
sudo chown www-data:www-data /etc/angie/.htpasswd
sudo chmod 600 /etc/angie/.htpasswd
These commands create encrypted password files with appropriate permissions. Password files require protection from unauthorized access while remaining accessible to Angie processes. Regular password updates maintain security effectiveness.
SSL/TLS Security Hardening
SSL configuration hardening ensures strong encryption and prevents protocol downgrade attacks. Modern cipher suites and protocol versions provide optimal security posture.
ssl_protocols TLSv1.2 TLSv1.3;
ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-RSA-AES128-SHA256:ECDHE-RSA-AES256-SHA384;
ssl_prefer_server_ciphers on;
ssl_session_cache shared:SSL:10m;
ssl_session_timeout 10m;
SSL hardening configuration eliminates weak protocols and cipher suites while optimizing performance through session caching. Server cipher preference ensures optimal security selection. Session caching reduces computational overhead for repeat connections.
Certificate security includes proper file permissions and renewal automation. Certificate files require protection from unauthorized access.
sudo chmod 600 /etc/ssl/private/server.key
sudo chmod 644 /etc/ssl/certs/server.crt
sudo chown root:root /etc/ssl/private/server.key /etc/ssl/certs/server.crt
These commands set restrictive permissions on certificate files. Private keys require maximum protection while certificates may have broader accessibility. Proper ownership prevents unauthorized certificate access or modification.
Migration from Other Web Servers
Organizations transitioning from Apache or nginx to Angie benefit from compatibility features and migration tools. Angie’s nginx compatibility ensures smooth configuration transitions with minimal modification requirements.
Nginx to Angie Migration
Nginx configuration files typically require minimal modifications for Angie compatibility. Configuration syntax remains consistent while additional features become available for optional utilization.
sudo cp /etc/nginx/nginx.conf /etc/angie/nginx.conf.backup
sudo cp /etc/nginx/sites-available/* /etc/angie/conf.d/
sudo angie -t
Migration procedures include configuration backup, file copying, and syntax validation. Backup creation prevents data loss during migration processes. Syntax testing ensures configuration compatibility before service startup.
Service transition requires careful coordination to prevent downtime. Sequential service management enables smooth transitions.
sudo systemctl stop nginx
sudo systemctl disable nginx
sudo systemctl start angie
sudo systemctl enable angie
These commands demonstrate coordinated service transitions. Nginx service stopping prevents port conflicts while Angie activation provides continuous service availability. Service enabling ensures automatic startup configuration.
Apache to Angie Migration
Apache to Angie migration requires configuration translation due to different syntax structures. Virtual host configurations need conversion to server block formats.
Apache virtual host example:
<VirtualHost *:80>
ServerName example.com
DocumentRoot /var/www/example.com
ErrorLog /var/log/apache2/example.com_error.log
CustomLog /var/log/apache2/example.com_access.log combined
</VirtualHost>
Equivalent Angie configuration:
server {
listen 80;
server_name example.com;
root /var/www/example.com;
access_log /var/log/angie/example.com_access.log;
error_log /var/log/angie/example.com_error.log;
}
Configuration conversion addresses syntax differences while maintaining functionality. Migration tools and documentation assist with complex configuration translations. Testing procedures ensure converted configurations operate correctly.
Congratulations! You have successfully installed Angie. Thanks for using this tutorial for installing the Angie Web Server on Ubuntu 24.04 LTS system. For additional help or useful information, we recommend you check the official Angie website.