通过Nginx完美解决多个项目共用一个端口

情景模拟: 问题1: 我们买了一个某某服务器,如果用这台服务器只跑一个项目,可能会有点浪费。 解决方案1: 安装多个Tomcat放置多个项目,分配不同的端口。 问题追加2: 有的项目对端口有强制要求,例如:微信订阅号等等。需要80或者443端口,现在我们需要多个项目公用一个端口[例如:80] 解决方案2: 可以把多个项目放置到同一个Tomcat中,公用一个端口。 问题追加3: 如果我们某一个项目出现问题,需要重启服务,那么Tomcat下的所有都会restart。 解决方案3: 我们今天的主题,通过Nginx实现多个项目公用一个端口。 注意:这里和F5区分[并非一码事]。 1、准备[我们是在虚拟机中模拟测试] Nginx:192.168.102.110:7777 Tomcat1:192.168.102.110:9526/A[项目] Tomcat2:192.168.102.110:9527/B[项目] 2、 修改配置 Tomcat1: 修改端口为:9526 vi tomcat1/conf/server.xml 项目A Tomcat2: vi tomcat2/conf/server.xml 修改端口为:9527 Nginx:7777 vi nginx1.8/conf/nginx.conf 修改端口及绑定ip[有域名的可以用自己的域名] 注意:上面的upstream是配的F5先注释了[不用理睬]。 Location /A[自己的tomcat1项目名] Location /B[自己的tomcat2项目名] 3、 测试 开启Tomcat1、Tomcat2、Nginx服务 Tomcat1 Tomcat2 Nginx 浏览器访问: 分别访问A、B项目。 测试成功。

docker快速搭建几个常用的第三方服务

本次和大家分享的内容是使用docker快速搭建工作中常用的第三方的服务,对于有一些互联网背景的公司来说,以下几个服务都是很需要的:redis,rabbit,elasticsearch; 本篇涉及docker常用几个命令: docker pull 镜像名:版本:拉去镜像 docker rmi 镜像名或id:删除镜像 docker images:获取本地已有镜像 docker run 镜像名或id:使用默认端口启动镜像 docker run -p port:port1 -d 镜像名或id:指定port端口映射到port1,并后台启动镜像 docker ps:查看正在运行的docker容器 docker ps -a:查看所有执行过run命令的容器服务(包括已经停止的容器) docker stop 容器id:停止某个容器 docker restart 容器id:重启某个容器 docker rm 容器Id:删除某个容器 搭建redis 要通过docker搭建某个服务,首先需要从镜像库拉去对应的镜像,目前国内也有一些好的镜像资源,比如阿里,网易等具体镜像地址网搜吧; docker pull redis 执行完如上命令后,会得到如下成功拉取的结果: docker images 命令能够看到已经包含在我们本地镜像里了 然后来启动redis容器,并通过docker ps查看启动 docker run -p 6378:6379 –name redis -d f06a5773f01e 能够看出redis容器已经启动了,访问本机端口6378即可映射到容器的6379,下面通过redismanager客户端连接下redis服务 搭建rabbit 同样的拉去rabbit镜像,一般rabbit需要一个可视化后台,很多镜像里面都已经包含了manager管理后台,我这里的镜像包含 …

opencv3.3基于GoogleLeNet模型识别图片

2017年8月发布的OpenCV 3.3正式带来了高度改进的深度学习dnn模块。 该模块现在持许多深度学习框架,包括Caffe,TensorFlow和Torch/PyTorch。该API可C ++可在Python中调用,很容易磁盘加载模型;预处理输入图像;通过网络传递图像并获取输出分类。 本文演示如何在ImageNet数据集上使用预先训练的深度学习网络并将其应用于输入图像。 使用OpenCV进行深度学习 我们将使用OpenCV和GoogleLeNet(在ImageNet上预先训练)来对图像进行分类。 OpenCV 3.3中的深度学习 自版本v3.1起,OpenCV的dnn模块已成为opencv_contrib库的一部分。在OpenCV 3.3中,它包含在主库中。使用OpenCV 3.3,我们可以利用流行的深度学习框架预先训练好的网络。与OpenCV 3.3兼容的流行网络架构包括:GoogleLeNet、AlexNet、SqueezeNet和VGGNet、RESNET。 参考: https://github.com/opencv/opencv/tree/master/modules/dnn 发布文档 https://habr.com/company/intel/blog/333612/ 俄语 OpenCV深度学习功能和框架 OpenCV 3.3支持 Caffe, TensorFlow和 Torch/PyTorch 框架。目前不支持Keras(因为Keras实际上是TensorFlow和Theano等包装器),但是由于深度学习库的普及,Keras 直接支持只是时间问题。 使用OpenCV 3.3,我们可以使用dnn中的以下函数从磁盘加载图像: cv2.dnn.blobFromImage cv2.dnn.blobFromImages 我们可以通过create方法直接从各种框架导入模型: cv2.dnn.createCaffeImporter cv2.dnn.createTensorFlowImporter cv2.dnn.createTorchImporter 使用read方法直接从磁盘加载序列化模型更容易: cv2.dnn.readNetFromCaffe cv2.dnn.readNetFromTensorFlow cv2.dnn.readNetFromTorch cv2.dnn.readhTorchBlob 加载模型后,.forward方法用于向前传播我们的图像并获得实际的分类。 使用深度学习和OpenCV对图像进行分类 GoogLeNet 的参考: Going deeper with convolutions 加载预先训练好的Caffe模型,并使用它来使用OpenCV对图像进行分类。 代码参见: https://github.com/china-testing/python-api-tesing/blob/master/practices/cv/deep_learning_with_opencv.py 执行示例 $ python deep_learning_with_opencv.py –image images/jemma.png …

