您的位置:首页 > 运维架构 > Nginx

nginx历程??

2016-05-03 19:28 597 查看

一、nginx安装

**注:nginx配置务必好好多试几次,不合适删了再来一遍,重新配置也非常方便的。

参考书籍:《深入理解nginx:模块开发与架构解析》**

centos 6.5

用yum install安装了openssl、pcre以及zlib。

其中openssl的源码包还是能在/usr/lib64/openssl上找到的。

zlib自己下了一个源码包。

pcre则没有添加源码目录了。因为确实没找到,望知道的人告知,不过好像这么干也出问题。

./configure --prefix=/home/hqwu/nginx --with-pcre --with-openssl=/usr/lib64/openssl/ --with-zlib=/home/hqwu/nginx_source/zlib-1.2.8 --user=hqwu --group=hqwu


最后面添加了–user=hqwu –group=hqwu。如果不添加,以后是默认nobody。

nginx安装目录也相应的放在了hqwu用户的主目录下。

找安装软件的源码包如下方法:

rpm -ql 软件名


会列出很多文件,仔细勘察。

然后make

最后make install

运行则是

sudo /home/hqwu/nginx/sbin/nginx

具体命令详见参考书籍。

新增的一个配置:

./configure 后面多添加一个加上–with-debug

例如:

1、编译nginx的时候:./configure –with-debug

2、虚拟主机中:

server{

server_name example.com

error_log /path/to/errorlog/error.log debug;

}

就上面两步,看起来很简单。但效果确实很令人惊叹

链接:https://www.zhihu.com/question/30255532/answer/47353682

二、让nginx访问服务器的文件列表

其实蛮简单的,主要就是理解权限问题。

user hqwu;
worker_processes  1;
events {
use epoll;
worker_connections  1024;
}
http {
default_type  application/octet-stream;
sendfile        on;
keepalive_timeout  65;
server {
listen       80;
server_name  localhost;
location / {
root   /share/;
autoindex on;
}
}
}


文件权限都是设置了755。

这里还是没怎么搞懂,访问文件的“人”是谁?这个还有待好好去试验。

今天有点晚了,得回宿舍了。

三:《深入理解nginx》第三章开发一个简单地http模块

首先我的nginx源码包 目录名字设为了 nginx_source。

mytest模块是放在该源码包目录下的src/mytest目录下:

代码是书上的。。

我这里呢,看着书写代码的时候就出现2错误,一个是这样子的:

ngx_buf_t *b;
b=ngx_create_temp_buf(r->pool,response.len);
if(b=NULL)


这个错误导致我好几天都失败了。我是刚才./configure (当然后面得跟一些参数)后,make的时候才发现,原来那会我编译的时候没看错误。居然出错了。

然后就找到了这行,修改了。

还有一个是这样子的:

ngx_module_t ngx_http_mytest_module={
……
……
NULL,
NULL,
NULL,
NULL,
NULL,
NULL,
NGX_MODULE_V1_PADDING
};


这里少写了一个NULL,导致了missing initial。

config文件等书上说的很详细了。

./configure的时候加上–add-module=PATH就可以。。

一定要注意 make 的时候会出现什么错误。

然后就是修改 nginx.conf文件。跟书上一样。

如果想debug可以参考前面的内容。

然后一切顺利。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: