HIPAA Compliant Cloud Hosting

What is: Networking Basics – Switches, Routers, and Firewalls

Target Audience

This article is intended for those looking for a primer on basic networking terms and concepts.


Switches, routers, and firewalls are electronic devices used to build data networks. They serve as essential components of the Internet, ferrying information rapidly from one computer to the next. In many commercial networks, a separate piece of hardware handles each of these functions. For small office/home office use, the switch, router, and firewall are typically combined into one convenient, low-cost unit.


A switch connects multiple computers and mobile devices together into a local network.

It serves as a central point through which computers on that local network communicate with each other. A switch can handle simultaneous connections between dozens of computers, with no connection interfering with any other. However, a switch cannot connect to other networks by itself–it requires a router to communicate with other networks.

A network is a group of computers that exchange data. Networks may be simple, such as a home office with PCs and mobile devices, or they may be large and complex, like the Internet.

Read More

Quarter of all Websites Use WordPress

WordPress is extraordinarily popular, and that’s only becoming truer over time as it now backs one out of four websites. In celebration, WordPress.com gets a makeover.

  • Huge Milestone in WordPress Growth
  • Admin Interface Released
  • New Script in Town
  • One-Click WordPress Cloud Hosting

Huge Milestone in WordPress Growth

One out of every four websites that are currently online were developed using WordPress, according to an analysis released earlier this month by W3Techs. It’s behind 25% of all sites, representing 59% of the ones that use a content management system.

Read More

What is: Web Analytics – A Beginner’s Guide

Target Audience

This article is a good starting point for website administrators wanting to learn about Web Analytics and some tools and methods for seeing how their sites perform.


Traffic — it’s one thing nearly all website owners want. How can you tell if your site is thriving or anemic? Web analytics has the answers. When checked regularly, web analytics provides crucial feedback, giving you clear numbers that gauge the effectiveness of your site.

Web-based Reporting

Most web analytics software comes in the form of a web-based dashboard or control panel. By selecting options on a form in your browser, you can obtain a variety of reports that show the kinds of traffic your site has had. Since the analytics software is web-based, you can check on your site’s activity from nearly any Internet-connected PC or mobile device. Many of the reports have graphics that chart activity by time or geographic location.

Examples of analytic software include Google Analytics, Advanced Web Statistics, and Clicky. Many hosting providers also bundle an analytics program with their cloud hosting service.

Types of Web Analytics Software


Log File

The server that hosts your website has a log file that keeps track of every page it delivers. Among other information, the log records the date and time, the page requested, and the IP address of the requester. In addition to pages, log files keep track of graphics, PDFs, video and other files sent. A typical log file might contain thousands to millions of records–raw data that by itself makes for dull reading, but some analytics software can use it to generate highly-detailed, accurate reports.

Page Tagging

The page tagging approach to web analytics dispenses with log files, relying instead on programming code embedded in the pages themselves. The code passes data to an analytics server that logs the site’s activity in its own database. Page tagging can track information not found in the log file, such as items purchased or JavaScript buttons clicked. Because it doesn’t depend on the log file (which may be inaccessible to website administrators in some hosted environments), page tagging allows greater choice in analytics software. A possible downside to page tagging is slower website response time. The extra code may invoke lookups to additional domains, which can add to the load time of a page.

Web Analytics Metics


Quantifying Traffic

When a visitor goes to your website, that visitor’s browser requests files from your site’s server, and the server serves the requested files in response. Each request is called a hit–a hit counting as one page, graphic, or other content. A visit to a single page, then, involves the file for the page itself and any other files the page code refers to (scripts, images, videos, etc.). One page request may result in multiple hits per page. A single user session spanning many pages can generate hundreds or thousands of hits. Although hits are a significant number in web analytics, their ability to indicate traffic is somewhat vague. To give reports more detail, analytics software uses the visitor’s IP address or a data token called a cookie. All of a user’s hits are tied to this identifier, so analytics software can sort visits by this identifier and track the number of unique visitors per day, week, or month.

