WinSW-x64(2.12.0)将nginx注册为服务可能有bug
使用的环境是:windows server2008R2,WinSW-x64(2.12.0),nginx1.24.0
项目中碰到个需求,配置nginx代理,实现一个端口代理多个端口和地址。本来很轻松的事,结果耗费了一天的功夫,把人都整不自信了。
我先修改nginx配置,然后在服务列表中重启nginx服务,这个服务是使用WinSW-64(2.12.0)版注册的,选了最新版的,想着bug会少一些。然后神奇的事来了 ,我在本地调试好的程序和配置,运行都正常后更新到服务器上就运行不了,后台接口总是提示身份未认证。查看网络请求,发现登录接口都没有预检,接口返回状态是200。
一直都认为是nginx的配置不对才导致的问题,各种方案搜索,因为不用代理直接访问接口没有任何问题,在我本地直接代理服务器上后端的地址也能正常访问,但是放到服务器上之后,无论如何就是不行。
在服务器上查看nginx的log时,发现日志文件点大,想着删了重新创建后,看日志的的时候比较方面,于是直接把log文件中的内容全删了 ,重启服务后发现,无论怎么访问系统,nginx都不会记录日志。
意识到nginx可能有问题,随手打开任务管理器想看看,结果大吃一惊,竟然有几十个nginx进程,于是知道为什么改配置也没作用了,把这几十个进程全部杀掉后,重启服务,进程里有两个nginx,状态正常了,系统也竟然可正常登录了,服务器上也看到nginx的访问日志了,都正常了。
进一步思考为什么会有那么多nginx进程没杀掉呢,于是直接停止服务后查看任务管理器里的进程,发现虽然服务已经停止了但是进程中还有一个nginx服务,启动服务,进程变成三个了,再停止后,nginx服务还有两个了。。。
那就大胆猜测注册服务的软件有问题,于是换成2.11.0,重新注册服务,启动正常,关闭服务后,进程里没有nginx服务了,一切正常了 ,至此问题得以彻底解决。
总结,最新版的不一定是最稳定的