赞
踩
第二章主要针对项目上线期间打印机服务的调整代码具体实现请看(一)
随着项目功能模块的结束,项目进行最后的测试阶段,准备上线,打印机无法上服务器,虽然佳博打印机可以设置Linux打印(我放弃了),于是我尝试把打印机的单模块脱离项目,在本地运行利用服务器请求本地打印机进行打印。想在我们要考虑两个问题:
NGINX下载官网
http://nginx.p2hp.com/en/download.html
本地域名解析:
浏览器会首先在本机的hosts文件中查找域名映射的IP地址,如果查找到就返回IP ,没找到则进行域名服务器解析,一般本地解析都会失败,因为默认这个文件是空的
Windows下的hosts文件地址:C:/Windows/System32/drivers/etc/hosts
Linux下的hosts文件所在路径: /etc/hosts
添加域名
本机IP www.abc.com
现在最新的稳定版Windows端
进入conf文件夹找到nginx.conf配置文件
在80端口转发下添加配置
listen 80;
server_name 域名;
#charset koi8-r;
#access_log logs/host.access.log main;
location / {
proxy_pass http://127.0.0.1:8080;
proxy_redirect off;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header Cookie $http_cookie;
}
本地主机IP可以通过win+R键输入cmd
弹出的黑窗口输入ipconfig查询本机IP地址
如何永久运行打印机模块项目,使用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上的任何一个程序注册为服务的工具。同样也可以进行卸载该服务。
WinSW下载地址点击:https://github.com/winsw/winsw/releases
<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>
nginx-service.exe install
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打印机安装测试的博客,让小弟学习一下!
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。