Home Operation and Maintenance Nginx Use nginx to reverse proxy multiple docker containers

Use nginx to reverse proxy multiple docker containers

Sep 21, 2019 am 10:05 AM
docker nginx

Introduction

When I introduced docker before, I said that one of its advantages is that multiple environments can be built on the same server and isolated from each other. I did the actual operation yesterday, and I never expected that there would be so many pitfalls, and it would be more time-consuming than building a server from scratch before. After changing several plans, I finally solved it. I will ignore the sadness in the middle and just talk about the operation method.

Recommended tutorial: nginx tutorial

Architecture

The laradock image already exists in the server, which can run the laravel environment and Other PHP includes nginx, mysql, redis, etc.

My idea is to add another nginx container for reverse proxy. Distribute according to the subdomain name, which can be distributed to laradock or any other container (including wordpress, python, java), etc.

Modify lradock

To be modified There is only one place, which is the port nginx listens on.

1. Enter the laradock directory

2. Modify the .env file and modify the NGINX_HOST_HTTP_PORT value from 80 to 8000

3. Stop nginx, docker-compose stop nginx

4. Reinstall nginx, docker-compose build nginx

5. Start docker-compose up -d nginx

At this time, you cannot access it successfully in the browser. Because nginx no longer listens to port 80.

Add nginx container

Add a new nginx container for reverse proxy. When installing laradock, there is already an image of nginx:alpine, and the container can be generated directly. Of course, you can also pull a new image again. (Alpine version is recommended)

1. Check the nginx image ID, docker iamges

2. Generate a new nixn container, docker run --name proxy_nginx -p 80:80 -d [nginx image id]. You can also add the -v parameter to map the configuration file. My environment has less changes and is not needed.

3. When accessed in the browser at this time, it should be the default page of nginx, indicating that the startup is successful

4. Enter the generated container docker exec -it proxy_nginx sh

5. Install vim, apk add vim

6. Check the host ip, /sbin/ip route| awk '/default/ { print $3 }'

7. Add a new configuration file laradock.conf in the /etc/nginx/conf.d/ directory with the following content

server {
    listen  80;
    server_name  you_site;
    location / {
        proxy_set_header  Host  $http_host;
        proxy_set_header  X-Real-IP  $remote_addr;
        proxy_set_header  X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_pass  http://[宿主机IP]:8000;
    }
}
Copy after login

1. Exit Container, and then restart docker restart proxy_nginx

2. Open port 8000, refer to here

Conclusion

If you visit at this time, you can proxy to laradock nginx in it. If you want to add other containers in the future, just add new proxy rules in proxy_nginx.

The above is the detailed content of Use nginx to reverse proxy multiple docker containers. For more information, please follow other related articles on the PHP Chinese website!

Statement of this Website
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn

Hot AI Tools

Undresser.AI Undress

Undresser.AI Undress

AI-powered app for creating realistic nude photos

AI Clothes Remover

AI Clothes Remover

Online AI tool for removing clothes from photos.

Undress AI Tool

Undress AI Tool

Undress images for free

Clothoff.io

Clothoff.io

AI clothes remover

Video Face Swap

Video Face Swap

Swap faces in any video effortlessly with our completely free AI face swap tool!

Hot Tools

Notepad++7.3.1

Notepad++7.3.1

Easy-to-use and free code editor

SublimeText3 Chinese version

SublimeText3 Chinese version

Chinese version, very easy to use

Zend Studio 13.0.1

Zend Studio 13.0.1

Powerful PHP integrated development environment

Dreamweaver CS6

Dreamweaver CS6

Visual web development tools

SublimeText3 Mac version

SublimeText3 Mac version

God-level code editing software (SublimeText3)

How to update the image of docker How to update the image of docker Apr 15, 2025 pm 12:03 PM

The steps to update a Docker image are as follows: Pull the latest image tag New image Delete the old image for a specific tag (optional) Restart the container (if needed)

How to exit the container by docker How to exit the container by docker Apr 15, 2025 pm 12:15 PM

Four ways to exit Docker container: Use Ctrl D in the container terminal Enter exit command in the container terminal Use docker stop <container_name> Command Use docker kill <container_name> command in the host terminal (force exit)

How to copy files in docker to outside How to copy files in docker to outside Apr 15, 2025 pm 12:12 PM

Methods for copying files to external hosts in Docker: Use the docker cp command: Execute docker cp [Options] <Container Path> <Host Path>. Using data volumes: Create a directory on the host, and use the -v parameter to mount the directory into the container when creating the container to achieve bidirectional file synchronization.

How to restart docker How to restart docker Apr 15, 2025 pm 12:06 PM

How to restart the Docker container: get the container ID (docker ps); stop the container (docker stop <container_id>); start the container (docker start <container_id>); verify that the restart is successful (docker ps). Other methods: Docker Compose (docker-compose restart) or Docker API (see Docker documentation).

How to view the docker process How to view the docker process Apr 15, 2025 am 11:48 AM

Docker process viewing method: 1. Docker CLI command: docker ps; 2. Systemd CLI command: systemctl status docker; 3. Docker Compose CLI command: docker-compose ps; 4. Process Explorer (Windows); 5. /proc directory (Linux).

How to use docker desktop How to use docker desktop Apr 15, 2025 am 11:45 AM

How to use Docker Desktop? Docker Desktop is a tool for running Docker containers on local machines. The steps to use include: 1. Install Docker Desktop; 2. Start Docker Desktop; 3. Create Docker image (using Dockerfile); 4. Build Docker image (using docker build); 5. Run Docker container (using docker run).

How to check the name of the docker container How to check the name of the docker container Apr 15, 2025 pm 12:21 PM

You can query the Docker container name by following the steps: List all containers (docker ps). Filter the container list (using the grep command). Gets the container name (located in the "NAMES" column).

What to do if the docker image fails What to do if the docker image fails Apr 15, 2025 am 11:21 AM

Troubleshooting steps for failed Docker image build: Check Dockerfile syntax and dependency version. Check if the build context contains the required source code and dependencies. View the build log for error details. Use the --target option to build a hierarchical phase to identify failure points. Make sure to use the latest version of Docker engine. Build the image with --t [image-name]:debug mode to debug the problem. Check disk space and make sure it is sufficient. Disable SELinux to prevent interference with the build process. Ask community platforms for help, provide Dockerfiles and build log descriptions for more specific suggestions.

See all articles