zoukankan      html  css  js  c++  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

  • 相关阅读:
    (译) 在AngularJS中使用的表单验证功能
    TypeError: Cannot red property 'style' of null 错误解决
    Velocity CheckingForNull
    推荐系统(Recommendation system )介绍
    python 时间戳和日期相互转换
    Markdown 语法的简要规则
    mpvue + 微信小程序 picker 实现自定义多级联动 超简洁
    微信小程序 上传图片并等比列压缩到指定大小
    vue路由的两种模式,hash与history的区别
    修改浏览器url地址或者参数 , 实现不刷新页面
  • 原文地址:https://www.cnblogs.com/rongfengliang/p/11597955.html
Copyright © 2011-2022 走看看