-
Notifications
You must be signed in to change notification settings - Fork 82
Revised text and headers to adhere to style guide #520
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
base: main
Are you sure you want to change the base?
Conversation
Edit the text and titles to adhere to style guide rules.
🎉 Thank you for your contribution! It appears you have not yet signed the F5 Contributor License Agreement (CLA), which is required for your changes to be incorporated into an F5 Open Source Software (OSS) project. Please kindly read the F5 CLA and reply on a new comment with the following text to agree: I have hereby read the F5 CLA and agree to its terms You can retrigger this bot by commenting recheck in this Pull Request. Posted by the CLA Assistant Lite bot. |
I have hereby read the F5 CLA and agree to its terms. |
Where should I comment for license?
Best,
Megan
…On Sun, May 4, 2025 at 4:01 PM github-actions[bot] ***@***.***> wrote:
*github-actions[bot]* left a comment (nginx/documentation#520)
<#520 (comment)>
🎉 Thank you for your contribution! It appears you have not yet signed the F5
Contributor License Agreement (CLA)
<https://github.com/f5/.github/blob/main/CLA/cla-markdown.md>, which is
required for your changes to be incorporated into an F5 Open Source
Software (OSS) project. Please kindly read the F5 CLA
<https://github.com/f5/.github/blob/main/CLA/cla-markdown.md> and reply
on a new comment with the following text to agree:
------------------------------
I have hereby read the F5 CLA and agree to its terms
------------------------------
You can retrigger this bot by commenting *recheck* in this Pull Request. Posted
by the *CLA Assistant Lite bot*.
—
Reply to this email directly, view it on GitHub
<#520 (comment)>,
or unsubscribe
<https://github.com/notifications/unsubscribe-auth/AJVTBNSYZTB46JN5NU4BKTD242L4XAVCNFSM6AAAAAB4NMLXAWVHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMZDQNBZGQ4DKMZXHA>
.
You are receiving this because you authored the thread.Message ID:
***@***.***>
|
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I apologize for the large number of changes. If you're still at the conference, I'd love to chat in person. If you don't see me, you're welcome to DM me on the Write the Docs slack
@@ -9,157 +9,220 @@ type: | |||
- how-to | |||
--- | |||
|
|||
This guide explains how to create a highly available (HA) active‑passive deployment of F5 NGINX Plus in the [Amazon Web Services](https://aws.amazon.com/) (AWS) cloud. It combines the `keepalived`‑based solution for high availability (provided by NGINX for on‑premises HA deployments) with the AWS Elastic IP address feature. | |||
This guide shows how to set up a highly available (HA) active‑passive deployment of F5 NGINX Plus in the [Amazon Web Services](https://aws.amazon.com/) (AWS) cloud. The solution combines keepalived with AWS Elastic IP address features. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
HI @MV1205 , I know you asked me about this. After further research, I've found that the full name of the acronym is actually "high availability". Therefore, I'm adding this change:
This guide shows how to set up a highly available (HA) active‑passive deployment of F5 NGINX Plus in the [Amazon Web Services](https://aws.amazon.com/) (AWS) cloud. The solution combines keepalived with AWS Elastic IP address features. | |
This guide shows how to set up a high availability (HA) active‑passive deployment of F5 NGINX Plus in the [Amazon Web Services](https://aws.amazon.com/) (AWS) cloud. The solution combines keepalived with AWS Elastic IP address features. |
|
||
This guide explains how to create an active‑passive HA deployment of NGINX Plus on AWS that doesn’t require ELB and thus isn't subject to its disadvantages. It combines the `keepalived`‑based solution with AWS’s [Elastic IP address](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/elastic-ip-addresses-eip.html) feature. Most importantly, this method addresses the requirement for a single IP address: as long as the primary NGINX Plus instance is operating correctly, it has the Elastic IP address. If the primary fails, the backup instance becomes the primary and reassociates the Elastic IP address with itself, as shown in the figure. | ||
- It limits the number of protocols NGINX Plus and your applications can support. In particular, ELB does not support UDP load balancing. | ||
|
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Normally we set up no lines between bullets... but a single line between a paragraph and a bullet. (I know, it's weird, but we follow conventions for bullets that aren't well documented.
To illustrate the change that you're proposing, I've added a couple of screenshots. It's minor, but these standards help us keep a "consistent look and feel."


|
||
NGINX also provides a [solution for active‑active HA of NGINX Plus in AWS]({{< ref "high-availability-network-load-balancer.md" >}}), using AWS Network Load Balancer. | ||
Refer to [AWS Network Load Balancer solution]({{< ref "high-availability-network-load-balancer.md" >}}) for active-active HA of NGINX Plus in AWS. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I think we prefer the original statement, as we at NGINX want to focus on the solutions that we provide. Therefore:
Refer to [AWS Network Load Balancer solution]({{< ref "high-availability-network-load-balancer.md" >}}) for active-active HA of NGINX Plus in AWS. | |
NGINX also provides a [solution for active‑active HA of NGINX Plus in AWS]({{< ref "high-availability-network-load-balancer.md" >}}), using AWS Network Load Balancer. |
|
||
<span id="ha-aws_overview"></span> | ||
|
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
|
||
- It increases the cost of your deployment. | ||
- It limits the number of protocols NGINX Plus and your applications can support. In particular, ELB does not support UDP load balancing. | ||
- It does not provide a single static IP address for NGINX Plus instances, which is a crucial requirement for some applications. | ||
|
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
|
||
<span id="ha-aws_troubleshooting"></span> | ||
|
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
## Troubleshooting | ||
|
||
If the solution doesn’t work as expected, check the `keepalived` logs, which are written to <span style="white-space: nowrap; font-weight:bold;">/var/log/syslog</span>. Also, you can manually run the commands that invoke the `awscli` utility in the <span style="white-space:nowrap; font-weight:bold;">nginx-ha-notify</span> script to check that the utility is working properly. | ||
|
||
<span id="ha-aws_caveats"></span> | ||
|
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
## Caveats | ||
|
||
- In most of our tests it took 5 to 6 seconds for the Elastic IP address to be reassigned. | ||
- In most of our tests it took five to six seconds for the Elastic IP address to be reassigned. | ||
|
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
- Elastic IP address reassignment is not free; see [Amazon EC2 Pricing](https://aws.amazon.com/ec2/pricing/). | ||
- Because the solution relies on the AWS APIs to reassociate the Elastic IP address, in some rare scenarios – such as flip‑flopping (the instances change state rapidly) or split‑brain (the instances lose connectivity with each other) – it is possible for the Elastic IP address not to end up associated with the primary. We were not able to reproduce these scenarios in our testing, however. If they occur, restart `keepalived` on both instances. | ||
|
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
|
||
<span id="has-aws_resources"></span> | ||
|
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Proposed changes
Problem: Revised the text and the headers of the document to adhere to style guide.
Please focus on (optional): I tried to make the body text easier to read and used sentence case on a few of the sub headings.
If this PR addresses an issue on GitHub, ensure that you link to it here: (#95)
Closes #ISSUE
Checklist
Before merging a pull request, run through this checklist and mark each as complete.
README.md
andCHANGELOG.md
Footnotes
Potentially sensitive changes include anything involving code, personally identify information (PII), live URLs or significant amounts of new or revised documentation. Please refer to our style guide for guidance about placeholder content. ↩