Skip to content

Deploy Nginx on the Microsoft Azure Cobalt 100 processors #2208

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

Open
wants to merge 1 commit into
base: main
Choose a base branch
from

Conversation

odidev
Copy link
Contributor

@odidev odidev commented Aug 5, 2025

  1. Deploy the Nginx web server on an Azure Linux 3.0 Arm64-based Docker container and an Azure Linux 3.0 custom-image-based Azure virtual machine.
  2. Perform Nginx baseline testing and benchmarking in both the containerized and virtual machine environments.
  • [ * ] I have reviewed Create a Learning Path
  • [ * ] I have checked my contribution for confidential information
    By submitting this pull request, I confirm that you can use, modify, copy, and redistribute this contribution, under the terms of the Creative Commons Attribution 4.0 International License.
    Signed-off-by: odidev [email protected]

In the “Size” field, click on “See all sizes” and select the D-Series v6 family of virtual machine. Select “D4ps_v6” from the list and create the virtual machine.

![Nginx Screenshot](./instance.png)

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Please break down the Name/Values as steps, and add a "final screen shot" showing the "Create a vm" screen with all the values selected for reference.

Select “Create”, and fill in the details such as Name, and Region. Choose the image for your virtual machine (for example – Ubuntu 24.04) and select “Arm64” as the virtual machine architecture.

In the “Size” field, click on “See all sizes” and select the D-Series v6 family of virtual machine. Select “D4ps_v6” from the list and create the virtual machine.

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Explicitly say to click "Review + create" button vs "create the vm" in case the user is not familiar with Azure

In the “Size” field, click on “See all sizes” and select the D-Series v6 family of virtual machine. Select “D4ps_v6” from the list and create the virtual machine.

![Nginx Screenshot](./instance.png)

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The pre-reqs on the previous page state to open 443,80, and 22. There are no steps on this page directing the user to modify the inbound ports rules settings to allow those. As access/security settings are a common hurdle for many users, we may want to spell this out.

![Nginx Screenshot](./instance.png)

The virtual machine should be ready and running; you can SSH into the virtual machine using the PEM key, along with the Public IP details.

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

After instructing the user to click create, it may also be helpful to walk them through the confirmation and SSH key download screens.

layout: learningpathall
---


Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This page's content is confusing me a bit. There are way too many dependencies for going a container-route for this LP, and even if you do, there is still the need to document / add clarity on the container-based solution.

I suggest to be prescriptive documenting only the non-container implementation for this LP, as it requires less dependencies and manual-steps than a VM-based solution.

This way you focus on the easiest path to implement on Arm, without adding additional commentary/steps for a more difficult implementation. (Not to mention the steps required for the docker install are not included yet anyway (installing docker, etc).)

That would also mean to go back to the overview and remove references to this LP including container-based objectives.

Install Nginx using `dnf`, start the service, and allow **HTTP/HTTPS** in the firewall. Then access the default welcome page using your virtual machine’s public IP in a browser.

### Install Nginx

Copy link
Contributor

@geremyCohen geremyCohen Aug 19, 2025

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

in a non-container world, replace
sudo dnf install -y nginx
with
sudo apt-get install -y nginx

to run on the previously instructed Ubuntu 24 OS

- Confirms your web server is reachable on **localhost**.

### Allow HTTP Traffic in Firewall

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This step doesnt appear neccesary on Ubuntu 24. Inbound from the internet you would need to modify the inbound ports -- i comment more on that at the create-instance page.

sudo firewall-cmd --reload
```
Now you can access the NGINX default page in a browser:

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

For simplicity, I suggest telling the user to run this command, and then paste it into their browser

echo "http://$(curl -s ifconfig.me)/"

layout: learningpathall
---


Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

As we already have testing locally and via web browser that Nginx is working, this page may be redundant. Instead, you can add a link on the previous page to nginx getting started content, eg https://nginx.org/en/docs/beginners_guide.html

**ApacheBench (ab)** is a lightweight command-line tool for benchmarking HTTP servers. It measures performance metrics like requests per second, response time, and throughput under concurrent load.

1. Install ApacheBench

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

For Ubuntu 24, replace sudo dnf install with:

sudo apt-get update
sudo apt-get install apache2-utils

- **Transfer rate** – Data throughput.
- **Connection times** – Breakdown of min/mean/max connect, processing, and total times.
- **Percentage served** – Percentile distribution of response times.

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I suggest removing all the content from here to the end of the page, and simply mention if they wish to benchmark results across architectures and instance types, they can run this benchmark on each, and compare the results on their own.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants