Support » Plugin: WP-FFPC » "http" directive is not allowed

  • WP-FFPC is a real magic and I feel David Blaine is serving the pages!!!
    WP-FFPC with memcached via PHP is so fast but I’m trying to load cached files with Nginx instead of PHP to save more resources. Replacing default .conf file with generated one in plugin page gives me this error:
    “http” directive is not allowed here in /etc …. .conf:1

    http {
    
    	# memcached servers, generated according to wp-ffpc config
    	upstream memcached-servers {
    		server 127.0.0.1:11211;
    
    	}
    
    	# PHP-FPM upstream; change it accordingly to your local config!
    	upstream php-fpm {
    		server 127.0.0.1:9000;
    	}
    
    	server {
    		## Listen ports
    		listen 80;
    		listen [::]:80;
    
    		# use _ if you want to accept everything, or replace _ with domain
    		server_name _;
    
    		# root of WordPress
    		root /srv/users/serverpilot/apps/webpaper/public/;
    
    		# set up logging
    		access_log /var/log/nginx/webpaper.ir.access.log;
    		error_log /var/log/nginx/webpaper.ir.error.log;
    
    		## PHP5-FPM
    		location ~ (\.php) {
    			# these settings are usually in fastcgi_params
    
    			fastcgi_index                           index.php;
    			fastcgi_connect_timeout                 10;
    			fastcgi_send_timeout                    180;
    			fastcgi_read_timeout                    180;
    			fastcgi_buffer_size                     512k;
    			fastcgi_buffers                         4       256k;
    			fastcgi_busy_buffers_size               512k;
    			fastcgi_temp_file_write_size            512k;
    			fastcgi_intercept_errors                on;
    			fastcgi_split_path_info ^(.+\.php)(/.*)$;
    			fastcgi_keep_conn			on;
    
    			fastcgi_param	QUERY_STRING			$query_string;
    			fastcgi_param	REQUEST_METHOD			$request_method;
    			fastcgi_param	CONTENT_TYPE			$content_type;
    			fastcgi_param	CONTENT_LENGTH			$content_length;
    			fastcgi_param	SCRIPT_FILENAME			$document_root$fastcgi_script_name;
    			fastcgi_param	SCRIPT_NAME				$fastcgi_script_name;
    			fastcgi_param	REQUEST_URI				$request_uri;
    			fastcgi_param	DOCUMENT_URI			$document_uri;
    			fastcgi_param	DOCUMENT_ROOT			$document_root;
    			fastcgi_param	SERVER_PROTOCOL			$server_protocol;
    			fastcgi_param	GATEWAY_INTERFACE		CGI/1.1;
    			fastcgi_param	SERVER_SOFTWARE			nginx;
    			fastcgi_param	REMOTE_ADDR				$remote_addr;
    			fastcgi_param	REMOTE_PORT				$remote_port;
    			fastcgi_param	SERVER_ADDR				$server_addr;
    			fastcgi_param	SERVER_PORT				$server_port;
    			fastcgi_param	SERVER_NAME				$server_name;
    			fastcgi_param	PATH_INFO				$fastcgi_path_info;
    			fastcgi_param	PATH_TRANSLATED			$document_root$fastcgi_path_info;
    			fastcgi_param	REDIRECT_STATUS			200;
    
    			# uncomment these for HTTPS usage
    			#fastcgi_param	HTTPS					$https if_not_empty;
    			#fastcgi_param	SSL_PROTOCOL			$ssl_protocol if_not_empty;
    			#fastcgi_param	SSL_CIPHER				$ssl_cipher if_not_empty;
    			#fastcgi_param	SSL_SESSION_ID			$ssl_session_id if_not_empty;
    			#fastcgi_param	SSL_CLIENT_VERIFY		$ssl_client_verify if_not_empty;
    
    			fastcgi_pass php-fpm;
    		}
    
    		location / {
    			try_files $uri $uri/ @memcached;
    		}
    
    		# try to get result from memcached
    		location @memcached {
    				default_type text/html;
    				set $memcached_key data-$scheme://$host$request_uri;
    				set $memcached_request 1;
    
    				# exceptions
    				# avoid cache serve of POST requests
    				if ($request_method = POST ) {
    						set $memcached_request 0;
    				}
    
    				# avoid cache serve of wp-admin-like pages, starting with "wp-"
    				if ( $uri ~ "/wp-" ) {
    						set $memcached_request 0;
    				}
    
    				# avoid cache serve of any URL with query strings
    				if ( $args ) {
    					set $memcached_request 0;
    				}
    
    				if ($http_cookie ~* "comment_author_|wordpressuser_|wp-postpass_|wordpress_logged_in_" ) {
    					set $memcached_request 0;
    				}
    
    				if ( $memcached_request = 1) {
    						add_header X-Cache-Engine "WP-FFPC with memcached via nginx";
    						memcached_pass memcached-servers;
    						error_page 404 = @rewrites;
    				}
    
    				if ( $memcached_request = 0) {
    						rewrite ^ /index.php last;
    				}
    		}
    
    		## rewrite rules
    		location @rewrites {
    				add_header X-Cache-Engine "";
    				rewrite ^ /index.php last;
    		}
    
    	}
    }

    https://wordpress.org/plugins/wp-ffpc/

Viewing 3 replies - 1 through 3 (of 3 total)
  • Plugin Author petermolnar

    (@cadeyrn)

    That is not a full config file, just a snippet; http is the start of the whole http block, you’re probably duplicating it.

    Thread Starter Mohsen Ghiasi Ravari

    (@mohsengham)

    Current config file:

    server {
        listen       80;
        listen       [::]:80;
        server_name
            webpaper.ir
            www.webpaper.ir
          ;
    
        root   /srv/users/serverpilot/apps/webpaper/public;
    
        access_log  /srv/users/serverpilot/log/webpaper/webpaper_nginx.access.log  main;
        error_log  /srv/users/serverpilot/log/webpaper/webpaper_nginx.error.log;
    
        proxy_set_header    Host              $host;
        proxy_set_header    X-Real-IP         $remote_addr;
        proxy_set_header    X-Forwarded-For   $proxy_add_x_forwarded_for;
    
        include /etc/nginx-sp/vhosts.d/webpaper.d/*.nonssl_conf;
        include /etc/nginx-sp/vhosts.d/webpaper.d/*.conf;
    }

    Please help me put the snippet in right place.

    Justin Samuel

    (@justin-serverpilot)

    It looks like you’re using ServerPilot. In order to correctly customize your nginx vhost files, take a look at the ServerPilot documentation here:

    https://serverpilot.io/community/articles/customize-nginx-settings.html

Viewing 3 replies - 1 through 3 (of 3 total)
  • The topic ‘"http" directive is not allowed’ is closed to new replies.