{"id":21214302,"url":"https://github.com/goindow/java-nginx","last_synced_at":"2026-04-15T15:31:06.996Z","repository":{"id":143903768,"uuid":"252329225","full_name":"goindow/java-nginx","owner":"goindow","description":"docker-compose 编排的 java webapps 和 nginx 容器，支持多应用，开箱即用","archived":false,"fork":false,"pushed_at":"2021-08-04T06:28:34.000Z","size":27207,"stargazers_count":2,"open_issues_count":0,"forks_count":0,"subscribers_count":0,"default_branch":"master","last_synced_at":"2025-10-29T15:39:03.974Z","etag":null,"topics":["docker-compose-template","docker-java-nginx","java","nginx"],"latest_commit_sha":null,"homepage":"","language":"Shell","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/goindow.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2020-04-02T01:49:06.000Z","updated_at":"2023-05-31T09:48:10.000Z","dependencies_parsed_at":null,"dependency_job_id":"0d68e776-96a6-4456-a034-f0c9cf9cf017","html_url":"https://github.com/goindow/java-nginx","commit_stats":null,"previous_names":[],"tags_count":1,"template":false,"template_full_name":null,"purl":"pkg:github/goindow/java-nginx","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/goindow%2Fjava-nginx","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/goindow%2Fjava-nginx/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/goindow%2Fjava-nginx/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/goindow%2Fjava-nginx/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/goindow","download_url":"https://codeload.github.com/goindow/java-nginx/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/goindow%2Fjava-nginx/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":31847502,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-04-15T15:24:51.572Z","status":"ssl_error","status_checked_at":"2026-04-15T15:24:39.138Z","response_time":63,"last_error":"SSL_read: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["docker-compose-template","docker-java-nginx","java","nginx"],"created_at":"2024-11-20T21:27:11.766Z","updated_at":"2026-04-15T15:31:06.788Z","avatar_url":"https://github.com/goindow.png","language":"Shell","funding_links":[],"categories":[],"sub_categories":[],"readme":"# java-nginx\n使用 docker-compose 编排 java webapps 和 nginx 容器，支持多应用\n\n## 目录说明\n- nginx/logs/, 虚拟主机日志，如果有多个应用，使用子目录区分\n- nginx/conf.d/, 虚拟主机配置，多应用同上\n- webapps/, 应用 jar|war 包目录，多应用同上\n- webapps/{$app_name}，应用目录\n\n## 镜像说明\n- nginx，官方 nginx:1.17.3，使用 docker-compose.yml 管理编排容器\n- $app_name，基于 java:8 的自定义镜像，每个应用有自己的 Dockerfile 文件，同时使用 docker-compose.yml 管理编排容器\n- nginx 和 java webapps 镜像分开管理（nginx 一个容器，每个 java web app 自己一个容器），避免多应用更新重启互相干扰\n\n## docker-compose.yml\n- 如果需要时间同步，将 localtime 备注开启（macos 无效，需要替换为对应的文件）\n- 如果默认网络冲突，需要配置网络，将 networks 相关备注开启\n\n## nginx、java 配置优化\n\u003e nginx、java 部分配置优化如下，请根据机器配置自行调整，相关文件及目录已挂载\n- nginx.conf\n  - client_max_body_size 1024m，大文件上传\n  - proxy_read_timeout 240s，慢脚本支持 for poxy（java etc.）\n  - fastcgi_read_timeout 240s，慢脚本支持 for fastcgi（php-fpm etc.）\n  - worker_processes 4\n  - gzip 相关已开启\n  - log 日志重定向\n- java\n  - 使用 -Djava.security.egd=file:/dev/./urandom 选项，优化随机数产生效率，加快 app 启动\n\n## docker_nginx_log_cutting.sh\n- 自动切割打包 ./nginx/logs/ 下的所有项目\n- 保存近 14 天的日志压缩包\n\n## webapps，应用 Dockerfile、docker-compose.yml 说明\n- 每个 java web app 一个镜像，需要自定义 Dockerfile\n- 每个 images 使用 docker-compose.yml 编排，如果是多应用，需要手动修改映射主机端口，避免端口被占用 \n\n## 使用\n1. 安装 docker-ce\n```shell\nyum update -y\nyum install -y yum-utils device-mapper-persistent-data lvm2\n\nyum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo\nyum install -y docker-ce\n```\n\n2. 安装 docker-compose\n```shell\ncurl -L https://github.com/docker/compose/releases/download/1.21.2/docker-compose-`uname -s`-`uname -m` \u003e /usr/local/bin/docker-compose\nchmod +x /usr/local/bin/docker-compose\n```\n\n3. 配置容器日志\n```shell\n# registry-mirrors，设置镜像源\n# graph，设置 docker 运行时根目录，默认是 /var/lib/docker\n# log-x，日志相关配置\ncat \u003e /etc/docker/daemon.json \u003c\u003c EOF\n{\n    \"registry-mirrors\": [\"https://docker.mirrors.ustc.edu.cn\"],\n    \"graph\": \"/data/var/lib/docker\",\n    \"log-driver\": \"json-file\",\n     \"log-opts\": {\n        \"max-size\": \"50m\",\n        \"max-file\": \"1\"\n     }\n}\nEOF\n```\n\n4. 配置 nginx 日志切割\n```shell\n# chmod +x sh/docker_nginx_log_cutting.sh\n# crontab\n0 0 * * * /data/java-nginx/sh/docker_nginx_log_cutting.sh nginx_nginx_1 /data/java-nginx/nginx/logs/ \u0026\u003e /dev/null\n```\n\n5. 启动 docker\n```shell\n# centos7+\nsystemctl enable docker    # 开机自启\nsystemctl start docker     # 启动\n\ndocker -v\n```\n\n\n6. 启动 java-nginx\n```shell\n# 1.启动 java web app\n#   - cd 到 wepapps 目录，新建 ${appName} 目录，拉取 ${appName} jar|war 包文件\n#   - 编写 Dockerfile、docker-compose.yml\n#   - 启动 ${appName} 容器\ndocker-compose up -d --build\n\n# 多个 apps 重复步骤 1\n\n# 2.启动 nginx\n#   - 新增 nginx/conf.d/${appName}.conf，配置反向代理虚拟主机\n#   - 新增 ningx/logs/${appName}，应用 nginx 日志目录\n#   - 启动 nginx 容器\ndocker-compose up -d --build\n```\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fgoindow%2Fjava-nginx","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fgoindow%2Fjava-nginx","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fgoindow%2Fjava-nginx/lists"}