第二章主要针对项目上线期间打印机服务的调整代码具体实现请看(一)
随着项目功能模块的结束,项目进行最后的测试阶段,准备上线,打印机无法上服务器,虽然佳博打印机可以设置Linux打印(我放弃了),于是我尝试把打印机的单模块脱离项目,在本地运行利用服务器请求本地打印机进行打印。想在我们要考虑两个问题:

  1. 外网项目访问内网项目
  2. 公司电脑虽然不会关机,但是无法避免关机,如何保证打印机模块项目永久运行

NGINX实现内网穿透(之前使用花生壳不稳定)

花生壳方案不推荐!!!

1.1 准备一个自己的域名

1.2 下载安装NGINX

NGINX下载官网

http://nginx.p2hp.com/en/download.html

1.3 修改host文件

本地域名解析:

浏览器会首先在本机的hosts文件中查找域名映射的IP地址,如果查找到就返回IP ,没找到则进行域名服务器解析,一般本地解析都会失败,因为默认这个文件是空的

Windows下的hosts文件地址:C:/Windows/System32/drivers/etc/hosts

Linux下的hosts文件所在路径: /etc/hosts

添加域名

本机IP www.abc.com

1.4 修改nginx.conf配置文件

现在最新的稳定版Windows端
进入conf文件夹找到nginx.conf配置文件

在80端口转发下添加配置

