用nginx在windows上启动,启动了半天也启不来。
而且,nginx -t 还能通过,强制杀死nginx进程之后,居然还会重启。
重复运行start nginx,居然不会报端口已占用,而是多出了一堆监听8080端口的进程
直接人懵掉了。
看一下何方神圣在用8080端口,
vmnat.exe是什么鬼?
这个进程看着像是打通主机和虚拟机的一个网络地址转换。
突然想到之前配置了一个 从虚机的
ipA:portA映射到宿主机:8080的规则,没有删除
删除该规则后,就没事了。
分析
- 为什么这个规则生效之后,会导致
- 启动nginx会卡住,并且后台显示多个nginx进程
Windows中nginx多次启动的问题 - 幽室星辰 - 博客园 (cnblogs.com) 这个好像和nginx架构有关。。。
后台看到的nginx.exe是正常监听的,但是访问8080端口就会导致web浏览器hang住
分析:我们配置的nat规则就是把宿主机8080端口的流量导入 虚机的12345端口。但目前没启动虚机,所以自然就是"流量黑洞"了。
D:\BaiduNetdiskDownload\nginx-1.18.0\nginx-1.18.0>tasklist /fi "PID eq 6200"
映像名称 PID 会话名 会话# 内存使用
========================= ======== ================ =========== ============
vmnat.exe 6200 Services 0 9,716 K
D:\BaiduNetdiskDownload\nginx-1.18.0\nginx-1.18.0>tasklist /fi "PID eq 21052"
映像名称 PID 会话名 会话# 内存使用
========================= ======== ================ =========== ============
nginx.exe 21052 Console 1 19,132 K
D:\BaiduNetdiskDownload\nginx-1.18.0\nginx-1.18.0>tasklist /fi "PID eq 6648"
映像名称 PID 会话名 会话# 内存使用
========================= ======== ================ =========== ============
nginx.exe 6648 Console 1 19,124 K
D:\BaiduNetdiskDownload\nginx-1.18.0\nginx-1.18.0>tasklist /fi "PID eq 11568"
映像名称 PID 会话名 会话# 内存使用
========================= ======== ================ =========== ============
nginx.exe 11568 Console 1 19,200 K
经验教训
做完实验之后需要还原配置,不然指不定哪天就给你埋一个炸弹。。。