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
windows下配置NGINX实现内网穿透并配置开机自启动_第1张图片
添加域名

本机IP www.abc.com

windows下配置NGINX实现内网穿透并配置开机自启动_第2张图片

1.4 修改nginx.conf配置文件

现在最新的稳定版Windows端
进入conf文件夹找到nginx.conf配置文件
windows下配置NGINX实现内网穿透并配置开机自启动_第3张图片
在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地址
windows下配置NGINX实现内网穿透并配置开机自启动_第4张图片

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上的任何一个程序注册为服务的工具。同样也可以进行卸载该服务。

windows下配置NGINX实现内网穿透并配置开机自启动_第5张图片

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

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

windows下配置NGINX实现内网穿透并配置开机自启动_第6张图片

1.5.2新建nginx-service.xml文件


    nginx
    nginx
    nginx
    F:\work\nginx\nginx-1.18.0\server-logs\
    roll
    
    F:\work\nginx\nginx-1.18.0\nginx.exe
    F:\work\nginx\nginx-1.18.0\nginx.exe -s stop


windows下配置NGINX实现内网穿透并配置开机自启动_第7张图片

1.5.3 输入cmd回车

windows下配置NGINX实现内网穿透并配置开机自启动_第8张图片

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

nginx-service.exe install

windows下配置NGINX实现内网穿透并配置开机自启动_第9张图片

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

windows下配置NGINX实现内网穿透并配置开机自启动_第10张图片

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>

windows下配置NGINX实现内网穿透并配置开机自启动_第11张图片
windows下配置NGINX实现内网穿透并配置开机自启动_第12张图片

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

windows下配置NGINX实现内网穿透并配置开机自启动_第13张图片执行

uais.exe install 添加服务

uais.exe uninstall 删除服务

成功
在这里插入图片描述

服务重复安装错误
在这里插入图片描述

windows下配置NGINX实现内网穿透并配置开机自启动_第14张图片
关机重启,不启动项目,直接请求测试是否打印机功能正常

优化代码:

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

windows下配置NGINX实现内网穿透并配置开机自启动_第15张图片

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

你可能感兴趣的:(佳博打印机,winsw,nginx,内网穿透)