Home Operation and Maintenance Nginx How Docker uses nginx to build a tomcat cluster

How Docker uses nginx to build a tomcat cluster

May 28, 2023 pm 03:47 PM
docker nginx tomcat

First create the tomcat folder. In order to facilitate the configuration of docker, I will create it directly in the root directory. Step 1: Create the folder: publish the folder

mkdir -p /docker/tomcat/webapp8081

mkdir -p /docker/tomcat/webapp8082

mkdir -p /docker/tomcat/webapp8083

How Docker uses nginx to build a tomcat cluster

Step 2: Create a tomcat container (the port can be changed according to your actual situation)

docker run -d --name tomcat8081 -p 8081:8080 -v /docker/tomcat/webapp8081:/usr/local/tomcat/webapps/ tomcat
docker run -d --name tomcat8082 -p 8082:8080 -v /docker/tomcat/webapp8082:/usr/local/tomcat/webapps/ tomcat
docker run -d --name tomcat8083 -p 8083:8080 -v /docker/tomcat/webapp8083:/usr/local/tomcat/webapps/ tomcat

After the creation is completed, use the docker ps command to check whether the creation is successful and use

How Docker uses nginx to build a tomcat cluster

Step 3: Check tomcat’s ip. Use the command to query. Only the first example is used.

docker inspect tomcat8081

How Docker uses nginx to build a tomcat cluster

Step 4: In order to facilitate testing, I will not upload the war package here, and directly create a hello/index.html file in it

How Docker uses nginx to build a tomcat cluster

Note: If nginx is docker The container must use the tomact container ip, otherwise it will not be connected.

First download the official version of nginx from the official website

Official website:

Click download on the right navigation bar to enter the download Select the corresponding version in the interface to download. I will use nginx-1.6.2.tar

How Docker uses nginx to build a tomcat cluster

After the download is completed, put the file in a custom folder. Here I will Place it in /usr/local/tools/nginx-1.6.2

How Docker uses nginx to build a tomcat cluster

Use this command to decompress nginx:

tar vxf nginx-1.6 .2.tar.gz

After decompression is completed, I return to the root directory and create a host folder in the root directory. The purpose is to create files so that nginx can be mounted (you can also Customized)

Create the host folder here

mkdir -p /docker/nginx/
vim /docker/nginx/nginx.conf
mkdir -p /docker/nginx/html

Copy the index.html 50x.html in the html folder in negix you decompressed to the /docker/nginx/html folder

Here is a negix conf file. If you add annotations, the format may change. Remember to delete the annotations.

nginx.conf:

user root;

worker_processes 2; #Set your number of threads here

#error_log logs/error.log;
#error_log logs/error.log notice;
#error_log logs/error.log info;
#pid logs/nginx.pid;
events {
worker_connections 1024; #最大连接数量
}
http {
include mime.types;
default_type application/octet-stream;
upstream mytomcat{
server 172.17.0.3:8080 weight=10;
# 另外mytomcat 这里名字和下方的名字保持一致 这里需要和你的tomcat ip保持一致
server 172.17.0.4:8080 weight=50;
server 172.17.0.5:8080 weight=10;
}
#log_format main '$remote_addr - $remote_user [$time_local] "$request" '
# '$status $body_bytes_sent "$http_referer" '
# '"$http_user_agent" "$http_x_forwarded_for"';
#access_log logs/access.log main;
sendfile on;
#tcp_nopush on;
#keepalive_timeout 0;
keepalive_timeout 65;
#gzip on;
server {
listen 80;
server_name mytomcat;
#charset koi8-r;
#access_log logs/host.access.log main;
location / {
# root html;
# index index.html index.htm;
proxy_connect_timeout 50;
proxy_read_timeout 10;
proxy_send_timeout 20;
proxy_pass http://mytomcat;
}
#error_page 404 /404.html;
# redirect server error pages to the static page /50x.html
#
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root html;
}
# proxy the php scripts to apache listening on 127.0.0.1:80
#
#location ~ \.php$ {
# proxy_pass http://127.0.0.1;
#}
# pass the php scripts to fastcgi server listening on 127.0.0.1:9000
#
#location ~ \.php$ {
# root html;
# fastcgi_pass 127.0.0.1:9000;
# fastcgi_index index.php;
# fastcgi_param script_filename /scripts$fastcgi_script_name;
# include fastcgi_params;
#}
# deny access to .htaccess files, if apache's document root
# concurs with nginx's one
#
#location ~ /\.ht {
# deny all;
#}
}
# another virtual host using mix of ip-, name-, and port-based configuration
#
#server {
# listen 8000;
# listen somename:8080;
# server_name somename alias another.alias;
# location / {
# root html;
# index index.html index.htm;
# }
#}
# https server
#
#server {
# listen 443 ssl;
# server_name localhost;
# ssl_certificate cert.pem;
# ssl_certificate_key cert.key;
# ssl_session_cache shared:ssl:1m;
# ssl_session_timeout 5m;
# ssl_ciphers high:!anull:!md5;
# ssl_prefer_server_ciphers on;
# location / {
# root html;
# index index.html index.htm;
# }
#}
}

Use docker to start

Create and run the container

81:Yes The port for external network access can be modified according to the actual situation

/docker/nginx/nginx.conf The local host file

/etc/nginx/nginx.conf The decompressed directory (it can also be used without Change)

/docker/nginx/html Local host file

/usr/share/nginx/html Unzipped directory

docker run -d --name nginx81 -p 81:80 -v /docker/nginx/nginx.conf:/etc/nginx/nginx.conf -v /docker/nginx/html:/usr/share/nginx/html nginx

Test

http ://39.106.147.162:8085/hello/index.html What I configure here is port 8085

Direct access

