how use varnish with SSL (HTTPS) in directadmin :

1. Install NGINX+Apache+php-fpm

2. Install Varnish 6

download :
http://varnish-cache.org/
https://packagecloud.io/varnishcache

Code:
yum install epel-release
yum install varnish
3. change ram usage :

in file : /etc/varnish/varnish.params
default is 256m

4. Copy files :

/usr/local/directadmin/data/templates/nginx_server.conf
/usr/local/directadmin/data/templates/nginx_server_sub.conf
/usr/local/directadmin/data/templates/nginx_server_secure.conf
/usr/local/directadmin/data/templates/nginx_server_secure_sub.conf

to folder :

/usr/local/directadmin/data/templates/custom/

Modify the files in folder :

/usr/local/directadmin/data/templates/custom/

in files : nginx_server.conf & nginx_server_sub.conf changes is :

Code:
proxy_pass http://|IP|:|PORT_8080|;
to

Code:
proxy_pass http://|IP|:6081;
and in files : nginx_server_secure.conf & nginx_server_secure_sub.conf changes is :

Code:
proxy_pass http://|IP|:|PORT_8081|;
proxy_set_header X-Client-IP      $remote_addr;
proxy_set_header X-Accel-Internal /nginx_static_files;
proxy_set_header Host             $host;
proxy_set_header X-Forwarded-For  $proxy_add_x_forwarded_for;
proxy_hide_header Upgrade;
to

Code:
proxy_pass http://|IP|:6081;
proxy_set_header X-Real-IP  $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
proxy_set_header X-Forwarded-Port 443;
proxy_set_header Host $host;
6. Rewrite nginx virtual hosts: (ssh code)

Code:
echo "action=rewrite&value=nginx" >> /usr/local/directadmin/data/task.queue
/usr/local/directadmin/dataskq
7. restart PHP & APACHE & NGINX & VARNISH and enable chkconfig varnish

in centos 6 : (for example php 7.2 = php-fpm72 )

Code:
service php-fpm72 restart
service httpd restart
service nginx restart
service varnish restart
chkconfig --add varnish
chkconfig varnish on


in centos 7 : (for example php 7.2 = php-fpm72 )


Code:
systemctl restart php-fpm72
systemctl restart httpd
systemctl restart nginx
systemctl restart varnish
systemctl enable varnish

8. for loop errors in some cms :

in wordpress : (for use https)

insert this code in file wp-config.php : (above of "/* That's all, stop editing! Happy blogging. */ " )

Code:
if (isset($_SERVER['HTTP_X_FORWARDED_PROTO']) && $_SERVER['HTTP_X_FORWARDED_PROTO'] == 'https')
 $_SERVER['HTTPS']='on';
in magento : (for use https)

Add this to your the Magento .htaccess file located in your docroot

Code:
SetEnvIf X-Forwarded-Proto https HTTPS=on
9. test working :

Code:
curl -I https://yoursite.com
you should see: "via: 1.1 varnish (Varnish/6.0)"


enjoy speed


if you want to remove varnish :

remove this files :

/usr/local/directadmin/data/templates/custom/nginx_server.conf
/usr/local/directadmin/data/templates/custom/nginx_server_sub.conf
/usr/local/directadmin/data/templates/custom/nginx_server_secure.conf
/usr/local/directadmin/data/templates/custom/nginx_server_secure_sub.conf


and rewrite virtual hosts:

Code:
echo "action=rewrite&value=nginx" >> /usr/local/directadmin/data/task.queue
/usr/local/directadmin/dataskq
in centos 6 :

Code:
service php-fpm72 restart
service httpd restart
service nginx restart


in centos 7 :

Code:
systemctl restart php-fpm72
systemctl restart httpd
systemctl restart nginx
Code:
yum remove varnish