Web Analytics: A Beginner's Guide : Hits and Unique Visitors

Hits and Unique Visitors


Page Statistics

Analytics software also generates statistics showing you which pages are most popular and those that see little traffic. This information is essential when you’re checking the effectiveness of a marketing campaign, for example; a spike in a page’s hit numbers can mean more people found it.

Geographic Statistics

The IP address can also indicate a visitor’s general geographic region, giving you a broad idea, for example, how much of your site’s traffic came from the US, Japan, or other countries.

Web Analytics: A Beginner's Guide : Hits and Unique Visitors

Visitors by Geographic Location


User Experience

Some Web analytics programs can show you the order in which visitors click through your pages. For example, a visitor begins a session on your home page, clicks on a “products” link, views several products, and then clicks a “support” link. If your site is a simple one with few pages, the page order is simple with few variations. On larger sites, page order can be more critical, especially if you expect visitors to take specific paths. Page order statistics can reveal interesting and unexpected information about your users’ behavior, giving you insight into how you might fine-tune your site to improve their experience.

Web Analytics: A Beginner's Guide: Simple Example of Page Order Tracking

Simple Example of Page Order Tracking


Heat Maps

Heat maps are an innovative way of visualizing website performance. They display the most popular clickable areas of a page in “hot” colors such as red and yellow and low-activity areas in “cooler” greens and blues. Heat maps can be easier to grasp and quicker to evaluate than pages of dry statistics.


An analytics report can also indicate how your visitors found your site, showing statistics for search engines and referring links on other sites.

Error Reporting

You can also get reports on errors with your site, such as pages not found. If the errors portion of your web analysis report has several problems, it may indicate your site is missing files or contains outdated links.

Conversion Rate

Conversion rate is another important metric measuring how many visitors purchase goods, sign up for a newsletter, or otherwise make a tangible commitment to what your site offers. To accurately measure conversion, analytics software tracks the user through the transaction pages, omitting incomplete actions such as abandoned shopping carts.

Bounce Rate

A website’s bounce rate is the fraction of web visitors who land on a page, and then leave the site without exploring it any further. This number gauges how well the site or a page holds a visitor’s interest.


These metrics are just a few of the ways you can get more insight into how well your site attracts, keeps, and engages visitors. We hope this introduction gives you a good start in how you can learn more about how your cloud hosted website performs. Learn more about our reliable HIPAA-compliant cloud hosting solutions.

How to Install Drupal on Fedora 23 With Apache

Verified and Tested 10/2/15


In this How-To, we will walk you through the install and configuration of Drupal on Fedora 23 with Apache. Drupal is a free content management system that will facilitate the way your content is organized and managed. It has a user-friendly interface that makes customizing your content easy and simple with little effort.


– You need a Fedora 23 server that is configured with a static IP address.

– You will also need to have a LAMP(Linux, Apache, MySQL, PHP) stack platform that can be installed by clicking here if you don’t already have it.

Installing Drupal on Fedora 23 with Apache

To get started, log in to your Fedora 23 server via SSH or Console. If you are using the Atlantic.Net cloud service, note that they are setup with minimal installations to avoid having unnecessary packages from being installed and never used. If some software packages that you’re used to using aren’t installed by default, feel free to install them as needed.

You may need to install tar and wget for this tutorial; you can do so with the following command:

dnf install tar wget

Let’s make sure that your server is fully up-to-date so we can complete the preparation.

dnf update

Creating a Database and User for Drupal on Fedora 23

For Drupal to function, we must create a Database in MySQL. Let us begin access MySQL with the following command:

mysql -u root -p

Now, we must first begin creating the Database that Drupal will use. This can be accomplished with the following command replacing yourdbname with your database name:


With the Database created we must now create a user so it can access the Database.This can be accomplished with the following command replacing yourdrupaluser with your desired username and replace yourdrupalpassword with your desired password.

