Originally migrated to Aliyun encountered the first problem is in the program through the request.userhostaddress is load-balanced (SLB) of the intranet IP, rather than the user's real IP. The real IP is stored in the server variable http_x_forwarded_for, and the Http_x_forwarded_for value is later rewritten into remote_addr via the URL Rewrite module of IIS to solve the problem.
This problem is due to the use of seven-tier load balancing (Layers 7 load Balancing), while the use of four-tier load balancing does not have this problem. But if we choose, we prefer seven-tier load balancing, seven-tier load balancing has its drawbacks and its advantages. To learn more about their differences, please step into an article in the Knowledge Base--the difference between layer four and seven load balancing.
We measured the load balance of azure, request.userhostaddress directly to get the user's real IP. Thus it can be guessed that Azure's load balance is four layers.
To confirm our guess, we found an article on the internet introducing the Loadmaster for Azure–a full Layer 7 Load BALANCER/ADC for Azure deployment, please see the table in the article (See figure below):
This shows that Azure's built-in load balancing is indeed four layers, but can be implemented with Third-party applications to achieve seven-tier load balancing, such as the loadmaster just mentioned, but need to pay additional costs.
A design strategy for Azure can be seen from this place, providing only basic functionality, advanced functionality left to third parties to enable third parties to earn money on azure platforms. This is also Microsoft's knack.
For the compatibility of the existing SQL Server databases we've encountered with SQL Azure, we'd like to see a third-party tool if the demand is high.
See more highlights of this column: http://www.bianceng.cnhttp://www.bianceng.cn/Servers/cloud-computing/