How Docker uses nginx to build a tomcat cluster

The above is the detailed content of How Docker uses nginx to build a tomcat cluster. 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

Undress AI Tool

Undress AI Tool

Undress images for free

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.

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 troubleshoot Docker issues How to troubleshoot Docker issues Jul 07, 2025 am 12:29 AM

When encountering Docker problems, you should first locate the problem, which is problems such as image construction, container operation or network configuration, and then follow the steps to check. 1. Check the container log (dockerlogs or docker-composelogs) to obtain error information; 2. Check the container status (dockerps) and resource usage (dockerstats) to determine whether there is an exception due to insufficient memory or port problems; 3. Enter the inside of the container (dockerexec) to verify the path, permissions and dependencies; 4. Review whether there are configuration errors in the Dockerfile and compose files, such as environment variable spelling or volume mount path problems, and recommend that cleanbuild avoid cache dryness

How do you create a Docker volume? How do you create a Docker volume? Jun 28, 2025 am 12:51 AM

A common way to create a Docker volume is to use the dockervolumecreate command and specify the volume name. The steps include: 1. Create a named volume using dockervolume-createmy-volume; 2. Mount the volume to the container through dockerrun-vmy-volume:/path/in/container; 3. Verify the volume using dockervolumels and clean useless volumes with dockervolumeprune. In addition, anonymous volume or binding mount can be selected. The former automatically generates an ID by Docker, and the latter maps the host directory directly to the container. Note that volumes are only valid locally, and external storage solutions are required across nodes.

How do you specify environment variables in a Docker container? How do you specify environment variables in a Docker container? Jun 28, 2025 am 12:22 AM

There are three common ways to set environment variables in a Docker container: use the -e flag, define ENV instructions in a Dockerfile, or manage them through DockerCompose. 1. Adding the -e flag when using dockerrun can directly pass variables, which is suitable for temporary testing or CI/CD integration; 2. Using ENV in Dockerfile to set default values, which is suitable for fixed variables that are not often changed, but is not suitable for distinguishing different environment configurations; 3. DockerCompose can define variables through environment blocks or .env files, which is more conducive to development collaboration and configuration separation, and supports variable replacement. Choose the right method according to project needs or use multiple methods in combination

How to run PHP in Docker? How to run PHP in Docker? Jun 27, 2025 am 12:09 AM

When running PHP, you need to pay attention to the environment configuration and container stability when running Docker. First, prepare a PHP project with a clear structure, ensure that there are dependent files such as composer.json, and place the code in a separate directory for mounting; second, use the official PHP image to quickly start container testing, such as using the CLI image to execute simple scripts; then write a custom Dockerfile image, copy the code, install the extensions, and enable the necessary modules; finally handle debugging and common problems, including permissions, missing dependencies, Apache operation and log viewing. It is recommended to build a custom image and optimize the configuration when deploying and launching it online.

How does Docker differ from traditional virtualization? How does Docker differ from traditional virtualization? Jul 08, 2025 am 12:03 AM

The main difference between Docker and traditional virtualization lies in the processing and resource usage of the operating system layer. 1. Docker containers share the host OS kernel, which is lighter, faster startup, and more resource efficiency; 2. Each instance of a traditional VM runs a full OS, occupying more space and resources; 3. The container usually starts in a few seconds, and the VM may take several minutes; 4. The container depends on namespace and cgroups to achieve isolation, while the VM obtains stronger isolation through hypervisor simulation hardware; 5. Docker has better portability, ensuring that applications run consistently in different environments, suitable for microservices and cloud environment deployment.

What causes a 'Too many open files' error in Nginx? What causes a 'Too many open files' error in Nginx? Jul 05, 2025 am 12:14 AM

When Nginx experiences a "Toomyopenfiles" error, it is usually because the system or process has reached the file descriptor limit. Solutions include: 1. Increase the soft and hard limits of Linux system, set the relevant parameters of nginx or run users in /etc/security/limits.conf; 2. Adjust the worker_connections value of Nginx to adapt to expected traffic and ensure the overloaded configuration; 3. Increase the upper limit of system-level file descriptors fs.file-max, edit /etc/sysctl.conf and apply changes; 4. Optimize log and resource usage, and reduce unnecessary file handle usage, such as using open_l

How to use PHP to develop a Q&A community platform Detailed explanation of PHP interactive community monetization model How to use PHP to develop a Q&A community platform Detailed explanation of PHP interactive community monetization model Jul 23, 2025 pm 07:21 PM

1. The first choice for the Laravel MySQL Vue/React combination in the PHP development question and answer community is the first choice for Laravel MySQL Vue/React combination, due to its maturity in the ecosystem and high development efficiency; 2. High performance requires dependence on cache (Redis), database optimization, CDN and asynchronous queues; 3. Security must be done with input filtering, CSRF protection, HTTPS, password encryption and permission control; 4. Money optional advertising, member subscription, rewards, commissions, knowledge payment and other models, the core is to match community tone and user needs.

How to enable HTTP/2 or HTTP/3 support in Nginx? How to enable HTTP/2 or HTTP/3 support in Nginx? Jul 02, 2025 am 12:36 AM

To enable Nginx's HTTP/2 or HTTP/3 support, the prerequisites must be met and configured correctly; HTTP/2 requires Nginx1.9.5, OpenSSL1.0.2 and HTTPS environment; add --with-http_v2_module module during configuration, modify the listening statement to listen443sslhttp2; and overload the service; HTTP/3 is based on QUIC, and third-party modules such as nginx-quic are required to introduce BoringSSL or OpenSSLQUIC branches during compilation, and configure UDP listening ports; common problems during deployment include ALPN not enabled, certificate incompatible, firewall restrictions and compilation errors, it is recommended to use priority

See all articles