CREATE USER [email protected] IDENTIFIED BY 'yourdrupalpassword';

Furthermore, we must grant Database access to your recently created user with the following command:

GRANT ALL PRIVILEGES ON yourdbname.* TO [email protected];

Additionally, we must refresh MySQL so the system can flush the newly added privileges and for the changes to take effect, then exit your session. This can be accomplished with the following commands:


Installing Drupal on Fedora 23

Now, we must install the following PHP dependencies so that Drupal can function properly when we install it. This can be accomplished with the following command:

dnf install php-gd php-xml php-pear php-fpm php-mbstring

We need to edit the php.ini file and set mbstring.http_input and mbstring.http_output to pass.

nano /etc/php.ini

Look for mbstring.http_input and mbstring.http_output, remove the semicolon in the front and add “= pass” It should look similar to the below example.

; Use of this INI entry is deprecated, use global input_encoding instead.
; http input encoding.
; mbstring.encoding_traslation = On is needed to use this setting.
; If empty, default_charset or input_encoding or mbstring.input is used.
; The precedence is: default_charset < intput_encoding < mbsting.http_input
; http://php.net/mbstring.http-input
mbstring.http_input = pass

; Use of this INI entry is deprecated, use global output_encoding instead.
; http output encoding.
; mb_output_handler must be registered as output buffer to function.
; If empty, default_charset or output_encoding or mbstring.http_output is used.
; The precedence is: default_charset < output_encoding < mbstring.http_output
; To use an output encoding conversion, mbstring's output handler must be set
; otherwise output encoding conversion cannot be performed.
; http://php.net/mbstring.http-output
mbstring.http_output = pass

Since we installed new packages we need to restart apache:

sudo systemctl restart httpd.service

Since we installed the unzip tool in the beginning of this how-to, we can safely run the following command safely:

wget http://ftp.drupal.org/files/projects/drupal-7.41.tar.gz

After we have installed the requires dependencies, we can continue with the installation of Drupal. Run the following command to unzip the Drupal package that we downloaded.

tar -zxvf drupal-7.41.tar.gz

Since, Drupal is currently in the root directory, let us move the folder and rename the location to drupal with the following command:

