{"id":20996,"date":"2016-12-12T07:40:48","date_gmt":"2016-12-12T13:40:48","guid":{"rendered":"https:\/\/www.rosehosting.com\/blog\/?p=20996"},"modified":"2022-12-30T06:06:54","modified_gmt":"2022-12-30T12:06:54","slug":"magento-2-with-redis-varnish-and-nginx-as-ssl-termination","status":"publish","type":"post","link":"https:\/\/www.rosehosting.com\/blog\/magento-2-with-redis-varnish-and-nginx-as-ssl-termination\/","title":{"rendered":"Set up Magento 2 with Redis, Varnish and Nginx as SSL termination"},"content":{"rendered":"<div id=\"bsf_rt_marker\"><\/div><p><img decoding=\"async\" class=\"alignnone size-full wp-image-28293\" src=\"https:\/\/www.rosehosting.com\/blog\/wp-content\/uploads\/2016\/12\/magento-2-with-redis-varnish-and-nginx-as-ssl-termination.jpg\" alt=\"magento 2 with redis varnish and nginx as ssl termination\" width=\"742\" height=\"371\" srcset=\"https:\/\/www.rosehosting.com\/blog\/wp-content\/uploads\/2016\/12\/magento-2-with-redis-varnish-and-nginx-as-ssl-termination.jpg 742w, https:\/\/www.rosehosting.com\/blog\/wp-content\/uploads\/2016\/12\/magento-2-with-redis-varnish-and-nginx-as-ssl-termination-150x75.jpg 150w, https:\/\/www.rosehosting.com\/blog\/wp-content\/uploads\/2016\/12\/magento-2-with-redis-varnish-and-nginx-as-ssl-termination-300x150.jpg 300w\" sizes=\"(max-width: 742px) 100vw, 742px\" \/><\/p>\n<p>In this article, we will show you how to install Magento 2 on an Ubuntu 16.04 VPS with MariaDB, PHP-FPM 7.0, Varnish as a full page cache, Nginx as SSL termination and Redis for session storage and page caching.\u00a0 This guide should work on other Linux VPS systems as well but was tested and written for an <a title=\"Ubuntu VPS Hosting\" href=\"https:\/\/www.rosehosting.com\/ubuntu-hosting.html\" target=\"_blank\" rel=\"noopener noreferrer\">Ubuntu 16.04 VPS<\/a>.<\/p>\n<p><!--more--><\/p>\n<div id=\"ez-toc-container\" class=\"ez-toc-v2_0_82_1 counter-hierarchy ez-toc-counter ez-toc-transparent ez-toc-container-direction\">\n<p class=\"ez-toc-title\" style=\"cursor:inherit\">Table of Contents<\/p>\n<label for=\"ez-toc-cssicon-toggle-item-69c3c30c47428\" class=\"ez-toc-cssicon-toggle-label\"><span class=\"ez-toc-cssicon\"><span class=\"eztoc-hide\" style=\"display:none;\">Toggle<\/span><span class=\"ez-toc-icon-toggle-span\"><svg style=\"fill: #999;color:#999\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\" class=\"list-377408\" width=\"20px\" height=\"20px\" viewBox=\"0 0 24 24\" fill=\"none\"><path d=\"M6 6H4v2h2V6zm14 0H8v2h12V6zM4 11h2v2H4v-2zm16 0H8v2h12v-2zM4 16h2v2H4v-2zm16 0H8v2h12v-2z\" fill=\"currentColor\"><\/path><\/svg><svg style=\"fill: #999;color:#999\" class=\"arrow-unsorted-368013\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"10px\" height=\"10px\" viewBox=\"0 0 24 24\" version=\"1.2\" baseProfile=\"tiny\"><path d=\"M18.2 9.3l-6.2-6.3-6.2 6.3c-.2.2-.3.4-.3.7s.1.5.3.7c.2.2.4.3.7.3h11c.3 0 .5-.1.7-.3.2-.2.3-.5.3-.7s-.1-.5-.3-.7zM5.8 14.7l6.2 6.3 6.2-6.3c.2-.2.3-.5.3-.7s-.1-.5-.3-.7c-.2-.2-.4-.3-.7-.3h-11c-.3 0-.5.1-.7.3-.2.2-.3.5-.3.7s.1.5.3.7z\"\/><\/svg><\/span><\/span><\/label><input type=\"checkbox\"  id=\"ez-toc-cssicon-toggle-item-69c3c30c47428\"  aria-label=\"Toggle\" \/><nav><ul class='ez-toc-list ez-toc-list-level-1 ' ><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-1\" href=\"https:\/\/www.rosehosting.com\/blog\/magento-2-with-redis-varnish-and-nginx-as-ssl-termination\/#Login-to-your-VPS-via-SSH\" >Login to your VPS via SSH<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-2\" href=\"https:\/\/www.rosehosting.com\/blog\/magento-2-with-redis-varnish-and-nginx-as-ssl-termination\/#Update-the-system-and-install-necessary-packages\" >Update the system and install necessary packages<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-3\" href=\"https:\/\/www.rosehosting.com\/blog\/magento-2-with-redis-varnish-and-nginx-as-ssl-termination\/#Install-MariaDB-100\" >Install MariaDB 10.0<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-4\" href=\"https:\/\/www.rosehosting.com\/blog\/magento-2-with-redis-varnish-and-nginx-as-ssl-termination\/#Install-PHP-70-composer-and-all-required-PHP-modules\" >Install PHP 7.0, composer and all required PHP modules<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-5\" href=\"https:\/\/www.rosehosting.com\/blog\/magento-2-with-redis-varnish-and-nginx-as-ssl-termination\/#Install-Magento-2-from-Github\" >Install Magento 2 from Github<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-6\" href=\"https:\/\/www.rosehosting.com\/blog\/magento-2-with-redis-varnish-and-nginx-as-ssl-termination\/#Install-and-configure-Nginx\" >Install and configure Nginx<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-7\" href=\"https:\/\/www.rosehosting.com\/blog\/magento-2-with-redis-varnish-and-nginx-as-ssl-termination\/#Install-and-configure-Varnish\" >Install and configure Varnish<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-8\" href=\"https:\/\/www.rosehosting.com\/blog\/magento-2-with-redis-varnish-and-nginx-as-ssl-termination\/#Install-and-configure-Redis-caching\" >Install and configure Redis caching<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-9\" href=\"https:\/\/www.rosehosting.com\/blog\/magento-2-with-redis-varnish-and-nginx-as-ssl-termination\/#Further-Optimizations\" >Further Optimizations<\/a><\/li><\/ul><\/nav><\/div>\n<h2><span class=\"ez-toc-section\" id=\"Login-to-your-VPS-via-SSH\"><\/span>Login to your VPS via SSH<span class=\"ez-toc-section-end\"><\/span><\/h2>\n<pre>ssh my_sudo_user@my_server<\/pre>\n<h2><span class=\"ez-toc-section\" id=\"Update-the-system-and-install-necessary-packages\"><\/span>Update the system and install necessary packages<span class=\"ez-toc-section-end\"><\/span><\/h2>\n<pre>sudo apt-get update &amp;&amp; sudo apt-get -y upgrade\r\nsudo apt-get -y install curl nano git\r\n<\/pre>\n<h2><span class=\"ez-toc-section\" id=\"Install-MariaDB-100\"><\/span>Install MariaDB 10.0<span class=\"ez-toc-section-end\"><\/span><\/h2>\n<p>Install the latest MariaDB 10.0 server from the official Ubuntu repositories:<\/p>\n<pre>sudo apt-get install -y mariadb-server<\/pre>\n<p>When the installation is complete, run the following command to secure your installation:<\/p>\n<pre>mysql_secure_installation<\/pre>\n<p>Next, we need to create a database for our Magento installation.<\/p>\n<pre>mysql -uroot -p<\/pre>\n<pre>MariaDB [(none)]&gt; CREATE DATABASE magento;\r\nMariaDB [(none)]&gt; GRANT ALL PRIVILEGES ON magento.* TO 'magento'@'localhost' IDENTIFIED BY 'my_strong_password';\r\nMariaDB [(none)]&gt; FLUSH PRIVILEGES;\r\nMariaDB [(none)]&gt; \\q<\/pre>\n<h2><span class=\"ez-toc-section\" id=\"Install-PHP-70-composer-and-all-required-PHP-modules\"><\/span>Install PHP 7.0, composer and all required PHP modules<span class=\"ez-toc-section-end\"><\/span><\/h2>\n<p>To install the latest stable version of PHP 7.0 and all necessary modules, run:<\/p>\n<pre>sudo apt-get -y install php-fpm php-cli php-gd php-imagick php-mysql php-mcrypt php-pear php-curl php-intl php-xsl php-zip php-mbstring<\/pre>\n<p>Change few default PHP settings:<\/p>\n<pre>sudo sed -i \"s\/memory_limit = .*\/memory_limit = 256M\/\" \/etc\/php\/7.0\/fpm\/php.ini\r\nsudo sed -i \"s\/upload_max_filesize = .*\/upload_max_filesize = 128M\/\" \/etc\/php\/7.0\/fpm\/php.ini\r\nsudo sed -i \"s\/zlib.output_compression = .*\/zlib.output_compression = on\/\" \/etc\/php\/7.0\/fpm\/php.ini\r\nsudo sed -i \"s\/max_execution_time = .*\/max_execution_time = 18000\/\" \/etc\/php\/7.0\/fpm\/php.ini\r\n<\/pre>\n<p>The composer is a dependency manager for PHP with which you can install packages. The composer will pull in all the required libraries and dependencies you need for your project.<\/p>\n<pre>curl -sS https:\/\/getcomposer.org\/installer | php\r\nsudo mv composer.phar \/usr\/local\/bin\/composer<\/pre>\n<h2><span class=\"ez-toc-section\" id=\"Install-Magento-2-from-Github\"><\/span>Install Magento 2 from Github<span class=\"ez-toc-section-end\"><\/span><\/h2>\n<p>Clone the Magento repository to the <code>~\/myMagentoSite.com<\/code> directory using the following command:<\/p>\n<pre>sudo git clone https:\/\/github.com\/magento\/magento2.git \/var\/www\/myMagentoSite.com<\/pre>\n<p>Get the latest stable release, at the time of the writing it&#8217;s Magento 2.1.2:<\/p>\n<pre>cd \/var\/www\/myMagentoSite.com<\/pre>\n<pre>sudo git checkout $(git describe --tags $(git rev-list --tags --max-count=1))<\/pre>\n<p>Run composer to install all Magento dependencies:<\/p>\n<pre>sudo composer install<\/pre>\n<p>To continue with the installation you can either use the installation wizard or the command line, in this guide we will use the latter.<\/p>\n<pre>sudo bin\/magento setup:install \\\r\n--base-url=http:\/\/myMagentoSite.com\/ \\\r\n--db-host=localhost \\\r\n--db-name=magento \\\r\n--db-user=magento \\\r\n--db-password=my_strong_password \\\r\n--admin-firstname=First  \\\r\n--admin-lastname=Last \\\r\n--admin-email=user@myMagentoSite.com \\\r\n--admin-user=admin \\\r\n--admin-password=my_strong_password123 \\\r\n--language=en_US \\\r\n--currency=USD \\\r\n--timezone=America\/Chicago \\\r\n--use-rewrites=1\r\n<\/pre>\n<p>If the installation is successful you will see something like below:<\/p>\n<pre>[SUCCESS]: Magento installation complete.\r\n[SUCCESS]: Magento Admin URI: \/admin_mejj1n\r\n<\/pre>\n<p>Run the <code>crontab<\/code> command to create a cronjob<\/p>\n<pre>crontab -u www-data -e<\/pre>\n<p>and add the following line:<\/p>\n<pre>* * * * * \/usr\/bin\/php \/var\/www\/myMagentoSite.com\/bin\/magento cron:run | grep -v \"Ran jobs by schedule\" &gt;&gt; \/var\/www\/myMagentoSite.com\/var\/log\/magento.cron.log\r\n<\/pre>\n<p>Finally, set the correct permissions:<\/p>\n<pre>sudo chown -R www-data: \/var\/www\/myMagentoSite.com<\/pre>\n<h2><span class=\"ez-toc-section\" id=\"Install-and-configure-Nginx\"><\/span>Install and configure Nginx<span class=\"ez-toc-section-end\"><\/span><\/h2>\n<p>Install Nginx from the official Ubuntu repositories::<\/p>\n<pre>sudo apt-get -y install nginx<\/pre>\n<p>Create a new Nginx server block with the following content:<\/p>\n<pre>sudo nano \/etc\/nginx\/sites-available\/myMagentoSite.com<\/pre>\n<pre>upstream fastcgi_backend {\r\n  server   unix:\/run\/php\/php7.0-fpm.sock;\r\n}\r\n\r\nserver {\r\n    server_name myMagentoSite.com www.myMagentoSite.com;\r\n    listen 80;\r\n    set $MAGE_ROOT \/var\/www\/myMagentoSite.com;\r\n    set $MAGE_MODE developer; # or production\r\n\r\n    access_log \/var\/log\/nginx\/myMagentoSite.com-access.log;\r\n    error_log \/var\/log\/nginx\/myMagentoSite.com-error.log;\r\n\r\n    include \/var\/www\/myMagentoSite.com\/nginx.conf.sample;        \r\n}\r\n<\/pre>\n<p>Activate the server block by creating a symbolic link :<\/p>\n<pre>sudo ln -s \/etc\/nginx\/sites-available\/myMagentoSite.com \/etc\/nginx\/sites-enabled\/myMagentoSite.com<\/pre>\n<p>Delete the default configuration:<\/p>\n<pre>sudo rm -f \/etc\/nginx\/sites-enabled\/default<\/pre>\n<p>Test the Nginx configuration and restart nginx:<\/p>\n<pre>sudo nginx -t\r\nsudo service nginx restart<\/pre>\n<p>You should be now able to login to your Magento back-end by going to <code>http:\/\/myMagentoSite.com\/admin_mejj1n<\/code> using the information you set when running the <code>bin\/magento setup:install <\/code>. <code><\/code><\/p>\n<h2><span class=\"ez-toc-section\" id=\"Install-and-configure-Varnish\"><\/span>Install and configure Varnish<span class=\"ez-toc-section-end\"><\/span><\/h2>\n<p>Installing Varnish is as simple as running the following command:<\/p>\n<pre>sudo apt-get install varnish<\/pre>\n<p>From your Magento Admin dashboard click on the STORES link (left sidebar) -&gt; Configuration -&gt; ADVANCED -&gt; System -&gt; Full Page Cache<br \/>\nUnselected Use system value and from the Caching Application list, select Varnish Cache (Recommended), save the configuration, click on the Varnish Configuration link and click on the Export VCL for Varnish 4 button. The <code>varnish.vcl<\/code> file which we will use will be exported in the directory <code>\/var\/www\/myMagentoSite.com\/var\/<\/code>.<\/p>\n<p>Flush the Magento cache with:<\/p>\n<pre>sudo php bin\/magento cache:flush<\/pre>\n<p>Delete the <code>\/etc\/varnish\/default.vcl<\/code> and symlink it to the exported varnish configuration.<\/p>\n<pre>sudo rm -f \/etc\/varnish\/default.vcl\r\nsudo ln -sf \/var\/www\/myMagentoSite.com\/var\/varnish.vcl \/etc\/varnish\/default.vcl\r\n<\/pre>\n<p>To change the varnish port from 6081 to 80, we need to edit the systemd service configuration.<\/p>\n<p>Create a new <code>customexec.conf<\/code> file<\/p>\n<pre>sudo mkdir -p \/etc\/systemd\/system\/varnish.service.d\r\nsudo nano \/etc\/systemd\/system\/varnish.service.d\/customexec.conf\r\n<\/pre>\n<p>paste the following:<\/p>\n<pre>[Service]\r\nExecStart=\r\nExecStart=\/usr\/sbin\/varnishd -j unix,user=vcache -F -a :80 -T localhost:6082 -f \/etc\/varnish\/default.vcl -S \/etc\/varnish\/secret -s malloc,256m\r\n<\/pre>\n<p>and reload systemd units<\/p>\n<pre>sudo systemctl daemon-reload<\/pre>\n<p>Now we need to change Nginx listening port from 80 to 8080 and enable Nginx SSL termination with HTTP2, to do that open the Nginx configuration file and change it as follows:<\/p>\n<pre>sudo nano \/etc\/nginx\/sites-available\/myMagentoSite.com<\/pre>\n<pre>upstream fastcgi_backend {\r\n  server   unix:\/run\/php\/php7.0-fpm.sock;\r\n}\r\n\r\nserver {\r\n    server_name myMagentoSite.com www.myMagentoSite.com;\r\n    listen 8080;\r\n    set $MAGE_ROOT \/var\/www\/myMagentoSite.com;\r\n    set $MAGE_MODE production; # or developer\r\n\r\n    access_log \/var\/log\/nginx\/myMagentoSite.com-access.log;\r\n    error_log \/var\/log\/nginx\/myMagentoSite.com-error.log;\r\n\r\n    include \/var\/www\/myMagentoSite.com\/nginx.conf.sample;        \r\n}\r\n\r\nserver {\r\n\r\n    listen 443 ssl http2;\r\n    server_name myMagentoSite.com www.myMagentoSite.com;\r\n\r\n    ssl_certificate \/etc\/ssl\/certs\/ssl-cert-snakeoil.pem; # change with your SSL cert\r\n    ssl_certificate_key \/etc\/ssl\/private\/ssl-cert-snakeoil.key; # change with your SSL key\r\n    ssl_protocols              TLSv1 TLSv1.1 TLSv1.2;\r\n    ssl_ciphers               'AES128+EECDH:AES128+EDH:!aNULL';\r\n    ssl_session_cache    shared:SSL:10m;\r\n    ssl_session_timeout 24h;\r\n    keepalive_timeout 300s;\r\n\r\n    location \/ {\r\n        proxy_pass http:\/\/127.0.0.1;\r\n        proxy_set_header Host $http_host;\r\n        proxy_set_header X-Forwarded-Host $http_host;\r\n        proxy_set_header X-Real-IP $remote_addr;\r\n        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;\r\n        proxy_set_header Ssl-Offloaded \"1\";\r\n        proxy_set_header\u00a0\u00a0\u00a0\u00a0\u00a0 X-Forwarded-Proto https;\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 proxy_set_header\u00a0\u00a0\u00a0\u00a0\u00a0 X-Forwarded-Port 443;\r\n        #proxy_hide_header X-Varnish;\r\n        #proxy_hide_header Via;\r\n        proxy_set_header X-Forwarded-Proto $scheme;\r\n\r\n    }\r\n\r\n}\r\n<\/pre>\n<p>If you don\u2019t already have an SSL certificate, you can <a href=\"https:\/\/www.rosehosting.com\/ssl-certificates.html\">purchase a trusted SSL certificate<\/a>.<\/p>\n<p>Restart Varnish and Nginx:<\/p>\n<pre>sudo systemctl restart nginx\r\nsudo systemctl restart varnish\r\n<\/pre>\n<p>Change the base URL to https and flush the cache<\/p>\n<pre>sudo bin\/magento setup:store-config:set --base-url=\"https:\/\/myMagentoSite.com\"\r\nsudo php bin\/magento cache:flush\r\n<\/pre>\n<p>If everything is setup correctly now you should be able to login to your Magento back-end by going to <code>https:\/\/myMagentoSite.com\/admin_mejj1n<\/code>.<\/p>\n<h2><span class=\"ez-toc-section\" id=\"Install-and-configure-Redis-caching\"><\/span>Install and configure Redis caching<span class=\"ez-toc-section-end\"><\/span><\/h2>\n<p>Redis is<span class=\"st\"> a key-value in memory data store and we will use it to<\/span> replace the default Magento 2 Zend_Cache_Backend_File backend cache.\u00a0 Install Redis by running the following command:<\/p>\n<pre>apt-get install php-redis redis-server<\/pre>\n<p>To configure your Magento installation to use Redis for session storage open the <code>app\/etc\/env.php<\/code> file and change\/add the following:<\/p>\n<pre>sudo nano \/var\/www\/myMagentoSite.com\/app\/etc\/env.php<\/pre>\n<p>change:<\/p>\n<pre>  'session' =&gt;\r\n  array (\r\n    'save' =&gt; 'files',\r\n  ),\r\n<\/pre>\n<p>with:<\/p>\n<pre>'session' =&gt; \r\n   array (\r\n   'save' =&gt; 'redis',\r\n   'redis' =&gt; \r\n      array (\r\n\t'host' =&gt; '127.0.0.1',\r\n\t'port' =&gt; '6379',\r\n\t'password' =&gt; '',\r\n\t'timeout' =&gt; '2.5',\r\n\t'persistent_identifier' =&gt; '',\r\n\t'database' =&gt; '0',\r\n\t'compression_threshold' =&gt; '2048',\r\n\t'compression_library' =&gt; 'gzip',\r\n\t'log_level' =&gt; '1',\r\n\t'max_concurrency' =&gt; '6',\r\n\t'break_after_frontend' =&gt; '5',\r\n\t'break_after_adminhtml' =&gt; '30',\r\n\t'first_lifetime' =&gt; '600',\r\n\t'bot_first_lifetime' =&gt; '60',\r\n\t'bot_lifetime' =&gt; '7200',\r\n\t'disable_locking' =&gt; '0',\r\n\t'min_lifetime' =&gt; '60',\r\n\t'max_lifetime' =&gt; '2592000'\r\n    )\r\n),\r\n<\/pre>\n<p>and to use Redis for page caching add:<\/p>\n<pre>'cache' =&gt;\r\narray(\r\n   'frontend' =&gt;\r\n   array(\r\n      'default' =&gt;\r\n      array(\r\n         'backend' =&gt; 'Cm_Cache_Backend_Redis',\r\n         'backend_options' =&gt;\r\n         array(\r\n            'server' =&gt; '127.0.0.1',\r\n            'port' =&gt; '6379'\r\n            ),\r\n    ),\r\n    'page_cache' =&gt;\r\n    array(\r\n      'backend' =&gt; 'Cm_Cache_Backend_Redis',\r\n      'backend_options' =&gt;\r\n       array(\r\n         'server' =&gt; '127.0.0.1',\r\n         'port' =&gt; '6379',\r\n         'database' =&gt; '1',\r\n         'compress_data' =&gt; '0'\r\n       )\r\n    )\r\n  )\r\n),\r\n<\/pre>\n<p>Finally flush the cache again:<\/p>\n<pre>sudo php bin\/magento cache:flush\r\n<\/pre>\n<h2><span class=\"ez-toc-section\" id=\"Further-Optimizations\"><\/span>Further Optimizations<span class=\"ez-toc-section-end\"><\/span><\/h2>\n<p>To further optimize your Magento installation from you Magento admin dashboard:<\/p>\n<p>1. Go to STORES -&gt; Configuration -&gt; CATALOG -&gt; Catalog -&gt; Use Flat Catalog Category, select Yes and click Save Config.<br \/>\n2. Go to STORES -&gt; Configuration -&gt; ADVANCED -&gt; Developer -&gt; JavaScript Settings and set both Merge JavaScript Files and Minify JavaScript Files to Yes and click Save Config..<br \/>\n3. Go to STORES -&gt; Configuration -&gt; ADVANCED -&gt; Developer -&gt; CSS Settings and set both Merge CSS Files and Minify CSS Files to Yes and click Save Config.<br \/>\n4. Consider using a CDN &#8211; Content Delivery Network<\/p>\n<p>Do not forget to flush the cache:<\/p>\n<pre>sudo php bin\/magento cache:flush\r\n<\/pre>\n<hr \/>\n<p>That\u2019s it. You have successfully installed Magento 2 with Redis as a session storage and page caching, Varnish as a full page caching and Nginx as SSL termination on your Ubuntu 16.04 VPS. For more information about how to manage your Magento installation, please refer to the official <a title=\"Magento\" href=\"http:\/\/devdocs.magento.com\/\" target=\"_blank\" rel=\"noopener noreferrer\">Magento <\/a> documentation.<\/p>\n<hr \/>\n<p>Of course, you don\u2019t have to do any of this if you use one of our <a title=\"linux vps hosting\" href=\"https:\/\/www.rosehosting.com\/magento-hosting.html\" target=\"_blank\" rel=\"noopener noreferrer\">Magento VPS Hosting<\/a> services, in which case you can simply ask our expert Linux admins to setup this for you. They are available 24&#215;7 and will take care of your request immediately.<\/p>\n<p><span style=\"color: #ff0000;\"><strong>PS<\/strong><\/span>. If you liked this post please share it with your friends on the social networks using the buttons on the left or simply leave a reply below. Thanks.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>In this article, we will show you how to install Magento 2 on an Ubuntu 16.04 VPS with MariaDB, PHP-FPM &#8230; <\/p>\n<p class=\"read-more-container\"><a title=\"Set up Magento 2 with Redis, Varnish and Nginx as SSL termination\" class=\"read-more button\" href=\"https:\/\/www.rosehosting.com\/blog\/magento-2-with-redis-varnish-and-nginx-as-ssl-termination\/#more-20996\" aria-label=\"Read more about Set up Magento 2 with Redis, Varnish and Nginx as SSL termination\">Read More<\/a><\/p>\n","protected":false},"author":4,"featured_media":28293,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[1709,1711,1703,13,1707],"tags":[146,375,216,49,433,74,533],"class_list":["post-20996","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-caching","category-e-commerce","category-security","category-tutorials","category-web-servers","tag-cache","tag-ecommerce","tag-magento","tag-nginx","tag-redis","tag-ssl","tag-varnish","generate-columns","tablet-grid-50","mobile-grid-100","grid-parent","grid-33"],"yoast_head":"<!-- This site is optimized with the Yoast SEO Premium plugin v27.2 (Yoast SEO v27.2) - https:\/\/yoast.com\/product\/yoast-seo-premium-wordpress\/ -->\n<title>Set Up Magento 2 With Redis, Varnish and Nginx As SSL Termination<\/title>\n<meta name=\"description\" content=\"This tutorial teaches how to set up Magento 2 with Redis, Varnish and Nginx as SSL Termination. Learn how to set up Magento 2.\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/www.rosehosting.com\/blog\/magento-2-with-redis-varnish-and-nginx-as-ssl-termination\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Set up Magento 2 with Redis, Varnish and Nginx as SSL termination\" \/>\n<meta property=\"og:description\" content=\"Set up Magento 2 with Redis, Varnish and Nginx as SSL termination | RoseHosting\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.rosehosting.com\/blog\/magento-2-with-redis-varnish-and-nginx-as-ssl-termination\/\" \/>\n<meta property=\"og:site_name\" content=\"RoseHosting\" \/>\n<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/RoseHosting\" \/>\n<meta property=\"article:author\" content=\"https:\/\/www.facebook.com\/rosehosting.helpdesk\" \/>\n<meta property=\"article:published_time\" content=\"2016-12-12T13:40:48+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2022-12-30T12:06:54+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/www.rosehosting.com\/blog\/wp-content\/uploads\/2016\/12\/magento-2-with-redis-varnish-and-nginx-as-ssl-termination.jpg\" \/>\n\t<meta property=\"og:image:width\" content=\"742\" \/>\n\t<meta property=\"og:image:height\" content=\"371\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/jpeg\" \/>\n<meta name=\"author\" content=\"Jeff Wilson\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:creator\" content=\"@rosehosting\" \/>\n<meta name=\"twitter:site\" content=\"@rosehosting\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"Jeff Wilson\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"7 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/www.rosehosting.com\/blog\/magento-2-with-redis-varnish-and-nginx-as-ssl-termination\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/www.rosehosting.com\/blog\/magento-2-with-redis-varnish-and-nginx-as-ssl-termination\/\"},\"author\":{\"name\":\"Jeff Wilson\",\"@id\":\"https:\/\/www.rosehosting.com\/blog\/#\/schema\/person\/7ce77a842fa6a9a7f8efa186f2353713\"},\"headline\":\"Set up Magento 2 with Redis, Varnish and Nginx as SSL termination\",\"datePublished\":\"2016-12-12T13:40:48+00:00\",\"dateModified\":\"2022-12-30T12:06:54+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/www.rosehosting.com\/blog\/magento-2-with-redis-varnish-and-nginx-as-ssl-termination\/\"},\"wordCount\":840,\"commentCount\":72,\"publisher\":{\"@id\":\"https:\/\/www.rosehosting.com\/blog\/#organization\"},\"image\":{\"@id\":\"https:\/\/www.rosehosting.com\/blog\/magento-2-with-redis-varnish-and-nginx-as-ssl-termination\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/www.rosehosting.com\/blog\/wp-content\/uploads\/2016\/12\/magento-2-with-redis-varnish-and-nginx-as-ssl-termination.jpg\",\"keywords\":[\"cache\",\"eCommerce\",\"magento\",\"nginx\",\"redis\",\"ssl\",\"varnish\"],\"articleSection\":[\"Caching\",\"E-Commerce\",\"Security\",\"Tutorials\",\"Web Servers\"],\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\/\/www.rosehosting.com\/blog\/magento-2-with-redis-varnish-and-nginx-as-ssl-termination\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/www.rosehosting.com\/blog\/magento-2-with-redis-varnish-and-nginx-as-ssl-termination\/\",\"url\":\"https:\/\/www.rosehosting.com\/blog\/magento-2-with-redis-varnish-and-nginx-as-ssl-termination\/\",\"name\":\"Set Up Magento 2 With Redis, Varnish and Nginx As SSL Termination\",\"isPartOf\":{\"@id\":\"https:\/\/www.rosehosting.com\/blog\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\/\/www.rosehosting.com\/blog\/magento-2-with-redis-varnish-and-nginx-as-ssl-termination\/#primaryimage\"},\"image\":{\"@id\":\"https:\/\/www.rosehosting.com\/blog\/magento-2-with-redis-varnish-and-nginx-as-ssl-termination\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/www.rosehosting.com\/blog\/wp-content\/uploads\/2016\/12\/magento-2-with-redis-varnish-and-nginx-as-ssl-termination.jpg\",\"datePublished\":\"2016-12-12T13:40:48+00:00\",\"dateModified\":\"2022-12-30T12:06:54+00:00\",\"description\":\"This tutorial teaches how to set up Magento 2 with Redis, Varnish and Nginx as SSL Termination. Learn how to set up Magento 2.\",\"breadcrumb\":{\"@id\":\"https:\/\/www.rosehosting.com\/blog\/magento-2-with-redis-varnish-and-nginx-as-ssl-termination\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/www.rosehosting.com\/blog\/magento-2-with-redis-varnish-and-nginx-as-ssl-termination\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/www.rosehosting.com\/blog\/magento-2-with-redis-varnish-and-nginx-as-ssl-termination\/#primaryimage\",\"url\":\"https:\/\/www.rosehosting.com\/blog\/wp-content\/uploads\/2016\/12\/magento-2-with-redis-varnish-and-nginx-as-ssl-termination.jpg\",\"contentUrl\":\"https:\/\/www.rosehosting.com\/blog\/wp-content\/uploads\/2016\/12\/magento-2-with-redis-varnish-and-nginx-as-ssl-termination.jpg\",\"width\":742,\"height\":371,\"caption\":\"magento 2 with redis varnish and nginx as ssl termination\"},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/www.rosehosting.com\/blog\/magento-2-with-redis-varnish-and-nginx-as-ssl-termination\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/www.rosehosting.com\/blog\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Set up Magento 2 with Redis, Varnish and Nginx as SSL termination\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/www.rosehosting.com\/blog\/#website\",\"url\":\"https:\/\/www.rosehosting.com\/blog\/\",\"name\":\"RoseHosting.com\",\"description\":\"Premium Linux Tutorials Since 2001\",\"publisher\":{\"@id\":\"https:\/\/www.rosehosting.com\/blog\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/www.rosehosting.com\/blog\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"},{\"@type\":\"Organization\",\"@id\":\"https:\/\/www.rosehosting.com\/blog\/#organization\",\"name\":\"RoseHosting\",\"url\":\"https:\/\/www.rosehosting.com\/blog\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/www.rosehosting.com\/blog\/#\/schema\/logo\/image\/\",\"url\":\"https:\/\/www.rosehosting.com\/blog\/wp-content\/uploads\/2022\/03\/android-chrome-192x192-1.png\",\"contentUrl\":\"https:\/\/www.rosehosting.com\/blog\/wp-content\/uploads\/2022\/03\/android-chrome-192x192-1.png\",\"width\":192,\"height\":192,\"caption\":\"RoseHosting\"},\"image\":{\"@id\":\"https:\/\/www.rosehosting.com\/blog\/#\/schema\/logo\/image\/\"},\"sameAs\":[\"https:\/\/www.facebook.com\/RoseHosting\",\"https:\/\/x.com\/rosehosting\",\"https:\/\/www.linkedin.com\/in\/rosehosting\/\"],\"description\":\"RoseHosting is a leading Linux hosting provider, serving thousands of clients world-wide since 2001.\",\"email\":\"info@rosehosting.com\",\"telephone\":\"(314) 275-0414\",\"legalName\":\"Rose Web Services LLC\",\"foundingDate\":\"2001-04-02\",\"numberOfEmployees\":{\"@type\":\"QuantitativeValue\",\"minValue\":\"11\",\"maxValue\":\"50\"}},{\"@type\":\"Person\",\"@id\":\"https:\/\/www.rosehosting.com\/blog\/#\/schema\/person\/7ce77a842fa6a9a7f8efa186f2353713\",\"name\":\"Jeff Wilson\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/secure.gravatar.com\/avatar\/0985fed6af04cc60703d2ecf27c65dfa373e0ca00eb21c0b03477e099ea3f99f?s=96&r=g\",\"url\":\"https:\/\/secure.gravatar.com\/avatar\/0985fed6af04cc60703d2ecf27c65dfa373e0ca00eb21c0b03477e099ea3f99f?s=96&r=g\",\"contentUrl\":\"https:\/\/secure.gravatar.com\/avatar\/0985fed6af04cc60703d2ecf27c65dfa373e0ca00eb21c0b03477e099ea3f99f?s=96&r=g\",\"caption\":\"Jeff Wilson\"},\"description\":\"An experienced Linux veteran with many years of experience. Helping other Linux admins with frequent Linux and business-related blog posts on the RoseHosting blog. Techie by choice. Loving nature and travel. Happily married and father of two lovely children.\",\"sameAs\":[\"https:\/\/www.rosehosting.com\",\"https:\/\/www.facebook.com\/rosehosting.helpdesk\"],\"url\":\"https:\/\/www.rosehosting.com\/blog\/author\/jwilson\/\"}]}<\/script>\n<!-- \/ Yoast SEO Premium plugin. -->","yoast_head_json":{"title":"Set Up Magento 2 With Redis, Varnish and Nginx As SSL Termination","description":"This tutorial teaches how to set up Magento 2 with Redis, Varnish and Nginx as SSL Termination. Learn how to set up Magento 2.","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/www.rosehosting.com\/blog\/magento-2-with-redis-varnish-and-nginx-as-ssl-termination\/","og_locale":"en_US","og_type":"article","og_title":"Set up Magento 2 with Redis, Varnish and Nginx as SSL termination","og_description":"Set up Magento 2 with Redis, Varnish and Nginx as SSL termination | RoseHosting","og_url":"https:\/\/www.rosehosting.com\/blog\/magento-2-with-redis-varnish-and-nginx-as-ssl-termination\/","og_site_name":"RoseHosting","article_publisher":"https:\/\/www.facebook.com\/RoseHosting","article_author":"https:\/\/www.facebook.com\/rosehosting.helpdesk","article_published_time":"2016-12-12T13:40:48+00:00","article_modified_time":"2022-12-30T12:06:54+00:00","og_image":[{"width":742,"height":371,"url":"https:\/\/www.rosehosting.com\/blog\/wp-content\/uploads\/2016\/12\/magento-2-with-redis-varnish-and-nginx-as-ssl-termination.jpg","type":"image\/jpeg"}],"author":"Jeff Wilson","twitter_card":"summary_large_image","twitter_creator":"@rosehosting","twitter_site":"@rosehosting","twitter_misc":{"Written by":"Jeff Wilson","Est. reading time":"7 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/www.rosehosting.com\/blog\/magento-2-with-redis-varnish-and-nginx-as-ssl-termination\/#article","isPartOf":{"@id":"https:\/\/www.rosehosting.com\/blog\/magento-2-with-redis-varnish-and-nginx-as-ssl-termination\/"},"author":{"name":"Jeff Wilson","@id":"https:\/\/www.rosehosting.com\/blog\/#\/schema\/person\/7ce77a842fa6a9a7f8efa186f2353713"},"headline":"Set up Magento 2 with Redis, Varnish and Nginx as SSL termination","datePublished":"2016-12-12T13:40:48+00:00","dateModified":"2022-12-30T12:06:54+00:00","mainEntityOfPage":{"@id":"https:\/\/www.rosehosting.com\/blog\/magento-2-with-redis-varnish-and-nginx-as-ssl-termination\/"},"wordCount":840,"commentCount":72,"publisher":{"@id":"https:\/\/www.rosehosting.com\/blog\/#organization"},"image":{"@id":"https:\/\/www.rosehosting.com\/blog\/magento-2-with-redis-varnish-and-nginx-as-ssl-termination\/#primaryimage"},"thumbnailUrl":"https:\/\/www.rosehosting.com\/blog\/wp-content\/uploads\/2016\/12\/magento-2-with-redis-varnish-and-nginx-as-ssl-termination.jpg","keywords":["cache","eCommerce","magento","nginx","redis","ssl","varnish"],"articleSection":["Caching","E-Commerce","Security","Tutorials","Web Servers"],"inLanguage":"en-US","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/www.rosehosting.com\/blog\/magento-2-with-redis-varnish-and-nginx-as-ssl-termination\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/www.rosehosting.com\/blog\/magento-2-with-redis-varnish-and-nginx-as-ssl-termination\/","url":"https:\/\/www.rosehosting.com\/blog\/magento-2-with-redis-varnish-and-nginx-as-ssl-termination\/","name":"Set Up Magento 2 With Redis, Varnish and Nginx As SSL Termination","isPartOf":{"@id":"https:\/\/www.rosehosting.com\/blog\/#website"},"primaryImageOfPage":{"@id":"https:\/\/www.rosehosting.com\/blog\/magento-2-with-redis-varnish-and-nginx-as-ssl-termination\/#primaryimage"},"image":{"@id":"https:\/\/www.rosehosting.com\/blog\/magento-2-with-redis-varnish-and-nginx-as-ssl-termination\/#primaryimage"},"thumbnailUrl":"https:\/\/www.rosehosting.com\/blog\/wp-content\/uploads\/2016\/12\/magento-2-with-redis-varnish-and-nginx-as-ssl-termination.jpg","datePublished":"2016-12-12T13:40:48+00:00","dateModified":"2022-12-30T12:06:54+00:00","description":"This tutorial teaches how to set up Magento 2 with Redis, Varnish and Nginx as SSL Termination. Learn how to set up Magento 2.","breadcrumb":{"@id":"https:\/\/www.rosehosting.com\/blog\/magento-2-with-redis-varnish-and-nginx-as-ssl-termination\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.rosehosting.com\/blog\/magento-2-with-redis-varnish-and-nginx-as-ssl-termination\/"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.rosehosting.com\/blog\/magento-2-with-redis-varnish-and-nginx-as-ssl-termination\/#primaryimage","url":"https:\/\/www.rosehosting.com\/blog\/wp-content\/uploads\/2016\/12\/magento-2-with-redis-varnish-and-nginx-as-ssl-termination.jpg","contentUrl":"https:\/\/www.rosehosting.com\/blog\/wp-content\/uploads\/2016\/12\/magento-2-with-redis-varnish-and-nginx-as-ssl-termination.jpg","width":742,"height":371,"caption":"magento 2 with redis varnish and nginx as ssl termination"},{"@type":"BreadcrumbList","@id":"https:\/\/www.rosehosting.com\/blog\/magento-2-with-redis-varnish-and-nginx-as-ssl-termination\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/www.rosehosting.com\/blog\/"},{"@type":"ListItem","position":2,"name":"Set up Magento 2 with Redis, Varnish and Nginx as SSL termination"}]},{"@type":"WebSite","@id":"https:\/\/www.rosehosting.com\/blog\/#website","url":"https:\/\/www.rosehosting.com\/blog\/","name":"RoseHosting.com","description":"Premium Linux Tutorials Since 2001","publisher":{"@id":"https:\/\/www.rosehosting.com\/blog\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/www.rosehosting.com\/blog\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":"Organization","@id":"https:\/\/www.rosehosting.com\/blog\/#organization","name":"RoseHosting","url":"https:\/\/www.rosehosting.com\/blog\/","logo":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.rosehosting.com\/blog\/#\/schema\/logo\/image\/","url":"https:\/\/www.rosehosting.com\/blog\/wp-content\/uploads\/2022\/03\/android-chrome-192x192-1.png","contentUrl":"https:\/\/www.rosehosting.com\/blog\/wp-content\/uploads\/2022\/03\/android-chrome-192x192-1.png","width":192,"height":192,"caption":"RoseHosting"},"image":{"@id":"https:\/\/www.rosehosting.com\/blog\/#\/schema\/logo\/image\/"},"sameAs":["https:\/\/www.facebook.com\/RoseHosting","https:\/\/x.com\/rosehosting","https:\/\/www.linkedin.com\/in\/rosehosting\/"],"description":"RoseHosting is a leading Linux hosting provider, serving thousands of clients world-wide since 2001.","email":"info@rosehosting.com","telephone":"(314) 275-0414","legalName":"Rose Web Services LLC","foundingDate":"2001-04-02","numberOfEmployees":{"@type":"QuantitativeValue","minValue":"11","maxValue":"50"}},{"@type":"Person","@id":"https:\/\/www.rosehosting.com\/blog\/#\/schema\/person\/7ce77a842fa6a9a7f8efa186f2353713","name":"Jeff Wilson","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/secure.gravatar.com\/avatar\/0985fed6af04cc60703d2ecf27c65dfa373e0ca00eb21c0b03477e099ea3f99f?s=96&r=g","url":"https:\/\/secure.gravatar.com\/avatar\/0985fed6af04cc60703d2ecf27c65dfa373e0ca00eb21c0b03477e099ea3f99f?s=96&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/0985fed6af04cc60703d2ecf27c65dfa373e0ca00eb21c0b03477e099ea3f99f?s=96&r=g","caption":"Jeff Wilson"},"description":"An experienced Linux veteran with many years of experience. Helping other Linux admins with frequent Linux and business-related blog posts on the RoseHosting blog. Techie by choice. Loving nature and travel. Happily married and father of two lovely children.","sameAs":["https:\/\/www.rosehosting.com","https:\/\/www.facebook.com\/rosehosting.helpdesk"],"url":"https:\/\/www.rosehosting.com\/blog\/author\/jwilson\/"}]}},"_links":{"self":[{"href":"https:\/\/www.rosehosting.com\/blog\/wp-json\/wp\/v2\/posts\/20996","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.rosehosting.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.rosehosting.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.rosehosting.com\/blog\/wp-json\/wp\/v2\/users\/4"}],"replies":[{"embeddable":true,"href":"https:\/\/www.rosehosting.com\/blog\/wp-json\/wp\/v2\/comments?post=20996"}],"version-history":[{"count":4,"href":"https:\/\/www.rosehosting.com\/blog\/wp-json\/wp\/v2\/posts\/20996\/revisions"}],"predecessor-version":[{"id":44617,"href":"https:\/\/www.rosehosting.com\/blog\/wp-json\/wp\/v2\/posts\/20996\/revisions\/44617"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.rosehosting.com\/blog\/wp-json\/wp\/v2\/media\/28293"}],"wp:attachment":[{"href":"https:\/\/www.rosehosting.com\/blog\/wp-json\/wp\/v2\/media?parent=20996"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.rosehosting.com\/blog\/wp-json\/wp\/v2\/categories?post=20996"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.rosehosting.com\/blog\/wp-json\/wp\/v2\/tags?post=20996"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}