C#开发BIMFACE系列48 Nginx部署并加载离线数据包

在前一篇博客《C#开发BIMFACE系列47 IIS部署并加载离线数据包》中详细介绍了IIS部署并访问的完整步骤。本篇博客详细介绍在Nginx服务器中如何部署并访问离线数据包。
Nginx (engine x) 是一个高性能的HTTP和反向代理web服务器,同时也提供了IMAP/POP3/SMTP服务。Nginx是由伊戈尔·赛索耶夫为俄罗斯访问量第二的Rambler.ru站点(俄文:Рамблер)开发的,第一个公开版本0.1.0发布于2004年10月4日。其将源代码以类BSD许可证的形式发布,因它的稳定性、丰富的功能集、简单的配置文件和低系统资源的消耗而闻名。
Nginx是一款轻量级的Web 服务器/反向代理服务器及电子邮件(IMAP/POP3)代理服务器,在BSD-like 协议下发行。其特点是占有内存少,并发能力强,事实上nginx的并发能力在同类型的网页服务器中表现较好,中国大陆使用nginx网站用户有:百度、京东、新浪、网易、腾讯、淘宝等。
(1)官网 http://nginx.org/en/download.html
(2)选择版本并下载

版本说明:
- Mainline version 主线版本,开发版,用于学习测试,不建议用于生产环境。
 - Stable version 稳定版本,一般用于生产环境。
 - Legacy versions 历史版本,相对比稳定版,功能少、有bug,也可以用于生产环境。
 
我们选择 Stable version ->Windows-1.20.1 (上图中标记②)
(3)解压
下载完成的文件是一个压缩包,解压后将其拷贝到D盘根目录,完整结构如下

(4)常用命令(假设Nginx在C:\server\目录下)
- 启动
 
C:\server\nginx-1.20.1>start nginx 或 C:\server\nginx-1.20.1>nginx.exe
注:建议使用第一种,第二种会使你的cmd窗口一直处于执行中,不能进行其他命令操作。
- 停止
 
C:\server\nginx-1.20.1>nginx.exe -s stop 或 C:\server\nginx-1.20.1>nginx.exe -s quit
注:stop是快速停止nginx,可能并不保存相关信息;quit是完整有序的停止nginx,并保存相关信息。
- 重新载入Nginx
 
C:\server\nginx-1.20.1>nginx.exe -s reload
当配置信息修改,需要重新载入这些配置时使用此命令。
- 重新打开日志文件
 
C:\server\nginx-1.20.1>nginx.exe -s reopen
- 查看Nginx版本
 
C:\server\nginx-1.20.1>nginx -v 或 C:\server\nginx-1.20.1>nginx -V
注:v只是简单显示版本信息,V不但显示版本信息,还显示配置参数信息。
- 测试或载入指定配置文件
 
注意,修改了配置文件后最好先检查一下修改过的配置文件是否正确,以免重启后Nginx出现错误影响服务器稳定运行。判断Nginx配置是否正确命令如下:
C:\server\nginx-1.20.1>nginx.exe -t -c conf/default.conf
载入指定配置文件
C:\server\nginx-1.20.1>start nginx.exe -c conf/default.conf
步骤1 新建站点
将《C#开发BIMFACE系列47 IIS部署并加载离线数据包》中使用的调整配置后的离线数据包拷贝到 D:\nginx-1.20.1\html\ 目录下

步骤2 配置Nginx
配置文件位置:D:\nginx-1.20.1\conf\nginx.conf
(1)配置端口,设置为2022,避免与IIS中站点端口重复
(2)HTTP响应头设置
为了加速访问,离线数据包中的很多文件都进行了gzip压缩。在离线数据包部署到Web服务器之后,必须对.gz文件设置http响应头,否则将产生错误。
- 由于仅需要针对BIMFACE离线数据包中的.gz文件设置响应头,建议开发人员最好把BIMFACE的离线数据包放置在统一的路径下,然后再针对这个统一的路径,设置匹配后缀为.gz的路径。
 - 针对以上路径设置:Content-Encoding: gzip。
 

步骤3 启动Nginx.exe
如下一个小技巧。打开 nginx.exe 所在目录,选中目录地址,输入cmd,按下回车键,自动启动 cmd.exe 命令


输入启动命令:start nginx

按下回车键,效果如下图,表示已经启动成功

查看任务管理器,确实启动了一个Nginx进程

步骤4 浏览模型
浏览器中访问 http://localhost:2022/4ab9f2df0a8fa218e8ecec619c7090df

总结:离线数据包是一组静态资源文件,并不需要特定的云端程序提供运行时环境,因此可以像部署网页的css、js、image一样部署在静态Web服务器上。最大的优势就是访问性能较高。
《BIMFace.SDK.CSharp》开源SDK。欢迎大家下载使用。

C#开发BIMFACE系列48 Nginx部署并加载离线数据包的更多相关文章
- C#开发BIMFACE系列47 IIS部署并加载离线数据包
		
BIMFACE二次开发系列目录 [已更新最新开发文章,点击查看详细] 在前两篇博客<C#开发BIMFACE系列45 服务端API之创建离线数据包>与<C#开发BIMFACE系 ...
 - C#开发BIMFACE系列45 服务端API之创建离线数据包
		
