Install Magento 2 and Varnish on separate server

The name of the pictureThe name of the pictureThe name of the pictureClash Royale CLAN TAG#URR8PPP











up vote
0
down vote

favorite
1












I have Two Server One which have install magento 2 (ip - 129.89.188.244 port 80) and Varnish on other server (ip - 129.89.188.245 port 80)



My Vranish Configuration :



File /etc/default/varnish:-



DAEMON_OPTS="-a :80 
-T 127.0.0.1:6082
-b 129.89.188.244:80
-f /etc/varnish/default.vcl
-S /etc/varnish/secret
-s malloc,256m"


netstat -tulpn :-



tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN 1288/sshd 
tcp 0 0 127.0.0.1:6082 0.0.0.0:* LISTEN 11115/varnishd
tcp 0 0 0.0.0.0:80 0.0.0.0:* LISTEN 11115/varnishd
tcp6 0 0 :::22 :::* LISTEN 1288/sshd
tcp6 0 0 :::80 :::* LISTEN 11115/varnishd


/etc/varnish/default.vcl : -



# VCL version 5.0 is not supported so it should be 4.0 even though actually used Varnish version is 5
vcl 4.0;

import std;
# The minimal Varnish version is 5.0
# For SSL offloading, pass the following header in your proxy server or load balancer: 'X-Forwarded-Proto: https'

backend default
.host = "129.89.188.244";
.port = "80";
.first_byte_timeout = 600s;
.probe =
.url = "/pub/health_check.php";
.timeout = 2s;
.interval = 5s;
.window = 10;
.threshold = 5;



acl purge
"129.89.188.245";
"127.0.0.1";
"localhost";


sub vcl_recv
if (req.method == "PURGE")
if (client.ip !~ purge)
return (synth(405, "Method not allowed"));

# To use the X-Pool header for purging varnish during automated deployments, make sure the X-Pool header
# has been added to the response in your backend server config. This is used, for example, by the
# capistrano-magento2 gem for purging old content from varnish during it's deploy routine.
if (!req.http.X-Magento-Tags-Pattern && !req.http.X-Pool)
return (synth(400, "X-Magento-Tags-Pattern or X-Pool header required"));

if (req.http.X-Magento-Tags-Pattern)
ban("obj.http.X-Magento-Tags ~ " + req.http.X-Magento-Tags-Pattern);

if (req.http.X-Pool)
ban("obj.http.X-Pool ~ " + req.http.X-Pool);

return (synth(200, "Purged"));


if (req.method != "GET" &&
req.method != "HEAD" &&
req.method != "PUT" &&
req.method != "POST" &&
req.method != "TRACE" &&
req.method != "OPTIONS" &&
req.method != "DELETE")
/* Non-RFC2616 or CONNECT which is weird. */
return (pipe);


# We only deal with GET and HEAD by default
if (req.method != "GET" && req.method != "HEAD")
return (pass);


# Bypass shopping cart, checkout and search requests
if (req.url ~ "/checkout"

sub vcl_hash
if (req.http.cookie ~ "X-Magento-Vary=")
hash_data(regsub(req.http.cookie, "^.*?X-Magento-Vary=([^;]+);*.*$", "1"));


# For multi site configurations to not cache each other's content
if (req.http.host)
hash_data(req.http.host);
else
hash_data(server.ip);


# To make sure http users don't see ssl warning
if (req.http.X-Forwarded-Proto)
hash_data(req.http.X-Forwarded-Proto);




sub vcl_backend_response
beresp.http.Surrogate-control ~ "no-store"

sub vcl_deliver static)/")
set resp.http.Pragma = "no-cache";
set resp.http.Expires = "-1";
set resp.http.Cache-Control = "no-store, no-cache, must-revalidate, max-age=0";


unset resp.http.X-Magento-Debug;
unset resp.http.X-Magento-Tags;
unset resp.http.X-Powered-By;
unset resp.http.Server;
unset resp.http.X-Varnish;
unset resp.http.Via;
unset resp.http.Link;


sub vcl_hit
if (obj.ttl >= 0s)
# Hit within TTL period
return (deliver);

if (std.healthy(req.backend_hint))
if (obj.ttl + 300s > 0s)
# Hit after TTL expiration, but within grace period
set req.http.grace = "normal (healthy server)";
return (deliver);
else
# Hit after TTL and grace expiration
return (miss);

