nginx load balancing docker deployment

1. nginx load balancing docker deployment

3.1 Create folder

Create redis-related folders in the home user directory

mkdir -p /home/jun/docker/nginx
cd /home/jun/docker/nginx
创建三个目录
mkdir shell  #构建、启动、停止等脚本
mkdir dockerfile  #dockerfile目录
mkdir volumes  #挂载配置、日志、数据文件

3.2 Prepare dockerfile

cd /home/hd/docker/nginx/dockerfile

vim Dockerfile

Dockerfile contents

FROM nginx:1.21.3-alpine

USER hd

WORKDIR /home/hd

#CMD

3.3 Build the image through dockerfile

Create a shell script file

build script: build docker image

vi build

#!/bin/bash
DOCKER_PATH=$PWD/../
sudo docker build -f $DOCKER_PATH/dockerfile/Dockerfile  -t nginx:1.21.3-alpine $DOCKER_PATH/dockerfile/

run script

vi run: Build and start the docker container

#!/bin/bash
DOCKER_PATH=$PWD/../
NAME=nginx
PORT=80
VERSION=1.21.3-alpine
docker run -d \
  -p ${PORT}:80 \
  -p 443:443 \
  -p 8080:8080 \
  --name ${NAME} \
  -v /etc/localtime:/etc/localtime \
  -v $DOCKER_PATH/volumes/conf/nginx.conf:/etc/nginx/nginx.conf \
  -v $DOCKER_PATH/volumes/log:/var/log/nginx \
  -v $DOCKER_PATH/volumes/conf/ssl.crt:/etc/nginx/ssl.crt \
  -v $DOCKER_PATH/volumes/conf/ssl_nopass.key:/etc/nginx/ssl_nopass.key \
  --restart=unless-stopped nginx:${VERSION}

exec script

vi exec: Enter the docker container that has been successfully started

#!/bin/sh
sudo docker exec -it nginx /bin/bash

logs script

vi logs: Docker container log When starting the container fails, you can execute the query log

#!/bin/bash
sudo docker logs nginx

restart

vi restart: docker container restart

#!/bin/sh
sudo docker restart nginx

rm

vi rm: delete docker container

#!/bin/sh
sudo docker rm nginx

rmi

vi rmi: Delete the docker image and it needs to be executed only when the dockerfile file is modified.

#!/bin/sh
sudo docker rmi nginx:1.21.3-alpine 

start

vi start: start docker container

#!/bin/sh
sudo docker start  nginx

stop

vi stop: stop docker container

#!/bin/sh
sudo docker stop nginx

File permissions
chown -R hd:hd /home/hd/docker-files/nginx
executable
chmod +x /home/hd/docker-files/nginx/shell/*

user root;
pid  /var/run/nginx.pid;
error_log /var/log/nginx/error.log warn;

events {
    use epoll;
    worker_connections  16384;
}

http {
    include       mime.types;
    default_type  application/octet-stream;

    sendfile        on;
    client_max_body_size 50m;
    gzip_static always;
    gunzip on;
    gzip  on;
    gzip_types
        text/css
        text/javascript
        text/xml
        text/plain
        text/x-component
        application/javascript
        application/json
        application/xml
        application/rss+xml
        font/truetype
        font/opentype
        application/vnd.ms-fontobject
        image/svg+xml;

    keepalive_timeout  65;
    client_body_timeout 10s;
    client_header_timeout 10s;
    send_timeout 10s;
    proxy_read_timeout 180s;
    proxy_connect_timeout 10s;
    access_log off;

    upstream upstreamAPP {
       server  192.212.8.117:443;
       server  192.212.8.116:443;	
    }
	
    server {
        listen 443 ssl;
        server_name  baidu.com;
        ssl_certificate     /etc/nginx/ssl.crt;
   	ssl_certificate_key /etc/nginx/ssl_nopass.key;
        location / {
            proxy_pass  https://upstreamAPP;
	    proxy_set_header Host $host:443;
     #       proxy_set_header X-Real-IP $remote_addr;
            proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
            proxy_set_header Via "nginx";
	    proxy_ssl_session_reuse off;
	    proxy_ssl_protocols TLSv1.2; 
        }
		
	}

}



Guess you like

Origin blog.csdn.net/qq_44961149/article/details/121116506