Artigo Diretório
Docker integra nginx
1 Introdução ao nginx
Com as funções de servidor http, host virtual, proxy reverso, balanceamento de carga,
pode ser realizado com base no ip, porta e nome de domínio
2 host virtual nginx
2.1 Execução simples
1 Digite o diretório de instalação e edite o arquivo de inicialização
#创建目录
mkdir -p /usr/local/docker/nginx
#进入目录
cd /usr/local/docker/nginx
#编辑文件
vi docker-compose.yml
2 Inicie o arquivo docker-compose.yml
version: '3'
services:
nginx:
restart: always
image: nginx
container_name: nginx
ports:
- 81:80
3 Inicie o programa
docker-compose up
4 Verificação de acesso
- Endereço da
http://192.168.30.140:81
visita, resultado da visita conforme mostrado abaixo
2.2 Usar volume de dados
Mapeie o arquivo de configuração do contêiner para a máquina host para facilitar a modificação do arquivo de configuração. Siga as etapas em 1.1.1 aqui
1 Pare o contêiner nginx que 1.1.1 iniciou
cd /usr/local/docker/nginx && docker-compose down
2 Edite o arquivo de inicialização
vi docker-compose.yml
3 Modifique o arquivo de inicialização docker-compose.yml
version: '3'
services:
nginx:
restart: always
image: nginx
container_name: nginx
ports:
- 81:80
volumes:
- ./conf/nginx.conf:/etc/nginx/nginx.conf
- ./project/:/usr/share/nginx/project/
4 Entre no diretório de configuração e crie um arquivo de configuração
#进入配置目录
mkdir conf && cd conf/
#创建配置文件
vi nginx.conf
5 Defina o arquivo de configuração nginx.conf
#这里是处理的线程数,可根据自己的cpu数设置,在版本1.11.3之前会出现惊群问题(多个cpu同时执行一个请求,浪费资源)
worker_processes 1;
events {
# 一个线程的连接数
worker_connections 1024;
}
http {
include mime.types; #文件规范
default_type application/octet-stream;
sendfile on;
keepalive_timeout 65;
server {
listen 80;
server_name 192.168.30.140;
location / {
root /usr/share/nginx/project/port81;
index index.html index.html;
}
}
}
6 Entre no diretório do projeto e defina o arquivo do projeto
mkdir -p /usr/local/docker/nginx/project/port81 && cd /usr/local/docker/nginx/project/port81 && echo 'hello 81' > index.html
7 Inicie o contêiner
cd /usr/local/docker/nginx && docker-compose up -d
8 verificação de acesso
- Endereço da
http://192.168.30.140:81
visita, resultado da visita conforme mostrado abaixo
3 Exemplo de proxy reverso
3.1 Proxy de encaminhamento e proxy reverso
1 Forward proxy
Forward proxy, o usuário instala a ferramenta do servidor proxy na máquina ou define o endereço do servidor proxy . Quando o usuário acessa o servidor de destino, o servidor proxy é acessado primeiro e, em seguida, o servidor proxy solicita o host de destino. Os dados retornados pelo host de destino são primeiro armazenados em cache no servidor proxy. O servidor proxy retorna os dados ao usuário após recebê-los.
1 Melhore a velocidade de acesso e leia diretamente o cache do
servidor proxy. 2 Configure um firewall no servidor proxy para filtrar informações e aumentar a segurança do sistema.
3 Visite sites que não podem ser acessados diretamente, como www.google.com
2 Proxy reverso Proxy
reverso, o servidor proxy é instalado no servidor de destino , os usuários só podem saber o endereço IP do proxy reverso, mas não a existência do cluster de servidor atrás do servidor proxy.
1 Configure o cache para reduzir a pressão de acesso do servidor
2 Impeça ataques maliciosos da rede externa para a rede interna
3 Realize o balanceamento de carga
3.2 Demonstração de proxy reverso
Aqui estão três arquivos que precisam ser observados para acesso ao proxy tomcat: 1 arquivo de contêiner iniciado por tomcat; arquivo de contêiner iniciado por 2nginx; arquivo de configuração 3nginx
3.2.1 Inicie o contêiner do Tomcat
1 Digite o diretório de instalação e edite o arquivo de inicialização
#创建安装目录
mkdir -p /usr/local/docker/tomcat && cd /usr/local/docker/tomcat
#编辑启动文件
vi docker-compose.yml
2 Inicie o arquivo docker-compose.yml
version: '3'
services:
tomcat:
restart: always
image: tomcat
container_name: tomcat
ports:
- 9090:8080
3 Inicie o programa
docker-compose up
4 Verificação de acesso
- Endereço da
http://192.168.30.140:9090
visita, resultado da visita conforme mostrado abaixo
3.2.2 Inicie o proxy nginx
1 Entre no diretório de instalação e edite o arquivo de configuração ngxin
#进入目录
cd /usr/local/docker/nginx/conf
#编辑文件
vi nginx.conf
2 O arquivo de configuração nginx.conf
substitui root por proxy_pass
#这里是处理的线程数,可根据自己的cpu数设置,在版本1.11.3之前会出现惊群问题(多个cpu同时执行一个请求,浪费资源)
worker_processes 1;
events {
# 一个线程的连接数
worker_connections 1024;
}
http {
include mime.types; #文件规范
default_type application/octet-stream;
sendfile on;
keepalive_timeout 65;
server {
listen 9090;
server_name 192.168.30.140;
location / {
proxy_pass http://192.168.30.140:9090;
index index.html index.html;
}
}
}
3 Pare o contêiner nginx que 1.1.1 iniciou
cd /usr/local/docker/nginx && docker-compose down
4 Edite o arquivo de inicialização
vi docker-compose.yml
5 Modifique o arquivo de inicialização docker-compose.yml
version: '3'
services:
nginx:
restart: always
image: nginx
container_name: nginx
ports:
- 90:9090
volumes:
- ./conf/nginx.conf:/etc/nginx/nginx.conf
- ./project/:/usr/share/nginx/project/
6 Inicie o programa
docker-compose up
7 verificação de acesso
- Endereço da
http://192.168.30.140:90
visita, resultado da visita conforme mostrado abaixo
4 Exemplo de balanceamento de carga
4.1 Inicie o contêiner do Tomcat
1 Digite o diretório de instalação e edite o arquivo de inicialização
#创建安装目录
mkdir -p /usr/local/docker/tomcat && cd /usr/local/docker/tomcat
#编辑启动文件
vi docker-compose.yml
2 Inicie o arquivo docker-compose.yml
version: '3'
services:
tomcat1:
restart: always
image: tomcat
container_name: tomcat1
ports:
- 9090:8080
tomcat2:
restart: always
image: tomcat
container_name: tomcat2
ports:
- 9091:8080
3 Inicie o programa
docker-compose up
4 Modificar tomcat homepage
por docker ps
consultar ID de recipiente do tomcat, como mostrado a seguir,
introduzir o contentor
docker exec -it e0 bash
Modifique a página inicial e saia
echo '9090' >> webapps/ROOT/index.jsp && exit
Da mesma forma, adicione o conteúdo 9091 à página inicial do contêiner b6 de 9091.
5 Verificação de acesso
- Endereço da
http://192.168.30.140:9090
visita, resultado da visita conforme mostrado abaixo
- Endereço da
http://192.168.30.140:9091
visita, resultado da visita conforme mostrado abaixo
4.2 Iniciar o proxy nginx
1 Entre no diretório de instalação e edite o arquivo de configuração ngxin
#进入目录
cd /usr/local/docker/nginx/conf
#编辑文件
vi nginx.conf
2 O arquivo de configuração nginx.conf
adiciona upstream e modifica proxy_pass
#这里是处理的线程数,可根据自己的cpu数设置,在版本1.11.3之前会出现惊群问题(多个cpu同时执行一个请求,浪费资源)
worker_processes 1;
events {
# 一个线程的连接数
worker_connections 1024;
}
http {
include mime.types; #文件规范
default_type application/octet-stream;
sendfile on;
keepalive_timeout 65;
upstream tomcat {
server 192.168.30.140:9090 weight=10;
server 192.168.30.140:9091 weight=10;
}
server {
listen 9090;
server_name 192.168.30.140;
location / {
proxy_pass http://tomcat;
index index.html index.html;
}
}
}
3 Pare o contêiner nginx que 1.1.1 iniciou
cd /usr/local/docker/nginx && docker-compose down
4 Edite o arquivo de inicialização
vi docker-compose.yml
5 Inicie o arquivo docker-compose.yml
version: '3'
services:
nginx:
restart: always
image: nginx
container_name: nginx
ports:
- 90:9090
volumes:
- ./conf/nginx.conf:/etc/nginx/nginx.conf
- ./project/:/usr/share/nginx/project/
6 Inicie o programa
docker-compose up
7 verificação de acesso
- Endereço da
http://192.168.30.140:90
visita, resultado da visita conforme mostrado abaixo
5 Exemplo de arquivos estáticos de front-end
1 O diretório do arquivo docker-compose.yml de inicialização
é: / usr / local / docker / nginx
version: '3'
services:
nginx:
restart: always
image: nginx
container_name: nginx
ports:
- 81:80
volumes:
- ./conf/nginx.conf:/etc/nginx/nginx.conf
- ./project/:/usr/share/nginx/project/
2 O
diretório do arquivo de configuração nginx.conf é: / usr / local / docker / nginx / conf
#这里是处理的线程数,可根据自己的cpu数设置,在版本1.11.3之前会出现惊群问题(多个cpu同时执行一个请求,浪费资源)
worker_processes 1;
events {
# 一个线程的连接数
worker_connections 1024;
}
http {
include mime.types; #文件规范
default_type application/octet-stream;
sendfile on;
keepalive_timeout 65;
server {
listen 80;
server_name 192.168.30.140;
location / {
root /usr/share/nginx/project;
index index.html index.html;
}
}
}
3 Descompacte o arquivo, o diretório do arquivo estático de front-end AdminLTE-2.4.17.tar.gz
é: / usr / local / docker / nginx / project
tar -xzvf AdminLTE-2.4.17.tar.gz
4 Inicie o programa O
diretório atual é: / usr / local / docker / nginx
docker-compose up
5 verificação de acesso
- Endereço da
http://192.168.30.140:81/AdminLTE-2.4.17/index.html
visita, resultado da visita conforme mostrado abaixo