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

第二章主要针对项目上线期间打印机服务的调整代码具体实现请看(一)
随着项目功能模块的结束,项目进行最后的测试阶段,准备上线,打印机无法上服务器,虽然佳博打印机可以设置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端口转发下添加配置

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地址
在这里插入图片描述

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打印机安装测试的博客,让小弟学习一下!

  • 2
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 3
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

一时学习一时爽,一直学习一直爽

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值