location / {proxy_pass http://本地主机ip:8080proxy_connect_timeout 600;proxy_read_timeout 600;}

本地主机IP可以通过win+R键输入cmd
弹出的黑窗口输入ipconfig查询本机IP地址

1.5 配置NGINX开机启动

如何永久运行打印机模块项目,使用winsw将项目注册成一个服务(像我们使用的MySQL服务一样),服务设置开机自启,而且运行项目不会有黑窗口(点击下载winsw)

官方介绍如下:
WinSW is an executable binary, which can be used to wrap and manage a custom process as a Windows service.
现实生活中,我们使用windows系统的电脑的时候,可能会遇到这么一种情况:想把一些应用程序添加为开机启动项。对于有图形界面的应用程序,一般不存在问题。但是如果想运行命令行应用程序,就不是那么方便了。一种笨办法就是写个bat,放到启动文件夹里,就可以开机启动了。开机之后,你就会发现,这样会一直显示着一个CMD窗口,而且这个窗口不能关,关了程序就停了。
其实Windows系统自带后台程序管理的功能,也就是我们经常用到的服务。但是Windows的服务只有程序的开发者在写程序的时候引用到这个功能,我们才能利用服务来控制程序的启动和关闭。对于一般的命令行程序来说,没办法利用服务。
今天要介绍的WinSW,它就是一个可以将Windows上的任何一个程序注册为服务的工具。同样也可以进行卸载该服务。

1.5.1下载WinSW修改名字为nginx-service.exe

WinSW下载地址点击:https://github.com/winsw/winsw/releases

1.5.2新建nginx-service.xml文件

<service><id>nginx</id><name>nginx</name><description>nginx</description><logpath>F:\work\nginx\nginx-1.18.0\server-logs\</logpath><logmode>roll</logmode><depend></depend><executable>F:\work\nginx\nginx-1.18.0\nginx.exe</executable><stopexecutable>F:\work\nginx\nginx-1.18.0\nginx.exe -s stop</stopexecutable>
</service>

1.5.3 输入cmd回车

1.5.4输入nginx-service.exe install命令注册服务

nginx-service.exe install

1.5.5 我的电脑右击选择管理将nginx启动类型设置为自动(开机启动)

1.6 将项目jar包注册成服务设置开机启动

XML文件代码:

<service><id>uais</id><name>uais</name><description>这个服务用来将打印机服务使用kcp协议加速</description><executable>java</executable><arguments>-jar uais.jar</arguments><logmode>reset</logmode>
</service>


将这三个项目文件修改成名字一样,直接在路径栏输入cmd,直接进入控制面板当前文件夹,运行exe程序

执行

uais.exe install 添加服务uais.exe uninstall 删除服务

成功

服务重复安装错误


关机重启,不启动项目,直接请求测试是否打印机功能正常

优化代码:

使用System.getenv("Gprinter")获取环境变量路径(支持dll文件移动,避免后期维护麻烦)
TscLibDll INSTANCE = (TscLibDll) Native.loadLibrary(System.getenv("Gprinter"), TscLibDll.class);

有没有大佬写篇服务器Linux打印机安装测试的博客,让小弟学习一下!

windows下配置NGINX实现内网穿透并配置开机自启动相关推荐

  1. 使用nps搭建内网穿透并配置泛域名解析

    使用nps搭建内网穿透并配置泛域名解析 前言 1. 准备工作 2. 服务器端搭建nps并配置 2.1 配置nps配置文件 2.2 docker安装nps 2.3 web端配置nps并使用 3. 客户端 ...

  2. FRP 内网穿透下载配置

    FRP 内网穿透下载配置 Frp服务的建造 下载: 修改配置文件 frps.ini(服务端)配置文件解释说明: frpc.ini(客户端)配置文件解释说明: 启动服务 配置启动: 创建server端服 ...

  3. 笔记:Windows用户如何安装使用内网穿透?

    笔记:Windows用户如何安装使用内网穿透? 将本地80端口下的web网站发布到公网可访问: 1. 安装内网穿透工具 1.1 Windows系统 1.2 Linux系统 1.2.1 安装 1.2.2 ...

  4. 十分钟教你配置frp实现内网穿透

    十分钟教你配置frp实现内网穿透 一.frp的作用 利用处于内网或防火墙后的机器,对外网环境提供 http 或 https 服务. 对于 http, https 服务支持基于域名的虚拟主机,支持自定义 ...

  5. linux下配置钉钉内网穿透_4G工业路由器内嵌花生壳PHTunnel,为工业物联网提供智能内网穿透...

    继北京盛讯美恒科技USB Server设备内嵌花生壳PHTunnel后,本次为大家分享佛山市拓界物联科技有限公司4G工业路由器内嵌花生壳PHTunnel方案,实现通过4G路由器远程访问所连接的任何内网 ...

  6. ngrok配置信息_ngrok内网穿透服务器搭建及配置(附 frp 配置)

    12月18日更新 添加 frp 配置 前言 内网穿透,无需多言,用处多多.首先强力推荐一款Sunny大大搭建的ngrok服务好用的不行,而且有免费选项,感觉平时够用了.那么,为什么自己还要搭建一个呢? ...

  7. ZeroTier内网穿透工具配置

    之前有写了一篇frps内网穿透的教程,不过frps要求比较高,需要有个有固定IP的服务器.所以这个就有限制了小伙伴们没有服务器的. 这次我们写个不需要外网服务器的教程.软件就是zerotier这个东西 ...

  8. Windows远程桌面连接与内网穿透详细步骤

    目录 准备工具 查看Windows版本 配置内网穿透 远程控制电脑 优化连接 准备工具 Windows电脑 星空内网穿透(StarryFrp)账号 注意:现在电脑预装的都是 Windows 家庭中文版 ...

  9. 公网远程连接windows SQL Server数据库【内网穿透】

    文章目录 1. 本地安装配置SQL Server 2. 将本地sqlserver服务暴露至公网 2.1 本地安装cpolar内网穿透 2.2 创建隧道 3. 公网远程连接sqlserver 3.1 使 ...

  10. ngrok+nginx 实现内网穿透 共用80端口

    内网穿透能干嘛: 穿透后,你的机器指定端口就直接暴露在外网上,3389,vnc,web服务等等任何服务都可以支持.微信开发需要回调web服务器接口,如果开发机器在内网,就无法调试. 原理 外网服务器A ...

最新文章

  1. 单向链表JAVA代码
  2. python123江湖秘籍_江湖秘籍,python基本数据类型之列表、元组、字典
  3. Trial SCN WebIDE版本下载
  4. GAE 随机获取实体
  5. 友声电子秤设置软件_友声电子秤说明书/操作指南?(一)
  6. 黑发不知勤学早,白首方悔读书迟———颜真卿
  7. Java基础——泛型
  8. ThinkPHP学生管理系统
  9. UML建模工具安装详细教程(StarUML 5.0.2)
  10. H.264之几种开源解码器的对比评测
  11. java识别答题卡纸_答题卡读取答案的原理是什么?
  12. 跟我一起学Linux系统编程006C-进程内存分配,堆分配brk、malloc、free
  13. jupyter 更改主题 换成黑色背景
  14. AWS的下一站:3.8万亿美元的企业IT市场
  15. php nofollow,php如何实现统一给外部链接添加nofollow值?
  16. [个人笔记] ssh-keygen和openssl工具的使用
  17. 北京办理互联网经营许可证(ICP证)的要求
  18. 凸凹函数定义以及判断
  19. c语言课程设计(图书馆管理系统)
  20. 王译潇20162314 实验报告四

热门文章

  1. UNIX环境高级编程习题——第三章
  2. accept - 指示打印系统接受发往指定目标打印机的打印 任务
  3. dynamips虚拟服务:找不到指定设备
  4. 在linux下运行锐捷客户端,锐捷Linux客户端使用方法(基于ubuntu16.04)
  5. python open r/rb
  6. 数学标记语言MathML简介、工具及兼容
  7. 暴风影音II升级进程stormliv.exe持续不停的调用WSPSelect()函数,它想干啥?
  8. mmap库:Python内存映射文件操作
  9. DS1302 原理及操作方法
  10. iOS 开发仿网易云音乐歌词海报