nginx unit java 试用

时间:2019-09-27
本文章向大家介绍nginx unit java 试用,主要包括nginx unit java 试用使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。

unit 当前已经支持java了,当时支持基于servlet 的开发模式,以下是一个简单的学习
基于官方的demo

环境准备

  • docker-compose文件
 
version: "3"
services:
  app:
   build: ./
   ports:
   - "8080:8080"
   - "9000:9000" 
  • dockerfile
# keep our base image as small as possible
FROM nginx/unit:1.11.0-minimal
# port used by the listener in config.json
EXPOSE 8080
# add Java language and corresponding language module
RUN apt update \
    && apt install -y apt-transport-https gnupg1 \
    && curl https://nginx.org/keys/nginx_signing.key | apt-key add - \
    && echo "deb https://packages.nginx.org/unit/debian/ stretch unit" \
         > /etc/apt/sources.list.d/unit.list \
    && echo "deb-src https://packages.nginx.org/unit/debian/ stretch unit" \
         >> /etc/apt/sources.list.d/unit.list \
    && apt update \
    && mkdir -p /usr/share/man/man1/ \
    && apt install -y openjdk-8-jdk unit-jsc8 \
# final cleanup
    && apt remove -y apt-transport-https gnupg1 \
    && apt autoremove --purge -y \
    && rm -rf /var/lib/apt/lists/* /etc/apt/sources.list.d/*.list
# application setup
RUN mkdir /www/ && echo \
    '<%@page language="java" contentType="text/plain"%><%="Hello, Unit!"%>'\
    > /www/index.jsp \
# launch Unit
    && unitd --control unix:/var/run/control.unit.sock \
# upload the app config to Unit
    && curl -X PUT --data-binary '{ \
    "listeners": { \
        "*:8080": { \
            "pass": "applications/java_app" \
        } \
    }, \
    "applications": { \
        "java_app": { \
            "type": "java", \
            "webapp": "/www/" \
        } \
    } \
    }' --unix-socket /var/run/control.unit.sock http://localhost/config/

配置说明

对于java 项目的支持配置如下:

{
    "type": "java",
    "classpath": ["/www/qwk2mart/lib/qwk2mart-2.0.0.jar"],
    "options": ["-Dlog_path=/var/log/qwk2mart.log"],
    "webapp": "/www/qwk2mart/qwk2mart.war"
}

type 指定为java 语言,classpath 为依赖的jar 包 ,options指定jvm启动的一些参数,比如上边的日志,webapp,指定应用程序的路径
或者未解压包(war)的文件

启动&&测试

  • 启动
docker-compose build && docker-compose up -d
  • 效果

说明

关于集成java 的原理还需要看看源码,从原理上还是cgi编程,同时使用doker 运行有点太大了

参考资料

https://unit.nginx.org/configuration/#java

原文地址:https://www.cnblogs.com/rongfengliang/p/11597955.html