几个码云上的Springboot框架

1、项目名称:分布式敏捷开发系统架构 项目简介:基于 Spring + SpringMVC + Mybatis 分布式敏捷开发系统架构,提供整套公共微服务服务模块:集中权限管理(单点登录)、内容管理、支付中心、用户管理(支持第三方登录)、微信平台、存储系统、配置中心、日志分析、任务和通知等,支持服务治理、监控和追踪,努力为中小型企业打造全方位J2EE企业级开发解决方案。 项目地址:https://gitee.com/shuzheng/zheng2、 2、项目名称:模块化开发系统 项目简介:以 SpringBoot 为中心,模块化开发系统,用户可以随意删减除权限框架外 任意的系统模块。复用,组装性强主要应用技术: spring Security Ehcache quartz swagger2 Mysql5.6 springjdbc druid spring social spring session layerui+vue.js 项目地址:https://gitee.com/YYDeament/88ybg 3、项目名称:JAVA 分布式快速开发平台 项目简介:JAVA 分布式快速开发平台:SpringBoot,SpringMVC,Mybatis,mybatis-plus,motan/dubbo分布式,Redis 缓存,Shiro 权限管理,Spring-Session 单点登录,Quartz 分布式集群调度,Restful 服务,QQ/微信登录,App token 登录,微信/支付宝支付;日期转换、数据类型转换、序列化、汉字转拼音、身份证号码验证、数字转人民币、发送短信、发送邮件、加密解密、图片处理、excel 导入导出、FTP/SFTP/fastDFS 上传下载、二维码、XML 读写、高精度计算、系统配置工具类等。 项目地址:https://gitee.com/iBase4J/iBase4J 4、项目名称:快速开发框架 ThinkGem 项目简介:Java EE(J2EE)快速开发框架,基于经典技术组合(Spring MVC、Apache Shiro、MyBatis、Bootstrap UI),包括核心模块如:组织机构、角色用户、权限授权、数据权限、内容管理、工作流等。虽说很长时间没有大的更新了,但它的架构精良易于扩展深受大家喜爱,依然是中小企业的首选,它的功能设计、底层架构也非常具有参考意义、是学习入门的首选。关注我ThinkGem开源中国博客了解4.0最新动态。 项目地址:https://gitee.com/thinkgem/jeesite 5、项目名称:Java 快速开发平台 MCMS 项目简介:完整开源,Java …

深入理解神经网络[Numpy](转)

