因為生產環境做了負載均衡,為了盡可能跟線上環境一致,所以想在本地也搭集群,這樣測試更靠譜。首先就想到nginx 這貨,搭個簡單的web 服務器實在太簡單了。
nginx 這玩意11年簡單玩過,那是版本好像是0.8.x,幾年過去了版本號不大,但迭代也不少,也算個版本帝。
在官網http://nginx.org/en/download.html 下載個最新版本,網上搜了篇文件分分鍾搭好了。
1.unknown directive ,錯誤日志如下:
2015/11/04 11:05:15 [emerg] 7544#3144: unknown directive "" in D:\Program Files\nginx-1.9.6/conf/nginx.conf:3
2015/11/04 11:07:13 [emerg] 1156#12888: unknown directive "" in D:\nginx-1.9.6/conf/nginx.conf:3
出現這個根據經驗首先想到的可能是路徑中有像 Program Files 這樣有空格的,直接放根目錄結果還是如此。
網上搜索到原因及解決辦法(打死都想不到):
conf文件被記事本編輯過,保存成了含BOM頭的文件,使用其他編輯器將文件另存為UTF-8不含Bom頭的格式。
2.Nginx在啟動報錯:bind() to 0.0.0.0:80 failed (10013: An attempt was made to access a socket in a way forbidden by its access permissions) 。
原因是nginx默認80端口被System占用,造成nginx啟動報錯。在cmd窗口運行如下命令:netstat -aon | findstr :80
看到80端口果真被占用。發現占用的pid是4,用戶名是System。怎么能跟系統搶,但沒辦法80我還就用定了。
直接結束進程,結果藍屏杯具了。還是太野蠻了,此法不行。
1、打開注冊表:regedit
2、找到:HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\services\HTTP
3、找到一個REG_DWORD類型的項Start,將其改為0
4、重啟系統,System進程不會占用80端口
參考:
http://www.360sdn.com/Nginx/2014/0807/4044.html