MAx Web Server version 1.3-13 delivers important bug fixes for conversion issues and behavioral differences between Apache and NGINX configurations.
This update addresses production issues that were causing conversion failures and incorrect behavior after Apache-to-NGINX migration.
To guide our work, the development team now uses production metrics to identify and prioritize compatibility improvements. Our methodology focuses on ensuring that site behavior remains identical between Apache and NGINX.
Fixes for Production Issues
Contents
The development team has resolved several issues that were causing failures and incorrect behavior in production environments.
RewriteCond Pattern Processing
Quoted RewriteCond patterns are now processed correctly, fixing WAF rules, user-agent detection, and security configurations after conversion.
RewriteRule [L] Flag Behavior
NGINX now mimics Apache’s [L] (Last rule) flag behavior, stopping rule processing at the appropriate point.
Data-Driven Development
Production Usage Analytics
The team has implemented tracking of unsupported Apache flags in production environments, which gives us direct insight into real-world usage patterns:
Most Frequently Encountered Unsupported Flags:
- QSA flag: Query String Append functionality (highest priority for implementation)
- T flag: Content-Type manipulation
- NE flag: No Escape functionality
- END flag: End processing directive
With this approach we can prioritize features that will have the greatest impact on real-world conversion success rates.
Configuration Processing Improvements
PHP Processing Location handling ensures that header directives within <Files> blocks work correctly while maintaining proper PHP execution.
Configuration Generation
Complex Apache configurations now generate NGINX map statements, improving performance for sites with intricate rewrite logic.
Apache Compatibility
Directive Support
Variable Name Validation: Fixed NGINX configuration errors caused by literal dollar signs ($) in redirects and headers.
Unicode Character Processing: Resolved parsing errors related to Unicode patterns in FilesMatch directives like “.(eot|otf|ttf|woff|woff2)”.
Empty Substitution Rules: Added support for RewriteRules with flags but no replacement patterns, commonly used in WordPress and other CMS configurations.
File and Directory Handling
Implementation of Apache’s file existence checking:
- RewriteCond %{REQUEST_FILENAME} -f (file exists)
- RewriteCond %{REQUEST_FILENAME} -d (directory exists)
- RewriteCond %{REQUEST_FILENAME} !-f (file does not exist)
- RewriteCond %{REQUEST_FILENAME} !-d (directory does not exist)
All variations now work correctly for both single and multiple conditions.
System Integration and Monitoring: cPanel Integration
Suspended Page Handling: Fixed cases where suspended cPanel accounts displayed 500 errors instead of proper suspension pages.
HTTP Health Checks: Updated validation logic now compares status codes before and after conversion.
Legacy Directive Support
Added support for legacy directives:
- substitutemaxlinelength: Content substitution length limits
- suphp_configpath: SuPHP configuration path handling
Recommended Latest Versions
Update to the following package versions:
- max_webserver-1.3-13
- ea-nginx-1.26.3-6.cloudlinux.2
- ea-nginx-mod-apache-compat-1.0-4
The complete changelog is available at changelog.cloudlinux.com/max_webserver
Looking Forward
The goal remains achieving 100% successful conversion from Apache to NGINX. The team is targeting Q3 2025 to move MAx Web Server into production status.
MAx Web Server continues to be available free with CloudLinux OS and receives regular updates. For installation instructions and technical documentation, visit docs.cloudlinux.com/cloudlinuxos/max_webserver/.