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
nginx unit java 试用的更多相关文章
- nginx unit 安装试用
1. yum 源 nano /etc/yum.repos.d/unit.repo 内容 [unit] name=unit repo baseurl=https://packages.nginx.org ...
- nginx unit nodejs 模块试用(续)
最新(应该是18 年了)nginx unit 发布了新的版本,对于nodejs 的支持有很大的改进,上次测试过,问题还是 比较多,这次使用新版本在测试下对于nodejs 的支持,以及以前block ...
- nginx unit nodejs 模块试用
unit 对于nodejs 的支持是在10.25 发布的,基本能用,但是依然有好多问题,当前在测试的时候就发现,请求之后会block , 相关的issue 已经有人反馈了,最好使用源码编译,方便测 ...
- Nginx unit 源码安装初体验
Nginx unit 源码安装初体验 上次介绍了从yum的安装方法(https://www.cnblogs.com/wang-li/p/9684040.html),这次将介绍源码安装,目前最新版为1. ...
- nginx Unit 服务器
转自: https://github.com/nginx/unit/pull/18/ 感谢: https://www.v2ex.com/t/389528 English 简体中文 繁體中文 NGINX ...
- nginx+tomcat+java部署总结
昨天部署了一下nginx+tomcat+java出现了很多问题,以下为整理总结. 使用了两种部署方式,一种是源码部署,一种是war部署. java源码部署总结: 环境:nginx+tomcat 部署方 ...
- svn + nginx unit + python3自动化发布web服务方法
本周将python web服务管理更换成nginx unit以后发现接口性能有了明显的提升,访问速度快了不少.不过有个很大的问题就是使用svn自动化发布以后,服务并没有刷新使用新的代码运行,而又不懂得 ...
- 关于nginx unit服务非正常关闭后,无法重新启动问题的处理
昨天在前领导技术大牛吕哥的帮忙下,python服务管理从nginx+supervisor+uwsgi+python3改为了轻便结构nginx + unit + python3,部署和配置起来顿时轻松起 ...
- nginx unit PHP
2018-12-26 14:20:33 星期三 综述: nginx unit php 的关系: nginx -> 转发请求到 8300端口 -> unit 转发 8300 收到的请求 -& ...
随机推荐
- C#RSA对接JAVA中RSA方式
C#中通过FromXmlString属性加载的是XML形式,而JAVA中用到的是解析后的PEM格式的字符串,总之读取证书中信息无非是转换方式问题 /// <summary> /// c# ...
- Java学习:泛型简介
泛型 泛型:是一种未知的数据类型,当我们不知道使用什么数据类型的时候,可以使用泛型 泛型也可以看出是一个变量,用来接受数据类型 E e : Element 元素 T t : Type 类型 Array ...
- SetWindowLong函数GetWindowLong函数
这两个函数具体应用如下:SetWindowLong函数GetWindowLong函数 Delphi窗口化游戏 var Thwnd:HWND;//声明变量 句柄变量 devmodel1:DEVMODE; ...
- 超简单的VUE在线调试网站(不需搭建环境)
jsbin.com提供简单.直观.易用的vue调试功能,最大的好处不需要自己搭建环境就可以学习VUE 1.打开http://jsbin.com/joxinumota/edit?html,js,cons ...
- vue中使用radio和checkbox
代码 <template> <div id="app"> <input type="checkbox" v-model=" ...
- 4.Javascript中实现继承的几种方法及其优缺点
要搞懂JS继承,我们首先要理解原型链:每一个实例对象都有一个__proto__属性(隐式原型),在js内部用来查找原型链:每一个构造函数都有prototype属性(显示原型),用来显示修改对象的原型, ...
- Vue – 基础学习(3):$forceUpdate()和$nextTick()的区别
Vue – 基础学习(3):$forceUpdate()和$nextTick()的区别
- Java 面向对象—非静态代码块
一.非静态代码块 1.声明格式 [修饰符] class 类名 { { 非静态代码块 } } 2.非静态代码块中的代码执行时机 (1)在"每次"创建对象的时候执行 (2)比构造方法早 ...
- Git submodule 子模块的管理和使用
因为代码分了两个小组管理,一部分代码使用跨平台语言实现,一部分使用原生实现. 所以使用Git submodule 来进行管理. 1,查看/更新 子模块 $ git submodule add ssh: ...
- TP5日志打印方法封装
需求:在开发及测试过程中需要打印日志,并且可以将日志内容打印到指定文件,这样方便查看. 过程: 1. 打开think\Log文件,在该文件中添加一个静态方法,代码如下: /** * @param $m ...