Compatibility issue with Cs-cart Varnish add-on

When using the Varnish add-on, ESI, such as logging in and logging out, does not work properly.
I have tried configuring the Cs-cart addon Varnish several times.
Since we are using Ubuntu 22.04 Cloudpanel, Varnish is installed on the server by default.
Because I have done a lot of work, including server transfers, I am confident that there will be no problems with the server configuration.
The reason is that varnish is installed on the server by default, and setting it up in the cs-cart addon is very simple.
varnish runs on port 6081, and default.vcl can be found at docs.cs-cart.com.
Install vcl and restart daemon-reload and varnish.
can turn on the addon by connecting to local host 6081 from the addon.
This action will enable the add-on when the varnish is running, but will not turn on the add-on if the varnish is not running.
Even if the port does not match, the add-on cannot be turned on.

Setting up vhost is simple.
For example:

server {
listen 80;
listen [::]:80;
listen 443 ssl http2;
listen [::]:443 ssl http2;
{{ssl_certificate_key}}
{{ssl_certificate}}
{{ server_name}}
{{root}}

{{nginx_access_log}}
{{nginx_error_log}}

if ($scheme != “https”) {
rewrite ^ https://$host$uri permanent;
}

location ~ /.well-known {
auth_basic off;
allow all;
}

{{settings}}

location / {
{{varnish_proxy_pass}}
proxy_set_header Host $http_host;
proxy_set_header X-Forwarded-Host $http_host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_hide_header X-Varnish;
proxy_redirect off;
proxy_max_temp_file_size 0;
proxy_connect_timeout 720;
proxy_send_timeout 720;
proxy_read_timeout 720;
proxy_buffer_size 128k;
proxy_buffers 4 256k;
proxy_busy_buffers_size 256k;
proxy_temp_file_write_size 256k;
}

location ~* ^.+.(css|js|jpg|jpeg|gif|png|ico|gz|svg|svgz|ttf|otf|woff|woff2|eot|mp4|ogg|ogv|webm|webp|zip|swf|map)$ {
add_header Access-Control-Allow-Origin “*”;
expires max;
access_log off;
}

if (-f $request_filename) {
break;
}
}

server {
listen 8080;
listen [::]:8080;
{{server_name}}
{{root}}

try_files $uri $uri/ /index.php?$args;
index index.php index.html;

location ~ .php$ {
include fastcgi_params;
fastcgi_intercept_errors on;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
try_files $uri =404;
fastcgi_read_timeout 3600;
fastcgi_send_timeout 3600;
fastcgi_param HTTPS “on”;
fastcgi_param SERVER_PORT 443;
fastcgi_pass 127.0.0.1:{{php_fpm_port}};
fastcgi_param PHP_VALUE “{{php_settings}}”;
}

if (-f $request_filename) {
break;
}

I think there is a problem with this addon.
So I tested it on the default version 4.17.1, which has nothing.
I also have the same problem.
I tried modifying vcl several times but it didn’t work.
Does anyone know what to fix?

Hi!

In the configuration provided in our documentation, the configuration for nginx and Varnish are as follows:

If an SSL certificate is used on the server, nginx listens on port 443 for secure connections and acts as a proxy server to 127.0.0.1:80 and listens on port 8080 for insecure connections. Varnish should be set up to listen on port 80 and for the backend point to 127.0.0.1:8080. That looks familiar, doesn’t it?:slight_smile: This is our nginx listening on this port for the insecure connections and passing the processing to PHP.

Try to set up something familiar at your side.

If you look at what I wrote, nginx settings are correct. If the varnish proxy settings are not set properly in nginx, will not be able to access the site. Isn’t that what I’m saying?

Hi,

As cscart_team mentioned , varnish cache always be the entry point that will connect the nginx server access site and cache data.

if you setup varnish as port 80 and backend config port as 8080.
the nignx entry port will be 8080 and ssl port will 443.

varnish proxy setup will set proxy_pass as localhost or localhost ip.

if you follow like above will work.
thanks

hi. thank you for your reply
I don’t think you understood what I meant. :slight_smile:
I don’t have a problem with the server settings.
Server settings are cleared.
What I’m saying is that esi does not work when using cs-cart’s fullpage cache add-on.

20240322_001802

Could you please explain why you think it is not working in your case?

1 Like

In the server environment I described, I installed the basic cs-cart 4.17.1 without any add-ons.
Install the varnish add-on, set the port, and run the add-on.
(The add-on will not turn on if it is not connected to the varnish port.)
If try to log out after logging in, not be logged out.

It is not only the port that needs to be set up, but also the Varnish configuration. Is this one step completed?

of course. I installed the that file here: /etc/varnish/default.vcl.

Unfortunately I don’t have any more guesses to make :frowning:

It worked fine in 4.16.1. Doesn’t work after upgrading to 4.17.1

I solved the problem by adding this to the header:
add_header Cache-Control “no-store, no-cache, must-revalidate”;
Thank you.

1 Like