使用诸如Keras、TensorFlow或PyTorch等高级框架,我们可以快速构建非常复杂的模型。这次我们将尝试利用我们的知识,只使用NumPy构建一个完全可操作的神经网络。最后,我们还将使用它来解决简单的分类问题,并将其与用Keras构建的机器学习模型进行性能比较。 导入库 import numpy as np from IPython.display import Image 网络架构 Figure 1. Example of dense neural network architec 在开始编程之前,让我们先停下来准备一个基本的路线图。我们的目标是创建一个程序,能够创建一个具有指定架构(层的数量和大小以及适当的激活函数)的紧密连接的神经网络。图1给出了这样一个网络的例子。最重要的是,我们必须能够训练我们的网络并利用它进行预测。 图2.神经网络蓝图 上图显示了在我们的神经网络训练过程中需要执行的操作。它还显示了在单个迭代的不同阶段,我们需要更新和读取多少参数。构建正确的数据结构并巧妙地管理其状态是我们任务中最困难的部分。 神经网络层的初始化 图3.第1层的权重矩阵W和偏置向量 b的尺寸 让我们从每一层的权重矩阵W和偏差向量b开始。在图3中,我已经准备了小的cheatsheet,这将帮助我们为这些系数标记适当的尺寸。上标[l]表示当前层的索引(从1开始计数),我假设描述NN架构的信息将以列表的形式传递给我们的程序。列表中的每个条目是一个字典描述一个网络层的基本参数:input_dim- 信号矢量的大小作为层的输入,output_dim- 在层输出时得到的激活向量的大小,activation- 在层内使用的激活函数。 NN_ARCHITECTURE = [ {“input_dim”: 2, “output_dim”: 25, “activation”: “relu”}, {“input_dim”: 25, “output_dim”: 50, “activation”: “relu”}, {“input_dim”: 50, “output_dim”: 50, “activation”: “relu”}, {“input_dim”: 50, “output_dim”: 25, “activation”: …

20 个有用的 Go 语言微服务开发框架

2007 年,谷歌的一个团队在调研计算机编程语言时,发现有数百种可用于开发软件的语言,但没有一种能提供谷歌真正需要的特性。有些语言太过底层,有些又太过复杂,有些特性对他们来说反而会碍手碍脚。谷歌的开发人员想要的语言要简单到可以在几个小时内学会,但又要复杂到足以应付现代互联网的信息流。 他们的解决方案就是 Go 语言,这门语言对于 C 语言、Java 或 JavaScript 程序员来说——换句话说,就是所有的程序员——都很容易掌握。Go 语言提供了足够的特性来编写循环和代码块,但没有一个特性是需要很长的时间才能掌握的。内置的例程经过优化,可以从互联网获取数据和发送数据。其他的东西——即使是非常聪明的想法——都被排除在外。 Go 语言是微服务开发团队的一个很好的选择。即使你的项目可能不需要像谷歌那样向全世界提供电子邮件、地图、搜索和其他云服务,但仍然可能需要向用户提供数十种不同的小型信息服务。 谷歌决定开源 Go 语言是一个明智之举。这门语言培育了数千个开源项目,这些项目为你的 Web 项目提供了开箱即用的构建块。这里列出了 20 个最有趣的开源项目,用于构建基于 Go 语言的微服务系统。从专注于消息传递、路由、错误处理或 API 的小工具包,到用于构建 MVC Web 应用程序的更全面的框架,你将发现,使用 Go 语言开发微服务有着非常丰富的选择。 Beego https://beego.me/ Beego 框架提供了很多标准附加功能,例如全功能路由器和可用于执行 CRUD 操作的对象到数据库映射工具。Bee 是 Beego 爱好者的最爱,它是一个快速而强大的命令行工具,用于构建、更新、打包和部署应用程序。Bee 可以从模板生成源代码,并保持数据库的最新状态。 Buffalo https://gobuffalo.io/en Buffalo 团队需要能够将 Web 应用程序的所有部分组装在一起的东西,包括应用程序本身的一些设计。他们把能够安装在一起的很多部件叫作“生态系统”。如果你想要路由——很少有人不需要——Buffalo 就包含了 Gorilla/Mux。如果你需要模板,Buffalo 倾向于使用 Plush,而不是使用内置的 Go 语言模板机制。数据库连接模块集合 Pop 可以帮你将数据库信息转换为 Go 对象。你还可以找到连接数据库、处理 …

Facebook开源NLP建模框架PyText

项目地址:https://github.com/facebookresearch/pytext 为了降低人们创建、部署自然语言处理系统的难度,Facebook 开源了一个建模框架——PyText,它模糊了实验与大规模部署之间的界限。这一框架基于 PyTorch,可以为 NLP 的发展带来以下好处: 提供简化的工作流程,加速实验。 提供一大批预构建的模型架构和用于文本处理和词汇管理的工具,以促进大规模部署。 提供利用 PyTorch 生态系统的能力,包括由 NLP 社区中的研究人员、工程师预构建的模型和工具。 AI 研究人员和工程师现在可以利用 PyText 加快实验进度,部署用于文档分类、序列标注、语义分析、多任务建模及其他任务的系统。利用该框架,Facebook 在几天内就实现了 NLP 模型从理念到完整实施的整个过程,还部署了依赖多任务学习的复杂模型。现在,PyText 被 Facebook 用于超过十亿次的日常预测工作,这表明该框架可以以产品级的规模运行,能够满足严格的延迟要求。 在优化框架时,神经网络工程师一直都在实验和生产之间进行权衡,NLP 系统的工程师更是如此。NLP 系统需要创建、训练、测试数十个模型,其结构具有动态特性。以研究为导向的框架可以提供一个简单的 eager-execution 接口,加快创建动态高级模型的进程,但如果将它们部署到生产,就会面临延迟多、内存占用多的困境。针对生产进行优化的框架可以通过将模型展示为静态图来加快部署,但这种方法增加了创建文本序列动态表征的难度。PyTorch 1.0 是一个统一的框架,缩短了从研究到生产的路径。而基于 PyTorch 的 PyText 则着眼于满足 NLP 建模的特定需求。 此次一起开源的还有一些用于大规模训练和部署 PyText 模型的预训练模型及教程。 走向更好的 NLP AI 研究人员及工程师拥有许多可以理解语言的系统应用,而且这些应用还在增加。Facebook 利用 NLP 向用户提供相关性更强的内容,为他们提供更加强大的可用功能、标记违规动态、翻译等其它服务。会话 AI 的前沿研究进展迅速,PyText 可以进一步加快这一进程,同时提高产品质量。PyText 目前已经部署到 Facebook 的视频通话设备 Portal 以及 Messenger …