cp -r ~/drupal-7.41/* /var/www/html

Furthermore,  with the following command we can apply the appropriate permissions for the Drupal directory that was just created.

chown -R apache:apache /var/www/html/

Now to finalize the configurations on the servers side, we must change the create a settings file in the sites default directory. So let’s change to that directory with the following command:

cd /var/www/html/sites/default/

Copy the default.settings.php file and rename it to settings.php with the following command:

cp -p default.settings.php settings.php

Drupal’s Web Configuration on Fedora 23

Your server is now configured correctly to run the web-based installation by going to the following:


You will see the Drupal installation procedure’s initial page.  Choose standard and click “Save and continue.”

This is the Drupal's web installation wizard on Fedora 23

This is the Drupal’s web installation wizard on Fedora 23

Next select English, or follow Drupal’s instructions on adding a new language.  Click “Save and continue”.

Choose the language of your choice

Choose the language of your choice

It should skip past “Verify requirements” and you should be on the screen to set up your database. Enter in your information that you set up earlier and click “Save and continue.”

Enter in your Database information that you set up earlier

Enter in your Database information that you set up earlier

You can now enter your information for the site details.

Enter in your site details

Enter in your site details



What’s Next?

Congratulations! You have just installed and configured Drupal with Apache on your Fedora 23 Cloud Server. Thank you for following along in this How-To and check back with us for any new updates, and learn more about our reliable HIPAA-compliant cloud hosting solutions.

Thoughts from the Creator of LEMP Stack

The LAMP stack is still the king as far as open-source development bundles go, but LEMP has quickly gained ground over the last few years. Let’s learn more about this increasingly popular web development stack.

  • What is a LEMP Stack?
  • A Look at its Components
  • More on Nginx and its Users
  • Thoughts from Igor Sysoev
  • Nginx vs. Apache in the Real World
  • One-Click LEMP Stack Hosting

What is a LEMP Stack?

In 1998, tech reporter Michael Kunze wrote an article for the German magazine Computertechnik, demonstrating how a developer can work with free open-source software instead of using proprietary systems. In that piece, Kunze became a rock star in the open-source community for being the first person to introduce the concept of LAMP.

Read More

What is PHP7 – Performance Improvements

PHP7 Elephant created by Walker Cahall http://www.waltronic.net/

PHP7 Elephant created by Walker Cahall 

Target Audience

This article is geared toward those familiar with PHP, or with scripting languages and how they interact with the hardware upon which they run.


Sometime in November 2015, the PHP Group will be releasing PHP 7. This release promises greater performance and some new tools to further improve responsiveness. This article takes a quick look at how PHP’s developers accomplished these improvements and what they will mean for the future of PHP.


PHP 7 Performance Tweaks

The PHP 7 development team focused on performance optimization using real world web frameworks and software as a guide. PHP inventor Rasmus Lerdorf recently discussed the development team’s efforts at frOSCon 2015. One of the team’s first tasks was to increase the speed of PHP by reducing both the amount of time and instructions needed for requests against WordPress–one of the most common and popular PHP applications online. Some of their accomplishments during this time include:

  • Much more CPU cache friendly
  • New memory allocator similar to jemalloc
  • Faster hashtable iteration API
  • Array duplication optimization
  • Fast ZPP (ZendParseParameters) implementation
  • Faster stack-allocated zvals (instead of heap)
  • Optimized VM calling
  • Global register variables with gcc 4.8+
  • zval size reduced from 24 to 16 bytes
  • Hashtable size reduced from 72 to 56 bytes
  • Hashtable bucket size reduced from 72 to 32 bytes
  • Immutable array optimization (from 43M of memory down to 6M of memory).

Much of this list taken from Lerdorf’s talk in Santa Clara on Speeding up the Web with PHP7.

Lerdorf also presented benchmarks showing significantly increased performance in Drupal 8, WordPress 4.1.1, phpBB 3.1.3, MediaWiki 1.24.1, OpenCart, Wardrobe CMS 1.2.0, Geeklog 2.1.0., and many others. Lerdorf reported performance improvements in some applications was double that of PHP 5.x in his benchmark tests–with the caveat that replicating these results depends on the system on which PHP 7 runs.


Introducing the Secondary File-Based Cache

PHP 7 introduces a major performance improvement by augmenting the OPCache extension (bundled into PHP >=5.5.0) with a secondary, persistent file-based cache. The OPCache extension works by storing the OPCodes generated by the compiling of a PHP script in shared memory. When the script executes a second time, it can load the OPcode file from shared memory into OPCache and then execute the file. This process is substantially faster than recompiling everything. In PHP 7, users will have the option to enable a secondary file-based cache in addition to the shared memory cache. If a user enables the secondary file-based cache, then the system running PHP will have a fallback alternative location on disk for already generated OPCodes; it will only consult this secondary cache if the OPCodes have been flushed from shared memory. If the OPCode file that matches the script is in this new file-based cache, it will load right back into OPCache for the script to finally execute.


How Does The New Secondary Cache Increase Performance?

This feature will be mostly beneficial to performance on high traffic websites. When these servers need to be restarted, their memory cache is cleared, so everything has to be recompiled. With the addition of the secondary OPCache on disk, PHP can grab the OPCode from the new secondary file-based cache instead of having to recompile everything. It’s important to remember that this isn’t as fast as getting the memory cache from the shared memory. To compare the speeds, consider the time it takes to read an uncompiled PHP index file as the base speed. It is 4 times as fast to run from the disk than from the index file, and 10 times faster to run from the shared memory OpCache than it is from the index file. So, while there is still a performance hit upon server restarts, the secondary cache still executes much faster than running from the index file.

Future Updates to PHP 7

Absent from PHP 7 is a JIT (Just in Time) compiler, which could greatly improve PHP 7 performance. The developers have stated that they are working on JIT to be included in a future update to PHP 7. As it stands right now, PHP 7 is written with the intent to eventually support a migration to a JIT compiler.

Another potential update we could see in PHP 7 is support for asynchronous programming. This ability will allow code to perform tasks such as accessing files, networks, timers, and databases through the use of a PHP event-loop.

Thank you for reading, and good luck as you migrate your code to PHP7. Check out our how-to’s on installing PHP7 and try it yourself (CentOS, Debian, Ubuntu). To learn more about some of the other new things to expect from PHP7, check out some of our other articles:



Altantic.Net offers many cloud hosting solutions, managed cloud hosting, one-click application cloud installations and many other hosting solutions, such as our reliable HIPAA-compliant cloud hosting solutions.


How to Install And Configure NGINX As A Load Balancer on Ubuntu 14.04

NGINX Car by Walker Cahall

NGINX Car by Walker Cahall


A load balancer is a useful service that distributes workloads across multiple servers. Load balancing increases fault tolerance to your site and improves performance.

In this how-to, we will guide you through installing NGINX and configuring NGINX to do Round Robin load balancing. For this guide, we will be using Ubuntu 14.04. Below is a network diagram that is an overview of how this is being set up.

Load Balancer Setup Network Diagram

Load Balancer Setup Network Diagram


A server with Ubuntu 14.04 installed.

Two or more web servers that can be accessed by your load balancer. See our LAMP or LEMP how-to’s for help on installing a web server that sits behind your load balancer.

Server Preparation

Let’s start off by making sure that your system is up to date by running the following command:

sudo apt-get update

Installing NGINX on Ubuntu 14.04

Next, we’re going to install NGINX with the following command:

sudo apt-get install nginx

Once installed, verify that NGINX is working by going to your server IP address in your browser. You should get a page similar to the one below:

An example on the NGINX web page on Ubuntu 14.04

An example on the NGINX web page on Ubuntu 14.04

Configuring NGINX Load Balancing

Now that NGINX is installed, we need to edit our NGINX config and enable load balancing with upstream. The NGINX default configuration file on Ubuntu systems is located at /etc/nginx/sites-available/default . You can edit it with the following command:

sudo nano /etc/nginx/sites-available/default

Since the default configuration is set up for a basic website, we can remove it and add in the following configuration. We are adding upstream to our configuration, which is an NGINX module that enables load balancing. In upstream replace the private IPs in this example with your web servers. You can use private IPs, public IP’s or hostnames and you are going to want to set the server_name to you domain name or IP address. You can set the upstream name to whatever you would like, just so long as it is the same on the proxy_pass. In this case, we are using the name www.

upstream www {
server {
        listen 80;
        server_name example.atlantic.net;
        location / {
          proxy_pass http://www;

Essentially, this configuration enables NGINX to listen for you Domain name or Public IP and once it is accessed, it passes traffic to the next web server in the round robin sequence.

Now that we have made our configuration changes we need to restart NGINX with the following command:

sudo service nginx restart

You can then test it out by going to your  hostname or IP of your load balancer in your browser. For testing, we have 3 default NGINX servers sitting behind our load balancer, each with a slightly modified index page.

An example of my web servers: WWW1, WWW2 and WWW3

An example of my web servers: WWW1, WWW2 and WWW3

With the configuration above, our load balancer is distributing the load equally across our 3 servers. However, there are cases in which you may want a particular web server to take on more traffic than another.

NGINX Load Balancing Weight

To accomplish different distribution, we can add the NGINX weight directive. The default weight is 1, which the example above uses. If we want our 1st webserver to take 50% of our traffic we could use the following configuration.

upstream www {
        server weight=2;

You can experiment with different weights per web server to make your ideal configuration. Remember to always restart NGINX when adding to your configuration files.

sudo service nginx restart

A/B Testing With NGINX Load Balancing

Typically when load balancing your web servers are identical. However, you can do A/B testing with NGINX load balancing and different web server. A/B testing is the practice of testing two different implementations, usually a new site function or design versus an existing or old site.  Ideally, you would want less traffic going to your new server to see if it is effective or not. You can again accomplish this by weight. Below, our 3rd web server is our new server which will be getting 10% of the traffic:

upstream www {
        server weight=5;
        server weight=4;

However, if a user kept refreshing their page, it might be confusing to them that they keep getting different pages. We can fix that with IP hash.

Using IP HASH On Your NGINX Load Balancer

To eliminate confusion, add ip_hash to your upstream configuration. IP hash works by using your client’s IP address as a hashing key so that your client will always goes to the same web server. Below shows an example of adding IP hash. Remember to restart NGINX when making the changes.

upstream www {
        server weight=5;
        server weight=4;

What’s Next

Congratulations on adding load balancing using NGINX! You might want to take a look at the Module ngx_http_upstream_module page for more NGINX directives you can add.  Thank you for following along this how-to, please check back here for more updates or to learn more about our reliable HIPAA-compliant cloud hosting solutions.

The HIPAA Compliant Cloud: An Introductory Report

More and more healthcare companies are evaluating the cloud as a possible environment for data processing and storage. As more investment has been pumped into the cloud industry, systems have become substantially more robust and complex. However, federal law dictates that providers, health plans, and health data clearinghouses must keep all “protected health information” (PHI) secure and confidential – and the role of technology providers is critical.

“The HIPAA Omnibus Rule had several changes in how CEs and business associates could handle patient data,” explains Elizabeth Snell of HealthIT Security, “and what the ramifications will be if that data is compromised in a data breach.”

Read More

Cloud Migration Tips for Attorneys

  • ABA: Many Lawyers Migrating to Cloud
  • Why the Legal Cloud Trend?
  • Migration Checklist
  • Partnering with Experts

ABA: Many Lawyers Migrating to Cloud

The 2014 Legal Technology Survey Report from the American Bar Association (ABA) revealed that attorneys are rapidly migrating to the cloud in 2015. Although only 30% of respondents said that they were currently using the cloud, 35% of non-cloud firms reported that they were planning a cloud transition within 6 to 12 months.

Recognizing how prevalent cloud technology is becoming in the legal profession, the ABA’s Legal Technology Resource Center (LTRC) released a list of migration advice through its Law Technology Today blog.

Read More

Compassion and Humanity: Ubuntu LTS for Linux SSD Cloud

Developed and managed in conjunction with the open source community and Canonical, Ubuntu is one of the most popular distributions of the Linux operating system. The name itself is a nod to the synergistic, “share and share alike” philosophy that is considered a pillar of the open source movement. Ubuntu is a word used in Xhosa and Zulu that is roughly translated as humanity, compassion, or the whole is better than the sum of its parts.  Atlantic.Net offers several Ubuntu distribution in one of our Linux cloud hosting options.

Read More

New York, NY

100 Delawanna Ave, Suite 1

Clifton, NJ 07014

United States

San Francisco, CA

2820 Northwestern Pkwy,

Santa Clara, CA 95051

United States

Dallas, TX

2323 Bryan Street,

Dallas, Texas 75201

United States

Ashburn, VA

1807 Michael Faraday Ct,

Reston, VA 20190

United States

Orlando, FL

440 W Kennedy Blvd, Suite 3

Orlando, FL 32810

United States

Toronto, Canada

20 Pullman Ct, Scarborough,

Ontario M1X 1E4


London, UK

14 Liverpool Road, Slough,

Berkshire SL1 4QZ

United Kingdom