This article is brought to you in partnership with Alibaba Cloud. Thank you for supporting our partners.
Want to share your Alibaba Cloud expertise and win a MacBook Pro? Submit your best tip here! [Link to competition details]
Need to efficiently manage multiple websites from a single Linux server on Alibaba Cloud? This tutorial demonstrates a production-ready setup using Ubuntu, Nginx, and Docker. While advanced, we'll assume familiarity with networking, server administration, and containerization.
Key Benefits:
The Reverse Proxy Solution:
This guide addresses the need to manage multiple websites or a server cluster efficiently and securely. A reverse proxy receives client requests, forwards them to the appropriate backend server, and returns the response. This architecture offers several advantages:
Why Choose Nginx?
NGINX excels in performance and resource consumption compared to Apache, particularly when handling multiple websites. Its lightweight architecture minimizes overhead, making it a superior choice for this scenario.
Why Alibaba Cloud?
Alibaba Cloud, a leading global cloud provider, offers a complete set of services for building and deploying this solution.
Deployment on Alibaba Cloud:
Alibaba Cloud Account: Create a free Alibaba Cloud account. [Link to sign-up]
Ubuntu Server: Set up an Ubuntu server instance on Alibaba Cloud. [Link to Ubuntu setup guide] (Other Linux distributions are also compatible).
NGINX Installation (Manual Method):
sudo apt-get update sudo apt-get install nginx systemctl status nginx
You can manage Nginx using systemctl
(start, stop, restart, enable/disable on boot). Key directories: /var/www/html
(default website), /etc/nginx
(configuration).
Docker Installation:
sudo apt-get remove docker docker-engine docker.io sudo apt-get update sudo apt-get install docker-ce
(Refer to the official Docker documentation for specific version installation or repository setup: [Link to Docker CE installation]).
Network Setup: Create a Docker network:
docker network create nginx-proxy
NGINX Proxy Deployment: Run the jwilder/nginx-proxy
image:
docker run -d -p 80:80 -p 443:443 --name nginx-proxy --net nginx-proxy -v /var/run/docker.sock:/tmp/docker.sock:ro jwilder/nginx-proxy
This sets up the reverse proxy, mapping ports 80 and 443 and mounting the Docker socket for container discovery.
Deploying Websites: Launch containerized applications, specifying the domain using the VIRTUAL_HOST
environment variable:
docker run -d --net nginx-proxy -e VIRTUAL_HOST=subdomain.yourdomain.com --name site_name your_docker_image
Replace your_docker_image
with your application image (e.g., WordPress, custom application).
Docker Compose (Optional): For advanced automation, use Docker Compose with a docker-compose.yml
file to manage the entire infrastructure. [Example docker-compose.yml provided in original article]
Resources:
Conclusion:
This setup provides a robust, scalable, and automated solution for managing multiple websites from a single server on Alibaba Cloud. Remember to configure your domain names to point to the Alibaba Cloud server's public IP address. Further enhancements, such as load balancing and CDNs, can be integrated for even greater scalability and performance.
(FAQs section from original article can be appended here, slightly rephrased for better flow and conciseness if desired.)
The above is the detailed content of How to Set Up a Reverse NGINX Proxy on Alibaba Cloud. For more information, please follow other related articles on the PHP Chinese website!