BIMFACE二次开发系列目录 [已更新最新开发文章,点击查看详细] BIMFACE的常规应用方式有公有云与私有化部署两种方式,并且浏览模型或者图纸需要使用ViewToken,ViewToke ...
 - C#开发BIMFACE系列49 Web网页中加载模型与图纸的技术方案
		
BIMFACE二次开发系列目录 [已更新最新开发文章,点击查看详细] 在BIMFACE二次系列博客中详细介绍了服务器端API的调用方式,如下列表 C#开发BIMFACE系列1 BIMFAC ...
 - C#开发BIMFACE系列17 服务端API之获取模型数据2:获取构件材质列表
		
系列目录 [已更新最新开发文章,点击查看详细] 在上一篇<C#开发BIMFACE系列16 服务端API之获取模型数据1:查询满足条件的构件ID列表>中介绍了获取单文件(模型)的所有 ...
 - C#开发BIMFACE系列18 服务端API之获取模型数据3:获取构件属性
		
系列目录 [已更新最新开发文章,点击查看详细] 本篇主要介绍如何获取单文件/模型下单个构建的属性信息. 请求地址:GET https://api.bimface.com/data/v2/fil ...
 - C#开发BIMFACE系列19 服务端API之获取模型数据4:获取多个构件的共同属性
		
系列目录 [已更新最新开发文章,点击查看详细] 在前几篇博客中介绍了一个三维文件/模型包含多个构建,每个构建又是由多种材质组成,每个构建都有很多属性.不同的构建也有可能包含相同的属性. 上图中 ...
 - C#开发BIMFACE系列21 服务端API之获取模型数据6:获取单模型的楼层信息
		
系列目录 [已更新最新开发文章,点击查看详细] 一个文件/模型中可能包含多个楼层信息,获取楼层信息对于前端页面的动态展示非常有帮助.本篇介绍获取一个文件/模型中可能包含多个楼层信息的详细方法. ...
 - C#开发BIMFACE系列24 服务端API之获取模型数据9:获取单个房间信息
		
系列目录 [已更新最新开发文章,点击查看详细] 大厦建筑模型中,基本上包含多个楼层,每个楼层包含多个房间等信息.在<C#开发BIMFACE系列21 服务端API之获取模型数据6:获取单模 ...
 - C#开发BIMFACE系列25 服务端API之获取模型数据10:获取楼层对应面积分区列表
		
系列目录 [已更新最新开发文章,点击查看详细] 在<C#开发BIMFACE系列22 服务端API之获取模型数据7:获取多个模型的楼层信息>中,返回的楼层信息结果中包含了楼层的具体信 ...
 
随机推荐
- C++、Java、Python、Linux、Go、前端、算法,慕课资料分享
			
C++.Java.Python.Linux.Go.前端.算法,慕课资料分享 微信公众号:大道同行JAVA 如有问题或建议,请后台留言,我会尽力解决你的问题. 前言 又见面了.废话不多说,最近多了一些在 ...
 - 基于CentOS7.x Linux操作系统,从0开始构建一套Docker虚拟化平台,使用二进制Tar包方式,部署的步骤和方法如下:
			
#配置centos7的yum源#建议阿里源#链接:https://yq.aliyun.com/articles/525282?type=2#从Docker官网下载软件包: ls -l docker-1 ...
 - vue七种实现组建通信的方法
			
目录 组件通信 1.props 父组件--->子组件通信 2.$emit 子组件--->父组件传递 $emit与props结合 兄弟组件传值 3.bus(事件总线) 兄弟组件通信 4.$p ...
 - 窗口函数至排序——SQLServer2012可高用
			
常用到的窗口函数 工作中要常对数据进行分析,分析前要对原始数据中找到想要的格式,数据原本存储的格式不一定时我们想要的,要在基础上进行一定的处理,下面介绍的几种方式是常用的数据排序的集中方式,包含 排名 ...
 - Intel® QAT 加速卡之数据面流程(图)
			
QAT数据面流程 sessionSetupData数据结构 pOpData数据结构
 - CSS001. 纯CSS实现瀑布流(纵向排序)
			
通过 Multi-columns 相关的属性 column-count.column-gap 配合 break-inside 来实现瀑布流布局. 首先对包裹图片的盒子增加样式,column-count ...
 - golang中的左值VS右值
			
对应关系 左值 可寻址 右值 不可寻址 可寻址:可以通过&取地址符,获取内存地址; 可寻址,也就是分配了内存; 不可寻址:根本没有分配内存; 常量const 常量通常只支持数字/字符串/布尔, ...
 - 1 行Python代码能干哪些事,这 13个你知道吗?
			
首先你要了解一下Python之禅,一行代码输出"The Zen of Python": python -c "import this"""& ...
 - K8s Master当作Node使用的方法
			
1.使用下面的命令操作使得master 可以作为node使用 承载pod kubectl taint nodes --all node-role.kubernetes.io/master- 可能会出现 ...
 - 论文解读(PCL)《Prototypical Contrastive Learning of Unsupervised Representations》
			
论文标题:Prototypical Contrastive Learning of Unsupervised Representations 论文方向:图像领域,提出原型对比学习,效果远超MoCo和S ...