Repository: digitalocean/nginxconfig.io
File: src/nginxconfig/generators/conf/nginx.conf.js (JavaScript)

Code before:
            logging.push('$http_cf_connecting_ip');
        }

        if (global.logging.xForwardedFor.computed) {
            logging.push('$http_x_forwarded_for');
        }

        if (global.logging.xForwardedProto.computed) {
            logging.push('$http_x_forwarded_proto');
        }

        if (global.logging.trueClientIp.computed) {
            logging.push('$http_true_client_ip');
        }

        if (global.logging.cfIpCountry.computed) {
            logging.push('$http_cf_ipcountry');
        }

        if (global.logging.cfVisitor.computed) {
            logging.push('$http_cf_visitor');
        }

        if (global.logging.cdnLoop.computed) {
            logging.push('$http_cdn_loop');
        }

        if (logging.length) {
            config.http.push(['log_format', `cloudflare '${logging.join(' ')}'`]);
        }
    }

    config.http.push(['# Logging', '']);
    config.http.push(['access_log', (global.logging.accessLog.computed.trim() + (global.logging.cloudflare.computed ? ' cloudflare' : '')) || 'off']);
    config.http.push(['error_log', global.logging.errorLog.computed.trim() || '/dev/null']);

    if (global.security.limitReq.computed) {
        config.http.push(['# Limits', '']);
        config.http.push(['limit_req_log_level', 'warn']);
        config.http.push(['limit_req_zone', '$binary_remote_addr zone=login:10m rate=10r/m']);
    }

    // HTTPS
    let hasHttps = false;
    for (const domain of domains) {
        if (domain && domain.https && domain.https.https && domain.https.https.computed) {
            hasHttps = true;
            break;
        }
    }
    if (hasHttps) {

Review comment (suggestion):
```suggestion
        if (global.logging.cdnLoop.computed)
            logging.push('$http_cdn_loop');
```

Code after:

        if (global.logging.xForwardedFor.computed)
            logging.push('$http_x_forwarded_for');

        if (global.logging.xForwardedProto.computed)
            logging.push('$http_x_forwarded_proto');

        if (global.logging.trueClientIp.computed)
            logging.push('$http_true_client_ip');

        if (global.logging.cfIpCountry.computed)
            logging.push('$http_cf_ipcountry');

        if (global.logging.cfVisitor.computed)
            logging.push('$http_cf_visitor');

        if (global.logging.cdnLoop.computed)
            logging.push('$http_cdn_loop');

        config.http.push(['log_format', `cloudflare '${logging.join(' ')}'`]);
    }

    config.http.push(['# Logging', '']);
    config.http.push(['access_log', (global.logging.accessLog.computed.trim() + (global.logging.cloudflare.computed ? ' cloudflare' : '')) || 'off']);
    config.http.push(['error_log', global.logging.errorLog.computed.trim() || '/dev/null']);

    if (global.security.limitReq.computed) {
        config.http.push(['# Limits', '']);
        config.http.push(['limit_req_log_level', 'warn']);
        config.http.push(['limit_req_zone', '$binary_remote_addr zone=login:10m rate=10r/m']);
    }

    // HTTPS
    let hasHttps = false;
    for (const domain of domains) {
        if (domain && domain.https && domain.https.https && domain.https.https.computed) {
            hasHttps = true;
            break;
        }
    }
    if (hasHttps) {
        config.http.push(['# SSL', '']);
        config.http.push(['ssl_session_timeout', '1d']);
        config.http.push(['ssl_session_cache', 'shared:SSL:10m']);
        config.http.push(['ssl_session_tickets', 'off']);

        const sslProfile = sslProfiles[global.https.sslProfile.computed];
        if (sslProfile) {
            if (sslProfile.dh_param_size) {
                config.http.push(['# Diffie-Hellman parameter for DHE ciphersuites', '']);
                config.http.push(['ssl_dhparam', `${global.nginx.nginxConfigDirectory.computed.replace(/\/+$/, '')}/dhparam.pem`]);