In today’s fast-evolving digital infrastructure world, secure, scalable, and resilient deployment environments are no longer optional—they’re essential. At Convergence Resources, we’re not just theorizing about solutions.
We build, test, and deploy live stacks every day that power businesses across Canada. Today’s spotlight is on three critical technologies we use daily: Nginx, Docker, and iSCSI, orchestrated live from our lab in Toronto.
A Live Deployment Morning in Our Toronto Lab
It’s 9:00 a.m. in our Toronto lab. The hum of servers fills the air as our team boots up a freshly provisioned Linux machine. This is more than a demo—it’s our daily workflow. The same configurations we apply here will power eCommerce shops in Winnipeg, enterprise software in Calgary, and web platforms for clients in India. Today’s exercise is about bringing Nginx, Docker, and iSCSI together into one seamless, real-world deployment.
Step 1: Deploying Nginx via Docker
We begin with setting up Nginx inside a Docker container. Here’s the command:
docker run --name nginx-proxy
-p 80:80 -p 443:443
-v ./nginx.conf:/etc/nginx/nginx.conf:ro
-d nginx:alpine
This launches a lightweight Nginx reverse proxy that routes traffic for two containers already running:
docker run -d --name webapp1 our-webapp:latest
docker run -d --name webapp2 our-webapp:latest
With this, requests to /app1 and /app2 are routed to the respective services. No special configurations, no external load balancers—just pure Docker networking paired with Nginx’s robust routing abilities.
The benefit? Portability, resource management, and operational clarity. In practice, we’ve found that Nginx containers can be easily migrated across hosts without breaking configurations or routing logic. This aligns well with how our teams manage distributed environments under real-time constraints.
Step 2: Enterprise Storage with iSCSI & iscsiadm
Docker excels at running stateless containers. But what about persistent data? That’s where iSCSI comes in.
On a separate rack server, we’ve configured an iSCSI target. From the Docker host, we discover and connect using iscsiadm:
sudo apt update && sudo apt install open-iscsi
sudo systemctl enable --now iscsid
sudo iscsiadm -m discovery -t sendtargets -p 192.168.1.50
sudo iscsiadm -m node -T iqn.2025-06.ca.lab:storage1 -p 192.168.1.50:3260 --login
A new device /dev/sdb becomes visible. We format and mount it:
sudo mkfs.xfs /dev/sdb
sudo mkdir /mnt/iscsi
sudo mount /dev/sdb /mnt/iscsi
To persist the mount, we add it to /etc/fstab with the _netdev flag, ensuring clean boot-time mounts.
This is the same configuration we roll out to clients dealing with high I/O operations—especially in sectors like healthcare, eCommerce, and logistics.

Step 3: Attaching Persistent iSCSI Volume to Containers
With storage mounted, we make it available to a Docker container:
docker run -d
--name data-heavy-app
--mount type=bind,source=/mnt/iscsi,target=/data
our-data-app:latest
Now the container writes data directly to enterprise-grade remote block storage. The key difference? Data survives restarts, updates, and migrations.
This setup is vital for databases, media processing apps, and any system that needs durability and speed without compromise.
Step 4: Fine-Tuning Nginx for Performance and Security
Next, we enhance the Nginx config. Out of the box, Nginx is fast. But we apply additional hardening steps:
-
Hide server tokens to prevent version leaks
-
Enforce TLS 1.2 or newer only
-
Enable secure cipher suites
-
Configure caching for static content
-
Rate limit and connection throttle for basic DDoS protection
These changes provide better security posture, eliminate trivial info leaks, and improve response times. After implementation, our lab test shows improved TLS handshake speeds and latency reductions on first byte.
Read Out: 20Gbps Network Backbone with FS 3900 Switches
Why This Stack Just Works
Here’s how the full picture looks:
| Feature | Practical Benefit |
|---|---|
| Docker + Nginx | Isolated containers, controlled resources, fast rollouts |
| Reverse Proxy | One IP, many services, central SSL management |
| iSCSI via iscsiadm | Remote storage at block level, ideal for stateful apps |
| Persistent Mounts | Survive restarts, perfect for databases or logs |
Our clients in Calgary often ask, “Will this scale under load?” And the answer is yes. We’ve run this setup with 50k+ daily sessions and high read/write rates.
Real-World Best Practices
While the lab is clean and controlled, field deployments can be messy. Here’s what we’ve learned deploying this stack in the wild:
-
Always initiate iSCSI at host-level (not inside containers)
-
Use
device-mapper-multipathfor redundancy and performance -
Secure iSCSI with CHAP and isolate using VLANs or VRFs
-
Monitor with tools like
iscsistatsand Prometheus exporters -
Team network interfaces with LACP (802.3ad) for throughput and failover
Monitoring the Live Lab
Here’s what we see right now on our lab dashboard:
-
nginx -tvalidates clean config -
docker psconfirms all containers are healthy -
lsblkanddf -hshow mounted iSCSI block volume -
Application logs show no data loss across restarts
-
CPU and memory usage remain stable under load
From the console to the browser, everything performs as expected. Our developers are accessing the services via domain-based routing handled by Nginx, and our persistent data lives securely on remote storage.

Scaling Across Canada and Beyond: Field-Proven Use Cases
We’ve deployed this exact stack—sometimes with minor tweaks—for clients across multiple industries and cities:
-
Toronto: Coordinating deployment pipelines for fintech platforms
-
Winnipeg: Hosting high-availability inventory management systems
-
Calgary: Real-time data aggregation for oil and gas instrumentation
-
India: Delivering scalable eLearning and SaaS platforms across regions
And in every case, it starts in our Toronto lab. That’s the proving ground before it hits production.
Conclusion: A Unified, Proven Architecture
If you’re looking to modernize your infrastructure with real-world, tested technologies, this stack is for you. With Nginx acting as a reliable, secure front-end, Docker enabling flexible deployments, and iSCSI delivering enterprise-grade persistence, the combination is powerful, scalable, and built for today’s workloads.
At Convergence Resources, this isn’t just a lab project. It’s our standard deployment method. Our clients benefit from rapid provisioning, resilient infrastructure, and future-ready architecture.
Want to see how this works in your environment? Let’s talk. We’re happy to arrange a live walkthrough and tailor a deployment to your specific needs.
Reach out to Convergence Resources to schedule your personalized demo or pilot deployment. We’re here to help you modernize confidently, one block device at a time.