create account

Howto: Using Nginx to Load Balance Servers by full-steem-ahead

View this thread on: hive.blogpeakd.comecency.com
· @full-steem-ahead · (edited)
$119.65
Howto: Using Nginx to Load Balance Servers
<center>![lb_pic.jpg](https://steemitimages.com/DQmW8Vm9z2kWTsUYMF12bbtWUt34QFYtiZL5rLzY8PAgJXK/lb_pic.jpg)</center>
In researching how to implement a proxy to insulate my BitShares full-node servers to provide public API service, @roelandp recommended [the article published by @jesta](https://steemit.com/steem/@jesta/building-a-high-availability-steemd-node-for-web-apis). I used that as the basis for this howto and added a few things to improve security. 
<hr>
<div class="text-justify">
<h3>What is it and why do I need it?</h3>

If you are a witness or have websites that need to handle a lot of requests, or if you want to provide failover protection should one of your servers fail, this is one way to do it. In my case I was only looking for a proxy, but realized that adding load balancing was also quite easy  to do as well, didn't require any additional software and only minor configuration changes to nginx as a proxy.

I have many servers, all of which are full nodes on the blockchain and capable of providing public API access and are scattered around the globe in different jurisdictions. I considered 2 basic approaches, and I may change the configuration to allow connections to each server as well as through the load balancer proxy which may be more reliable for people closer to a server node than the load balancer. That would also eliminate the problem of the load balancer being a single point of failure. 

For now the approach I've chosen is to have a single server act as the load balancer and proxy for all the rest as opposed to allowing each server to respond to requests directly. I also considered making all of the nodes a load balancer for the others, which might be a way to avoid the single point of failure, however I believe that would cause a loop condition at worse and at best increase the traffic and latency of forwarded requests as they bounce around before being serviced by a local server. Neither of those 2 outcomes sound good to me.

I will observe the server logs over time and adjust my configuration after further analysis. In a nutshell, these are the pros and cons of the centralized approach vs. proxying each server individually:
 
<h3>Pros</h3>
- Uses a single connection URL
- Balances the load between several servers for high volume traffic
- Provides failsafe redundancy (of server nodes) to improve reliability

<h3>Cons</h3>
- Longer latency for geographically distant clients may reduce connection reliably
- Load balancer proxy is a single point of failure

You can decide for yourself which approach will best serve your needs.

I have uploaded the nginx configuration files to the my [github repository](https://github.com/ThomasFreedman/nginx-proxy.git) to save you some typing. Point of fact there isn't many changes to what @jesta has already published. The changes I made consist of:

1) Using a combination of remote and local server instances
2) Adding filtering to eliminate non-websocket requests
3) Adding filtering so only requests from the load balancer are processed at each node

The github repo has 3 nginx configuration files:
1) nginx.conf
2) load_balancer.conf
3) server_node.conf

I am assuming for the sake of this article that nothing else is being served by the nginx web server besides websocket requests. If that is not the case I recommend creating separate configuration files in the /etc/nginx/sites-available directory and associated links to them in the /etc/nginx/sites-enabled directory. The request filtering is particularly important if you use port 80 as your public API port, as it will be hammered by port scanners and search engine robots, not to mention hackers trying to make a name for themselves with "I was here" file droppings. 

It's also worth mentioning that it's very easy to disable a virtual server by simply removing the link in the /etc/nginx/sites-enabled directory. Using a modular approach by defining each virtual server in a separate configuration file simplifies management considerably.

<h3>Description of Configuration</h3>
File #1 in the list above is the main nginx web server configuration file, suitable for any settings that apply to all virtual servers defined in the sites-available directory. The default settings this file contains are generally fine, and the only addition required for a load balancing proxy is the line below the **Request rate limiting** comment:

<pre>limit_req_zone $binary_remote_addr zone=ws:10m rate=1r/s;</pre><br>

This is the exact same addition offered in @Jesta's article. I will leave it as an exercise for the reader to research adjustments to this statement if needed, for example how to specify a different rate limit value or to rate limit different types of requests.

File #2 is the primary balancer configuration. This file defines the list of servers to load balance between. @jesta's article described a configuration to load balance between 2 websocket servers running locally on the same system as the nginx load balancer / proxy. The file in my github repo is an example that begins by defining 5 websocket servers:

<pre>
# Hosts we will load balance between.
upstream server_pool {
    server localhost:port;
    server 002.xxx.yyy.zzz;
    server 003.xxx.yyy.zzz;
    server 004.xxx.yyy.zzz:port;
    server 005.xxx.yyy.zzz;
} </pre><br>
  
You will note that the list of servers needn't be limited to the local host, nor all use the same ports. That normalizes access to a single URL of the load balancer on whatever port you wish to provide the public API websocket service on. I decided to use port 80 as that is likely to be open to support web traffic and thus not typically blocked by firewalls.

<pre>
# Public API websocket 
server {
    listen 80;
    server_name _;
    ...
</pre><br>

Further down in that same file you will see:

<pre>
   # Reject and terminate illegitimate requests with prejudice  
   location / {
        return 444;
    }

    # Matches websocket URL address 
        location ~ ^/ws$ {
    ...
    } 
</pre><br>

The **server** block defines the public API. Here no server name is specified and this becomes the default nginx server that listens on port 80. The next 2 location blocks contain the remainder of the load balancing proxy server. These 2 blocks must be ordered this way to insure proper request filtering occurs.

The first location block matches all requests except those handled by the second location block which processes websocket requests. It uses the special nginx status of 444 which causes any matching requests to be terminated immediately with no further processing or response to the client. 

The second location matches URLs of the form: "**ws://server domain or IP/ws**". The URL must end with /ws or it will be rejected and terminated by the first location block.

Further down in the second location block you will see the reference to the upstream server_pool list (**proxy_pass http://server_pool;**) at the top of the file. Use any name you want but just make sure the names match. Also note the last line of the location block which is required for load balancing. 

The 3rd and last file is used to configure an individual websocket server. It acts as a proxy to forward websocket requests received on one port such as port 80 onto the appropriate port the witness_node listens to (named "rpc_endpoint" in the witness node's config.ini file). It also serves to reject requests that don't originate from the load balancer by the inclusion of these 2 lines:

<pre>
        # Allow requests only from the load balancer; IP only, no domain names!
        allow   www.xxx.yyy.zzz;
        deny    all;
</pre><br>

Please refer to the files on [github](https://github.com/ThomasFreedman/nginx-proxy.git) to view them in full. These lines must also appear in the order shown, and the first one must be a numerical IP address. Use of a domain name will trigger an error. Also note the almost identical structure of this configuration file to that of the load balancer, and the 2 lines of the 2nd location block that are commented out, both related to timeouts. Also note that the websocket server is defined as a single witness_node instance running on the local server along with the nginx web server proxy.

These 2 lines (allow & deny) restrict service to respond only to the load balancer. If you want your nodes to also respond to public requests comment these lines out and the node will be proxied to the outside world.

That about covers a basic proxy and load balancer based on the efficient and versatile Nginx web server. Keep a look out for my next article on encrypting your public API with SSL using free LetsEncrypt certificates. 

Again, thanks to @jesta for his article and @reolandp for recommending it. And thanks to ***you*** for your support!</p>
<center>https://img1.steemit.com/0x0/https://i.imgsafe.org/0eec025200.jpg</center>
</div>
👍  , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , and 26 others
properties (23)
authorfull-steem-ahead
permlinkhowto-using-nginx-to-load-balance-servers
categorywitness-category
json_metadata{"tags":["witness-category","bitshares","blockchain","beyondbitcoin"],"users":["roelandp","jesta","reolandp"],"image":["https://steemitimages.com/DQmW8Vm9z2kWTsUYMF12bbtWUt34QFYtiZL5rLzY8PAgJXK/lb_pic.jpg","https://img1.steemit.com/0x0/https://i.imgsafe.org/0eec025200.jpg"],"links":["https://steemit.com/steem/@jesta/building-a-high-availability-steemd-node-for-web-apis","https://github.com/ThomasFreedman/nginx-proxy.git","http://server_pool"],"app":"steemit/0.1","format":"markdown"}
created2017-08-05 20:47:33
last_update2017-08-06 01:48:33
depth0
children23
last_payout2017-08-12 20:47:33
cashout_time1969-12-31 23:59:59
total_payout_value95.853 HBD
curator_payout_value23.794 HBD
pending_payout_value0.000 HBD
promoted0.000 HBD
body_length8,902
author_reputation30,177,498,572,933
root_title"Howto: Using Nginx to Load Balance Servers"
beneficiaries[]
max_accepted_payout1,000,000.000 HBD
percent_hbd0
post_id10,884,059
net_rshares30,616,017,887,433
author_curate_reward""
vote details (90)
@abdo22 ·
voted you as witness :) Can you follow me and upvote my postd
properties (22)
authorabdo22
permlinkre-full-steem-ahead-howto-using-nginx-to-load-balance-servers-20170805t213028854z
categorywitness-category
json_metadata{"tags":["witness-category"],"app":"steemit/0.1"}
created2017-08-05 21:30:33
last_update2017-08-05 21:30:33
depth1
children0
last_payout2017-08-12 21:30:33
cashout_time1969-12-31 23:59:59
total_payout_value0.000 HBD
curator_payout_value0.000 HBD
pending_payout_value0.000 HBD
promoted0.000 HBD
body_length61
author_reputation50,967,503,356
root_title"Howto: Using Nginx to Load Balance Servers"
beneficiaries[]
max_accepted_payout1,000,000.000 HBD
percent_hbd10,000
post_id10,886,809
net_rshares0
@aryan12o ·
Very informative post Great !!
properties (22)
authoraryan12o
permlinkre-full-steem-ahead-howto-using-nginx-to-load-balance-servers-20170805t205111546z
categorywitness-category
json_metadata{"tags":["witness-category"],"app":"steemit/0.1"}
created2017-08-05 20:51:24
last_update2017-08-05 20:51:24
depth1
children1
last_payout2017-08-12 20:51:24
cashout_time1969-12-31 23:59:59
total_payout_value0.000 HBD
curator_payout_value0.000 HBD
pending_payout_value0.000 HBD
promoted0.000 HBD
body_length30
author_reputation91,047,559,609
root_title"Howto: Using Nginx to Load Balance Servers"
beneficiaries[]
max_accepted_payout1,000,000.000 HBD
percent_hbd10,000
post_id10,884,279
net_rshares0
@full-steem-ahead ·
Thanx!
properties (22)
authorfull-steem-ahead
permlinkre-aryan12o-re-full-steem-ahead-howto-using-nginx-to-load-balance-servers-20170805t205534048z
categorywitness-category
json_metadata{"tags":["witness-category"],"app":"steemit/0.1"}
created2017-08-05 20:55:33
last_update2017-08-05 20:55:33
depth2
children0
last_payout2017-08-12 20:55:33
cashout_time1969-12-31 23:59:59
total_payout_value0.000 HBD
curator_payout_value0.000 HBD
pending_payout_value0.000 HBD
promoted0.000 HBD
body_length6
author_reputation30,177,498,572,933
root_title"Howto: Using Nginx to Load Balance Servers"
beneficiaries[]
max_accepted_payout1,000,000.000 HBD
percent_hbd10,000
post_id10,884,550
net_rshares0
@ashaman · (edited)
$0.67
You can eliminate the load balancer as a single point of failure by running two (or more) nginx VMs that share an IP via keepalived.
👍  
properties (23)
authorashaman
permlinkre-full-steem-ahead-howto-using-nginx-to-load-balance-servers-20170806t025038197z
categorywitness-category
json_metadata{"tags":["witness-category"],"app":"steemit/0.1"}
created2017-08-06 02:50:39
last_update2017-08-06 02:51:06
depth1
children0
last_payout2017-08-13 02:50:39
cashout_time1969-12-31 23:59:59
total_payout_value0.503 HBD
curator_payout_value0.167 HBD
pending_payout_value0.000 HBD
promoted0.000 HBD
body_length132
author_reputation3,785,245,463,720
root_title"Howto: Using Nginx to Load Balance Servers"
beneficiaries[]
max_accepted_payout1,000,000.000 HBD
percent_hbd10,000
post_id10,904,575
net_rshares171,418,064,589
author_curate_reward""
vote details (1)
@guccigirl ·
Upvoted. I'm going to resteem this now :)
properties (22)
authorguccigirl
permlinkre-full-steem-ahead-howto-using-nginx-to-load-balance-servers-20170805t233451123z
categorywitness-category
json_metadata""
created2017-08-05 23:34:39
last_update2017-08-05 23:34:39
depth1
children0
last_payout2017-08-12 23:34:39
cashout_time1969-12-31 23:59:59
total_payout_value0.000 HBD
curator_payout_value0.000 HBD
pending_payout_value0.000 HBD
promoted0.000 HBD
body_length41
author_reputation19,654,845,095
root_title"Howto: Using Nginx to Load Balance Servers"
beneficiaries[]
max_accepted_payout1,000,000.000 HBD
percent_hbd10,000
post_id10,894,188
net_rshares0
@helios ·
Thanks for the post and detailed instructions on setting-up the load balancer
I'm quite new to the crypto/blockchain technology in general but I have a background in systems/network admin, I understand running multiple server involve a cost, what do you benefit from running these full BTS nodes servers? Do you earn BTS tokens on a regular basis or is it a fully volunteer service?
Thanks
properties (22)
authorhelios
permlinkre-full-steem-ahead-howto-using-nginx-to-load-balance-servers-20170805t223303232z
categorywitness-category
json_metadata{"tags":["witness-category"],"app":"steemit/0.1"}
created2017-08-05 22:33:03
last_update2017-08-05 22:33:03
depth1
children0
last_payout2017-08-12 22:33:03
cashout_time1969-12-31 23:59:59
total_payout_value0.000 HBD
curator_payout_value0.000 HBD
pending_payout_value0.000 HBD
promoted0.000 HBD
body_length389
author_reputation939,720,335,398
root_title"Howto: Using Nginx to Load Balance Servers"
beneficiaries[]
max_accepted_payout1,000,000.000 HBD
percent_hbd10,000
post_id10,890,788
net_rshares0
@hrishi11 ·
Interesting
properties (22)
authorhrishi11
permlinkre-full-steem-ahead-howto-using-nginx-to-load-balance-servers-20170806t073507819z
categorywitness-category
json_metadata{"tags":["witness-category"],"app":"steemit/0.1"}
created2017-08-06 07:35:15
last_update2017-08-06 07:35:15
depth1
children0
last_payout2017-08-13 07:35:15
cashout_time1969-12-31 23:59:59
total_payout_value0.000 HBD
curator_payout_value0.000 HBD
pending_payout_value0.000 HBD
promoted0.000 HBD
body_length11
author_reputation465,383,873
root_title"Howto: Using Nginx to Load Balance Servers"
beneficiaries[]
max_accepted_payout1,000,000.000 HBD
percent_hbd10,000
post_id10,919,373
net_rshares0
@julfan ·
Great post @full-steem-ahead
properties (22)
authorjulfan
permlinkre-full-steem-ahead-howto-using-nginx-to-load-balance-servers-20170805t214044725z
categorywitness-category
json_metadata{"tags":["witness-category"],"users":["full-steem-ahead"],"app":"steemit/0.1"}
created2017-08-05 21:40:54
last_update2017-08-05 21:40:54
depth1
children0
last_payout2017-08-12 21:40:54
cashout_time1969-12-31 23:59:59
total_payout_value0.000 HBD
curator_payout_value0.000 HBD
pending_payout_value0.000 HBD
promoted0.000 HBD
body_length28
author_reputation127,281,939,071
root_title"Howto: Using Nginx to Load Balance Servers"
beneficiaries[]
max_accepted_payout1,000,000.000 HBD
percent_hbd10,000
post_id10,887,564
net_rshares0
@kp138 ·
Interesting to learn this! Now following you.
properties (22)
authorkp138
permlinkre-full-steem-ahead-howto-using-nginx-to-load-balance-servers-20170805t211430396z
categorywitness-category
json_metadata{"tags":["witness-category"],"app":"steemit/0.1"}
created2017-08-05 21:14:30
last_update2017-08-05 21:14:30
depth1
children0
last_payout2017-08-12 21:14:30
cashout_time1969-12-31 23:59:59
total_payout_value0.000 HBD
curator_payout_value0.000 HBD
pending_payout_value0.000 HBD
promoted0.000 HBD
body_length45
author_reputation61,838,033,977,616
root_title"Howto: Using Nginx to Load Balance Servers"
beneficiaries[]
max_accepted_payout1,000,000.000 HBD
percent_hbd10,000
post_id10,885,725
net_rshares0
@makrotheblack ·
Great post very detailed but a bit a too advanced for me,thanks for sharing
properties (22)
authormakrotheblack
permlinkre-full-steem-ahead-howto-using-nginx-to-load-balance-servers-20170805t211005636z
categorywitness-category
json_metadata{"tags":["witness-category"],"app":"steemit/0.1"}
created2017-08-05 21:10:03
last_update2017-08-05 21:10:03
depth1
children0
last_payout2017-08-12 21:10:03
cashout_time1969-12-31 23:59:59
total_payout_value0.000 HBD
curator_payout_value0.000 HBD
pending_payout_value0.000 HBD
promoted0.000 HBD
body_length75
author_reputation319,818,388,314
root_title"Howto: Using Nginx to Load Balance Servers"
beneficiaries[]
max_accepted_payout1,000,000.000 HBD
percent_hbd10,000
post_id10,885,445
net_rshares0
@melea ·
Thanks for the work and for post here. 
my vote
properties (22)
authormelea
permlinkre-full-steem-ahead-howto-using-nginx-to-load-balance-servers-20170806t051158137z
categorywitness-category
json_metadata{"tags":["witness-category"],"app":"steemit/0.1"}
created2017-08-06 05:11:57
last_update2017-08-06 05:11:57
depth1
children0
last_payout2017-08-13 05:11:57
cashout_time1969-12-31 23:59:59
total_payout_value0.000 HBD
curator_payout_value0.000 HBD
pending_payout_value0.000 HBD
promoted0.000 HBD
body_length47
author_reputation368,798,565,353
root_title"Howto: Using Nginx to Load Balance Servers"
beneficiaries[]
max_accepted_payout1,000,000.000 HBD
percent_hbd10,000
post_id10,911,890
net_rshares0
@onceuponatime · (edited)
$17.14
Thanks for all you do (with such incredible honesty, integrity and forethought).  

I know that you have been in crypto from the start because of your vision of an agorist humanity under the NAP, not government by threat of violence. I am very sure that you are one of those (few) for whom success is not and never will be at the expense of compromising your values.

Upvoted and resteemed.
👍  , , , , , , ,
properties (23)
authoronceuponatime
permlinkre-full-steem-ahead-howto-using-nginx-to-load-balance-servers-20170805t212313651z
categorywitness-category
json_metadata{"tags":["witness-category"],"app":"steemit/0.1"}
created2017-08-05 21:23:21
last_update2017-08-05 21:37:30
depth1
children3
last_payout2017-08-12 21:23:21
cashout_time1969-12-31 23:59:59
total_payout_value14.522 HBD
curator_payout_value2.613 HBD
pending_payout_value0.000 HBD
promoted0.000 HBD
body_length390
author_reputation210,777,223,264,395
root_title"Howto: Using Nginx to Load Balance Servers"
beneficiaries[]
max_accepted_payout1,000,000.000 HBD
percent_hbd10,000
post_id10,886,308
net_rshares4,385,644,939,860
author_curate_reward""
vote details (8)
@aggroed ·
$2.46
Followed after once's comments.  Nice to meet you fullsteem.
👍  
properties (23)
authoraggroed
permlinkre-onceuponatime-re-full-steem-ahead-howto-using-nginx-to-load-balance-servers-20170805t214606682z
categorywitness-category
json_metadata{"tags":["witness-category"],"app":"steemit/0.1"}
created2017-08-05 21:46:06
last_update2017-08-05 21:46:06
depth2
children1
last_payout2017-08-12 21:46:06
cashout_time1969-12-31 23:59:59
total_payout_value2.431 HBD
curator_payout_value0.033 HBD
pending_payout_value0.000 HBD
promoted0.000 HBD
body_length60
author_reputation1,343,336,358,344,627
root_title"Howto: Using Nginx to Load Balance Servers"
beneficiaries[]
max_accepted_payout1,000,000.000 HBD
percent_hbd10,000
post_id10,887,911
net_rshares631,408,473,852
author_curate_reward""
vote details (1)
@full-steem-ahead ·
Thank you!
properties (22)
authorfull-steem-ahead
permlinkre-aggroed-re-onceuponatime-re-full-steem-ahead-howto-using-nginx-to-load-balance-servers-20170806t012905212z
categorywitness-category
json_metadata{"tags":["witness-category"],"app":"steemit/0.1"}
created2017-08-06 01:29:06
last_update2017-08-06 01:29:06
depth3
children0
last_payout2017-08-13 01:29:06
cashout_time1969-12-31 23:59:59
total_payout_value0.000 HBD
curator_payout_value0.000 HBD
pending_payout_value0.000 HBD
promoted0.000 HBD
body_length10
author_reputation30,177,498,572,933
root_title"Howto: Using Nginx to Load Balance Servers"
beneficiaries[]
max_accepted_payout1,000,000.000 HBD
percent_hbd10,000
post_id10,900,251
net_rshares0
@full-steem-ahead ·
$8.59
WOW! That's... I'm so amazed to receive such high praise from someone who likewise values the NAP and agorist principles as yourself. Maximum respect to you sir! Namaste
👍  , , ,
properties (23)
authorfull-steem-ahead
permlinkre-onceuponatime-re-full-steem-ahead-howto-using-nginx-to-load-balance-servers-20170806t012835400z
categorywitness-category
json_metadata{"tags":["witness-category"],"app":"steemit/0.1"}
created2017-08-06 01:28:36
last_update2017-08-06 01:28:36
depth2
children0
last_payout2017-08-13 01:28:36
cashout_time1969-12-31 23:59:59
total_payout_value6.444 HBD
curator_payout_value2.144 HBD
pending_payout_value0.000 HBD
promoted0.000 HBD
body_length169
author_reputation30,177,498,572,933
root_title"Howto: Using Nginx to Load Balance Servers"
beneficiaries[]
max_accepted_payout1,000,000.000 HBD
percent_hbd10,000
post_id10,900,222
net_rshares2,197,752,460,814
author_curate_reward""
vote details (4)
@paceta ·
wao , gonna  try this  soon
👍  
👎  
properties (23)
authorpaceta
permlinkre-full-steem-ahead-howto-using-nginx-to-load-balance-servers-20170805t213704500z
categorywitness-category
json_metadata{"tags":["witness-category"],"app":"steemit/0.1"}
created2017-08-05 21:37:03
last_update2017-08-05 21:37:03
depth1
children0
last_payout2017-08-12 21:37:03
cashout_time1969-12-31 23:59:59
total_payout_value0.000 HBD
curator_payout_value0.000 HBD
pending_payout_value0.000 HBD
promoted0.000 HBD
body_length27
author_reputation358,632,670,574
root_title"Howto: Using Nginx to Load Balance Servers"
beneficiaries[]
max_accepted_payout1,000,000.000 HBD
percent_hbd10,000
post_id10,887,294
net_rshares1,545,682,843
author_curate_reward""
vote details (2)
@polaleye50 ·
Amazing. Thanks
👍  
properties (23)
authorpolaleye50
permlinkre-full-steem-ahead-howto-using-nginx-to-load-balance-servers-20170808t223419064z
categorywitness-category
json_metadata{"tags":["witness-category"],"app":"steemit/0.1"}
created2017-08-08 22:34:27
last_update2017-08-08 22:34:27
depth1
children0
last_payout2017-08-15 22:34:27
cashout_time1969-12-31 23:59:59
total_payout_value0.000 HBD
curator_payout_value0.000 HBD
pending_payout_value0.000 HBD
promoted0.000 HBD
body_length15
author_reputation15,725,803,639,028
root_title"Howto: Using Nginx to Load Balance Servers"
beneficiaries[]
max_accepted_payout1,000,000.000 HBD
percent_hbd10,000
post_id11,223,215
net_rshares1,281,252,923
author_curate_reward""
vote details (1)
@polaleye50 ·
I have followed  you.  Thanks
properties (22)
authorpolaleye50
permlinkre-full-steem-ahead-howto-using-nginx-to-load-balance-servers-20170808t223456408z
categorywitness-category
json_metadata{"tags":["witness-category"],"app":"steemit/0.1"}
created2017-08-08 22:35:03
last_update2017-08-08 22:35:03
depth1
children0
last_payout2017-08-15 22:35:03
cashout_time1969-12-31 23:59:59
total_payout_value0.000 HBD
curator_payout_value0.000 HBD
pending_payout_value0.000 HBD
promoted0.000 HBD
body_length29
author_reputation15,725,803,639,028
root_title"Howto: Using Nginx to Load Balance Servers"
beneficiaries[]
max_accepted_payout1,000,000.000 HBD
percent_hbd10,000
post_id11,223,275
net_rshares0
@rival · (edited)
just use Citrix load balancers, netscalers.. and you are the master of load balancing. And thx for the great post..I love bitshares.. its decentralised.. still have to use it more often.. but I will get there..
properties (22)
authorrival
permlinkre-full-steem-ahead-howto-using-nginx-to-load-balance-servers-20170805t212132927z
categorywitness-category
json_metadata{"tags":["witness-category"],"app":"steemit/0.1"}
created2017-08-05 21:21:33
last_update2017-08-05 21:55:09
depth1
children2
last_payout2017-08-12 21:21:33
cashout_time1969-12-31 23:59:59
total_payout_value0.000 HBD
curator_payout_value0.000 HBD
pending_payout_value0.000 HBD
promoted0.000 HBD
body_length210
author_reputation56,474,966,976,297
root_title"Howto: Using Nginx to Load Balance Servers"
beneficiaries[]
max_accepted_payout1,000,000.000 HBD
percent_hbd10,000
post_id10,886,184
net_rshares0
@full-steem-ahead ·
isn't Citrix licensed and not free?
properties (22)
authorfull-steem-ahead
permlinkre-rival-re-full-steem-ahead-howto-using-nginx-to-load-balance-servers-20170806t013028734z
categorywitness-category
json_metadata{"tags":["witness-category"],"app":"steemit/0.1"}
created2017-08-06 01:30:27
last_update2017-08-06 01:30:27
depth2
children1
last_payout2017-08-13 01:30:27
cashout_time1969-12-31 23:59:59
total_payout_value0.000 HBD
curator_payout_value0.000 HBD
pending_payout_value0.000 HBD
promoted0.000 HBD
body_length35
author_reputation30,177,498,572,933
root_title"Howto: Using Nginx to Load Balance Servers"
beneficiaries[]
max_accepted_payout1,000,000.000 HBD
percent_hbd10,000
post_id10,900,327
net_rshares0
@rival ·
Yes citriX is licensed. Dont know About actual prices. It was a few years ago i installed them.
properties (22)
authorrival
permlinkre-full-steem-ahead-201786t94654347z
categorywitness-category
json_metadata{"tags":"witness-category","app":"esteem/1.4.7","format":"markdown+html","community":"esteem"}
created2017-08-06 07:46:57
last_update2017-08-06 07:46:57
depth3
children0
last_payout2017-08-13 07:46:57
cashout_time1969-12-31 23:59:59
total_payout_value0.000 HBD
curator_payout_value0.000 HBD
pending_payout_value0.000 HBD
promoted0.000 HBD
body_length95
author_reputation56,474,966,976,297
root_title"Howto: Using Nginx to Load Balance Servers"
beneficiaries
0.
accountesteemapp
weight500
max_accepted_payout1,000,000.000 HBD
percent_hbd10,000
post_id10,920,072
net_rshares0
@steemitboard ·
Congratulations @full-steem-ahead! You have completed some achievement on Steemit and have been rewarded with new badge(s) :

[![](https://steemitimages.com/70x80/http://steemitboard.com/notifications/payout.png)](http://steemitboard.com/@full-steem-ahead) Award for the total payout received

Click on any badge to view your own Board of Honor on SteemitBoard.
For more information about SteemitBoard, click [here](https://steemit.com/@steemitboard)

If you no longer want to receive notifications, reply to this comment with the word `STOP`

> By upvoting this notification, you can help all Steemit users. Learn how [here](https://steemit.com/steemitboard/@steemitboard/http-i-cubeupload-com-7ciqeo-png)!
properties (22)
authorsteemitboard
permlinksteemitboard-notify-full-steem-ahead-20170808t140259000z
categorywitness-category
json_metadata{"image":["https://steemitboard.com/img/notifications.png"]}
created2017-08-08 14:02:57
last_update2017-08-08 14:02:57
depth1
children0
last_payout2017-08-15 14:02:57
cashout_time1969-12-31 23:59:59
total_payout_value0.000 HBD
curator_payout_value0.000 HBD
pending_payout_value0.000 HBD
promoted0.000 HBD
body_length707
author_reputation38,975,615,169,260
root_title"Howto: Using Nginx to Load Balance Servers"
beneficiaries[]
max_accepted_payout1,000,000.000 HBD
percent_hbd10,000
post_id11,173,655
net_rshares0
@yefeth ·
I run two virtual servers, one for me and one for a client, from  VPS.net. They are Debian installs using Nginx for the web server. I run multiple sites on my server. I love the speed and consistency of Nginx.
properties (22)
authoryefeth
permlinkre-full-steem-ahead-howto-using-nginx-to-load-balance-servers-20170806t032236869z
categorywitness-category
json_metadata{"tags":["witness-category"],"app":"steemit/0.1"}
created2017-08-06 03:22:36
last_update2017-08-06 03:22:36
depth1
children0
last_payout2017-08-13 03:22:36
cashout_time1969-12-31 23:59:59
total_payout_value0.000 HBD
curator_payout_value0.000 HBD
pending_payout_value0.000 HBD
promoted0.000 HBD
body_length209
author_reputation-16,534,966,049
root_title"Howto: Using Nginx to Load Balance Servers"
beneficiaries[]
max_accepted_payout1,000,000.000 HBD
percent_hbd10,000
post_id10,906,103
net_rshares0