因为生产环境做了负载均衡,为了尽可能跟线上环境一致,所以想在本地也搭集群,这样测试更靠谱。首先就想到nginx 这货,搭个简单的web 服务器实在太简单了。

nginx 这玩意11年简单玩过,那是版本好像是0.8.x,几年过去了版本号不大,但迭代也不少,也算个版本帝。
在官网http://nginx.org/en/download.html 下载个最新版本,网上搜了篇文件分分钟搭好了。

1.unknown directive ,错误日志如下:

// :: [emerg] #: unknown directive "" in D:\Program Files\nginx-1.9./conf/nginx.conf:
// :: [emerg] #: unknown directive "" in D:\nginx-1.9./conf/nginx.conf:

出现这个根据经验首先想到的可能是路径中有像 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端口

 
3.将nginx做成服务
 之前启动nginx用到园子里Ants写的一个批处理。可开启后会开着个命令行窗口。像我这种有点强迫症的人,不喜欢开太多窗口,可能不小心就关了。
搜索一番,方案很多,最终选择 Windows Service Wrapper ,按网上的步骤做下来不太顺,总结下。
 
1.不要放在  Program Files 这样有空格的目录;
2.安装服务cmd.exe 以管理员身份运行;
3.xml配置文件logpath目录必需存在(网上都是放nginx根目录),不然服务起动不了;
4.logmode(日志模式)有 reset , roll (move to *.old) or append (default) 可选
 
实践出真理,看似简单的事,做起来不一定容易。最终附上 nginx 及 winsw 点我

参考:

http://www.360sdn.com/Nginx/2014/0807/4044.html

http://deeplyloving.iteye.com/blog/734588

https://kenai.com/projects/winsw/pages/ConfigurationSyntax

记录nginx 搭建集群环境踏过的坑的更多相关文章

  1. Hadoop化繁为简-从安装Linux到搭建集群环境

    简介与环境准备 hadoop的核心是分布式文件系统HDFS以及批处理计算MapReduce.近年,随着大数据.云计算.物联网的兴起,也极大的吸引了我的兴趣,看了网上很多文章,感觉还是云里雾里,很多不必 ...

  2. Linux+.NetCore+Nginx搭建集群

    本篇和大家分享的是Linux+NetCore+Nginx搭建负载集群,对于netcore2.0发布后,我一直在看官网的文档并学习,关注有哪些新增的东西,我,一个从1.0到2.0的跟随者这里只总结一句话 ...

  3. Hadoop化繁为简(一)-从安装Linux到搭建集群环境

    简介与环境准备 hadoop的核心是分布式文件系统HDFS以及批处理计算MapReduce.近年,随着大数据.云计算.物联网的兴起,也极大的吸引了我的兴趣,看了网上很多文章,感觉还是云里雾里,很多不必 ...

  4. 基于redis 3.x搭建集群环境

    由于我团队开发的在线坐席系统,即将面对线上每周3000W的下行投放客户,产品的咨询量可能会很大,基于前期,200W的投放时,前10分钟,大概800问题量,平均一个客户大概8个问题,也就是说每分钟10个 ...

  5. linux下安装 zookeeper-3.4.9并搭建集群环境

    本文主要记录作者在实践过程中实现在centos7环境下安装zookeeper并搭建集群的详细步骤,关于zookeeper本文将不做详细介绍,安装步骤详情如下: 前提准备:3台linux服务器(因为zo ...

  6. druid 搭建集群环境

    下载druid 下载地址 http://static.druid.io/artifacts/releases/druid-services-0.6.145-bin.tar.gz 解压 tar -zxv ...

  7. 转】Nginx+tomcat集群环境搭建(Windows下)

    原博文出自于:    http://blog.csdn.net/clj198606061111/article/details/22621003       感谢! 实验环境 windows xp s ...

  8. Nginx+tomcat集群环境搭建

    实验环境:windows xp sp3 Nginx版本:1.5.12: 下载地址:http://nginx.org/en/download.html Tomcat版本:6.0.39 下载地址:http ...

  9. Nginx+tomcat集群环境搭建(Windows下)

    实验环境 windows xp sp3 Nginx版本:1.5.12: 下载地址:http://nginx.org/en/download.html Tomcat版本:6.0.39 下载地址:http ...

随机推荐

  1. 对象复制问题 && lvalue-rvalue && 引用

    按值传递实参到函数和函数返回临时变量的副本,函数的效率对执行性能来说至关重要 如果避免这样的复制操作,则执行时间可能会大大缩短. class CMessage { private: char * m_ ...

  2. java 使用POI批量导入excel数据

    一.定义 Apache POI是Apache软件基金会的开放源码函式库,POI提供API给Java程序对Microsoft Office格式档案读和写的功能. 二.所需jar包: 三.简单的一个读取e ...

  3. XNote Ver:0.79

    隐藏主窗后,双击小图标显示主窗. 支持拖拉网页文字到小图标上,直接在当前项目上创建下级资料项目. 项目分类限50个汉字.

  4. CentOS 6.5部署安装Memcached

    1. Yum安装Memcache 查找memcached yum  search  memcached 该命令可以查询yum库中有关memcached的安装包信息,以下是搜寻结果截图: 安装 memc ...

  5. LeetCode题目分类

    利用堆栈:http://oj.leetcode.com/problems/evaluate-reverse-polish-notation/http://oj.leetcode.com/problem ...

  6. 推荐——Monkey《大话 app 测试——Android、iOS 应用测试指南》

    <大话移动——Android与iOS应用测试指南> 京东可以预购啦!http://item.jd.com/11495028.html 当当网:http://product.dangdang ...

  7. codeforces 709D D. Recover the String(构造)

    题目链接: D. Recover the String time limit per test 1 second memory limit per test 256 megabytes input s ...

  8. Java虚拟机详解05----垃圾收集器及GC参数

    [声明] 欢迎转载,但请保留文章原始出处→_→ 生命壹号:http://www.cnblogs.com/smyhvae/ 文章来源:http://www.cnblogs.com/smyhvae/p/4 ...

  9. SQL Server进制

    在项目中,大家可能都遇到过,需要把十进制转换为其他进制的情况,google上一搜,已经有很多2进制.8进制.16进制和十进制的转换方法.但是在一些项目中,这些可能无法满足要求,可能需要17.18甚至是 ...

  10. java 15-4 集合的专用遍历工具 迭代器

    Iterator iterator():迭代器,集合的专用遍历方式 A:Object next():获取元素,并移动到下一个位置. 有时候会出现这样的错误: NoSuchElementExceptio ...