else
# server is not healthy, retrieve from cache
set req.http.grace = "unlimited (unhealthy server)";
return (deliver);




Now issue is when i open url :- 129.89.188.244 magento open but it's not getting from varnish but when i call varnish url :- 129.89.188.245 it will redirect to my magento url (129.89.188.244). in my varnish log page already cache but magento not using that page from varnish. If any help it's really appreciate.







share|improve this question
























    up vote
    0
    down vote

    favorite
    1












    I have Two Server One which have install magento 2 (ip - 129.89.188.244 port 80) and Varnish on other server (ip - 129.89.188.245 port 80)



    My Vranish Configuration :



    File /etc/default/varnish:-



    DAEMON_OPTS="-a :80 
    -T 127.0.0.1:6082
    -b 129.89.188.244:80
    -f /etc/varnish/default.vcl
    -S /etc/varnish/secret
    -s malloc,256m"


    netstat -tulpn :-



    tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN 1288/sshd 
    tcp 0 0 127.0.0.1:6082 0.0.0.0:* LISTEN 11115/varnishd
    tcp 0 0 0.0.0.0:80 0.0.0.0:* LISTEN 11115/varnishd
    tcp6 0 0 :::22 :::* LISTEN 1288/sshd
    tcp6 0 0 :::80 :::* LISTEN 11115/varnishd


    /etc/varnish/default.vcl : -



    # VCL version 5.0 is not supported so it should be 4.0 even though actually used Varnish version is 5
    vcl 4.0;

    import std;
    # The minimal Varnish version is 5.0
    # For SSL offloading, pass the following header in your proxy server or load balancer: 'X-Forwarded-Proto: https'

    backend default
    .host = "129.89.188.244";
    .port = "80";
    .first_byte_timeout = 600s;
    .probe =
    .url = "/pub/health_check.php";
    .timeout = 2s;
    .interval = 5s;
    .window = 10;
    .threshold = 5;



    acl purge
    "129.89.188.245";
    "127.0.0.1";
    "localhost";


    sub vcl_recv
    if (req.method == "PURGE")
    if (client.ip !~ purge)
    return (synth(405, "Method not allowed"));

    # To use the X-Pool header for purging varnish during automated deployments, make sure the X-Pool header
    # has been added to the response in your backend server config. This is used, for example, by the
    # capistrano-magento2 gem for purging old content from varnish during it's deploy routine.
    if (!req.http.X-Magento-Tags-Pattern && !req.http.X-Pool)
    return (synth(400, "X-Magento-Tags-Pattern or X-Pool header required"));

    if (req.http.X-Magento-Tags-Pattern)
    ban("obj.http.X-Magento-Tags ~ " + req.http.X-Magento-Tags-Pattern);

    if (req.http.X-Pool)
    ban("obj.http.X-Pool ~ " + req.http.X-Pool);

    return (synth(200, "Purged"));


    if (req.method != "GET" &&
    req.method != "HEAD" &&
    req.method != "PUT" &&
    req.method != "POST" &&
    req.method != "TRACE" &&
    req.method != "OPTIONS" &&
    req.method != "DELETE")
    /* Non-RFC2616 or CONNECT which is weird. */
    return (pipe);


    # We only deal with GET and HEAD by default
    if (req.method != "GET" && req.method != "HEAD")
    return (pass);


    # Bypass shopping cart, checkout and search requests
    if (req.url ~ "/checkout"

    sub vcl_hash
    if (req.http.cookie ~ "X-Magento-Vary=")
    hash_data(regsub(req.http.cookie, "^.*?X-Magento-Vary=([^;]+);*.*$", "1"));


    # For multi site configurations to not cache each other's content
    if (req.http.host)
    hash_data(req.http.host);
    else
    hash_data(server.ip);


    # To make sure http users don't see ssl warning
    if (req.http.X-Forwarded-Proto)
    hash_data(req.http.X-Forwarded-Proto);




    sub vcl_backend_response
    beresp.http.Surrogate-control ~ "no-store"

    sub vcl_deliver static)/")
    set resp.http.Pragma = "no-cache";
    set resp.http.Expires = "-1";
    set resp.http.Cache-Control = "no-store, no-cache, must-revalidate, max-age=0";


    unset resp.http.X-Magento-Debug;
    unset resp.http.X-Magento-Tags;
    unset resp.http.X-Powered-By;
    unset resp.http.Server;
    unset resp.http.X-Varnish;
    unset resp.http.Via;
    unset resp.http.Link;


    sub vcl_hit
    if (obj.ttl >= 0s)
    # Hit within TTL period
    return (deliver);

    if (std.healthy(req.backend_hint))
    if (obj.ttl + 300s > 0s)
    # Hit after TTL expiration, but within grace period
    set req.http.grace = "normal (healthy server)";
    return (deliver);
    else
    # Hit after TTL and grace expiration
    return (miss);

    else
    # server is not healthy, retrieve from cache
    set req.http.grace = "unlimited (unhealthy server)";
    return (deliver);




    Now issue is when i open url :- 129.89.188.244 magento open but it's not getting from varnish but when i call varnish url :- 129.89.188.245 it will redirect to my magento url (129.89.188.244). in my varnish log page already cache but magento not using that page from varnish. If any help it's really appreciate.







    share|improve this question






















      up vote
      0
      down vote

      favorite
      1









      up vote
      0
      down vote

      favorite
      1






      1





      I have Two Server One which have install magento 2 (ip - 129.89.188.244 port 80) and Varnish on other server (ip - 129.89.188.245 port 80)



      My Vranish Configuration :



      File /etc/default/varnish:-



      DAEMON_OPTS="-a :80 
      -T 127.0.0.1:6082
      -b 129.89.188.244:80
      -f /etc/varnish/default.vcl
      -S /etc/varnish/secret
      -s malloc,256m"


      netstat -tulpn :-



      tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN 1288/sshd 
      tcp 0 0 127.0.0.1:6082 0.0.0.0:* LISTEN 11115/varnishd
      tcp 0 0 0.0.0.0:80 0.0.0.0:* LISTEN 11115/varnishd
      tcp6 0 0 :::22 :::* LISTEN 1288/sshd
      tcp6 0 0 :::80 :::* LISTEN 11115/varnishd


      /etc/varnish/default.vcl : -



      # VCL version 5.0 is not supported so it should be 4.0 even though actually used Varnish version is 5
      vcl 4.0;

      import std;
      # The minimal Varnish version is 5.0
      # For SSL offloading, pass the following header in your proxy server or load balancer: 'X-Forwarded-Proto: https'

      backend default
      .host = "129.89.188.244";
      .port = "80";
      .first_byte_timeout = 600s;
      .probe =
      .url = "/pub/health_check.php";
      .timeout = 2s;
      .interval = 5s;
      .window = 10;
      .threshold = 5;



      acl purge
      "129.89.188.245";
      "127.0.0.1";
      "localhost";


      sub vcl_recv
      if (req.method == "PURGE")
      if (client.ip !~ purge)
      return (synth(405, "Method not allowed"));

      # To use the X-Pool header for purging varnish during automated deployments, make sure the X-Pool header
      # has been added to the response in your backend server config. This is used, for example, by the
      # capistrano-magento2 gem for purging old content from varnish during it's deploy routine.
      if (!req.http.X-Magento-Tags-Pattern && !req.http.X-Pool)
      return (synth(400, "X-Magento-Tags-Pattern or X-Pool header required"));

      if (req.http.X-Magento-Tags-Pattern)
      ban("obj.http.X-Magento-Tags ~ " + req.http.X-Magento-Tags-Pattern);

      if (req.http.X-Pool)
      ban("obj.http.X-Pool ~ " + req.http.X-Pool);

      return (synth(200, "Purged"));


      if (req.method != "GET" &&
      req.method != "HEAD" &&
      req.method != "PUT" &&
      req.method != "POST" &&
      req.method != "TRACE" &&
      req.method != "OPTIONS" &&
      req.method != "DELETE")
      /* Non-RFC2616 or CONNECT which is weird. */
      return (pipe);


      # We only deal with GET and HEAD by default
      if (req.method != "GET" && req.method != "HEAD")
      return (pass);


      # Bypass shopping cart, checkout and search requests
      if (req.url ~ "/checkout"

      sub vcl_hash
      if (req.http.cookie ~ "X-Magento-Vary=")
      hash_data(regsub(req.http.cookie, "^.*?X-Magento-Vary=([^;]+);*.*$", "1"));


      # For multi site configurations to not cache each other's content
      if (req.http.host)
      hash_data(req.http.host);
      else
      hash_data(server.ip);


      # To make sure http users don't see ssl warning
      if (req.http.X-Forwarded-Proto)
      hash_data(req.http.X-Forwarded-Proto);




      sub vcl_backend_response
      beresp.http.Surrogate-control ~ "no-store"

      sub vcl_deliver static)/")
      set resp.http.Pragma = "no-cache";
      set resp.http.Expires = "-1";
      set resp.http.Cache-Control = "no-store, no-cache, must-revalidate, max-age=0";


      unset resp.http.X-Magento-Debug;
      unset resp.http.X-Magento-Tags;
      unset resp.http.X-Powered-By;
      unset resp.http.Server;
      unset resp.http.X-Varnish;
      unset resp.http.Via;
      unset resp.http.Link;


      sub vcl_hit
      if (obj.ttl >= 0s)
      # Hit within TTL period
      return (deliver);

      if (std.healthy(req.backend_hint))
      if (obj.ttl + 300s > 0s)
      # Hit after TTL expiration, but within grace period
      set req.http.grace = "normal (healthy server)";
      return (deliver);
      else
      # Hit after TTL and grace expiration
      return (miss);

      else
      # server is not healthy, retrieve from cache
      set req.http.grace = "unlimited (unhealthy server)";
      return (deliver);




      Now issue is when i open url :- 129.89.188.244 magento open but it's not getting from varnish but when i call varnish url :- 129.89.188.245 it will redirect to my magento url (129.89.188.244). in my varnish log page already cache but magento not using that page from varnish. If any help it's really appreciate.







      share|improve this question












      I have Two Server One which have install magento 2 (ip - 129.89.188.244 port 80) and Varnish on other server (ip - 129.89.188.245 port 80)



      My Vranish Configuration :



      File /etc/default/varnish:-



      DAEMON_OPTS="-a :80 
      -T 127.0.0.1:6082
      -b 129.89.188.244:80
      -f /etc/varnish/default.vcl
      -S /etc/varnish/secret
      -s malloc,256m"


      netstat -tulpn :-



      tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN 1288/sshd 
      tcp 0 0 127.0.0.1:6082 0.0.0.0:* LISTEN 11115/varnishd
      tcp 0 0 0.0.0.0:80 0.0.0.0:* LISTEN 11115/varnishd
      tcp6 0 0 :::22 :::* LISTEN 1288/sshd
      tcp6 0 0 :::80 :::* LISTEN 11115/varnishd


      /etc/varnish/default.vcl : -



      # VCL version 5.0 is not supported so it should be 4.0 even though actually used Varnish version is 5
      vcl 4.0;

      import std;
      # The minimal Varnish version is 5.0
      # For SSL offloading, pass the following header in your proxy server or load balancer: 'X-Forwarded-Proto: https'

      backend default
      .host = "129.89.188.244";
      .port = "80";
      .first_byte_timeout = 600s;
      .probe =
      .url = "/pub/health_check.php";
      .timeout = 2s;
      .interval = 5s;
      .window = 10;
      .threshold = 5;



      acl purge
      "129.89.188.245";
      "127.0.0.1";
      "localhost";


      sub vcl_recv
      if (req.method == "PURGE")
      if (client.ip !~ purge)
      return (synth(405, "Method not allowed"));

      # To use the X-Pool header for purging varnish during automated deployments, make sure the X-Pool header
      # has been added to the response in your backend server config. This is used, for example, by the
      # capistrano-magento2 gem for purging old content from varnish during it's deploy routine.
      if (!req.http.X-Magento-Tags-Pattern && !req.http.X-Pool)
      return (synth(400, "X-Magento-Tags-Pattern or X-Pool header required"));

      if (req.http.X-Magento-Tags-Pattern)
      ban("obj.http.X-Magento-Tags ~ " + req.http.X-Magento-Tags-Pattern);

      if (req.http.X-Pool)
      ban("obj.http.X-Pool ~ " + req.http.X-Pool);

      return (synth(200, "Purged"));


      if (req.method != "GET" &&
      req.method != "HEAD" &&
      req.method != "PUT" &&
      req.method != "POST" &&
      req.method != "TRACE" &&
      req.method != "OPTIONS" &&
      req.method != "DELETE")
      /* Non-RFC2616 or CONNECT which is weird. */
      return (pipe);


      # We only deal with GET and HEAD by default
      if (req.method != "GET" && req.method != "HEAD")
      return (pass);


      # Bypass shopping cart, checkout and search requests
      if (req.url ~ "/checkout"

      sub vcl_hash
      if (req.http.cookie ~ "X-Magento-Vary=")
      hash_data(regsub(req.http.cookie, "^.*?X-Magento-Vary=([^;]+);*.*$", "1"));


      # For multi site configurations to not cache each other's content
      if (req.http.host)
      hash_data(req.http.host);
      else
      hash_data(server.ip);


      # To make sure http users don't see ssl warning
      if (req.http.X-Forwarded-Proto)
      hash_data(req.http.X-Forwarded-Proto);




      sub vcl_backend_response
      beresp.http.Surrogate-control ~ "no-store"

      sub vcl_deliver static)/")
      set resp.http.Pragma = "no-cache";
      set resp.http.Expires = "-1";
      set resp.http.Cache-Control = "no-store, no-cache, must-revalidate, max-age=0";


      unset resp.http.X-Magento-Debug;
      unset resp.http.X-Magento-Tags;
      unset resp.http.X-Powered-By;
      unset resp.http.Server;
      unset resp.http.X-Varnish;
      unset resp.http.Via;
      unset resp.http.Link;


      sub vcl_hit
      if (obj.ttl >= 0s)
      # Hit within TTL period
      return (deliver);

      if (std.healthy(req.backend_hint))
      if (obj.ttl + 300s > 0s)
      # Hit after TTL expiration, but within grace period
      set req.http.grace = "normal (healthy server)";
      return (deliver);
      else
      # Hit after TTL and grace expiration
      return (miss);

      else
      # server is not healthy, retrieve from cache
      set req.http.grace = "unlimited (unhealthy server)";
      return (deliver);




      Now issue is when i open url :- 129.89.188.244 magento open but it's not getting from varnish but when i call varnish url :- 129.89.188.245 it will redirect to my magento url (129.89.188.244). in my varnish log page already cache but magento not using that page from varnish. If any help it's really appreciate.









      share|improve this question











      share|improve this question




      share|improve this question










      asked Mar 16 at 5:18









      Dhaval Bhavsar

      1062




      1062

























          active

          oldest

          votes











          Your Answer







          StackExchange.ready(function()
          var channelOptions =
          tags: "".split(" "),
          id: "106"
          ;
          initTagRenderer("".split(" "), "".split(" "), channelOptions);

          StackExchange.using("externalEditor", function()
          // Have to fire editor after snippets, if snippets enabled
          if (StackExchange.settings.snippets.snippetsEnabled)
          StackExchange.using("snippets", function()
          createEditor();
          );

          else
          createEditor();

          );

          function createEditor()
          StackExchange.prepareEditor(
          heartbeatType: 'answer',
          convertImagesToLinks: false,
          noModals: false,
          showLowRepImageUploadWarning: true,
          reputationToPostImages: null,
          bindNavPrevention: true,
          postfix: "",
          onDemand: true,
          discardSelector: ".discard-answer"
          ,immediatelyShowMarkdownHelp:true
          );



          );








           

          draft saved


          draft discarded


















          StackExchange.ready(
          function ()
          StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2funix.stackexchange.com%2fquestions%2f430553%2finstall-magento-2-and-varnish-on-separate-server%23new-answer', 'question_page');

          );

          Post as a guest



































          active

          oldest

          votes













          active

          oldest

          votes









          active

          oldest

          votes






          active

          oldest

          votes










           

          draft saved


          draft discarded


























           


          draft saved


          draft discarded














          StackExchange.ready(
          function ()
          StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2funix.stackexchange.com%2fquestions%2f430553%2finstall-magento-2-and-varnish-on-separate-server%23new-answer', 'question_page');

          );

          Post as a guest













































































          Popular posts from this blog

          How to check contact read email or not when send email to Individual?

          Displaying single band from multi-band raster using QGIS

          How many registers does an x86_64 CPU actually have?