nginx作为轻量级的http服务器,能够很好地应付高并发的http请求。同时,它也能被配置为http代理服务器。作为后台开发的菜鸟,这样一份优秀的开源服务器摆在眼前,总要研究一番,学点东西才靠谱啊!
当然,学习nginx的第一步就是学会如何使用它了。
首先,从官网下载源码http://nginx.org/download/nginx-1.8.0.tar.gz,解压后进入nginx-1.8.0目录。
nginx依赖pcre库,所以还需要下载pcre源码 。
将pcre源码解压在nginx-1.8.0/3rdparty/pcre-8.32,然后在根目录下执行
<code>./configure --with-http_ssl_module --with-pcre=./3rdparty/pcre-8.32/ ./make ./sudo make install </code>
即可完成安装,默认安装目录在/usr/local/nginx。
安装过程中可能会提示缺少openssl库,可以直接apt-get install。
在使用nginx之前,先在/home/bookxiao/下创建一个nginx目录用于存放资源文件,再创建到/usr/local/nginx下conf, sbin以及logs的软连接,避免频繁的切换目录。
<code>bookxiao<span>@ubuntuforfun</span><span>:~/nginx</span><span>$ </span>ls bin conf data logs</code>
nginx的配置文件位于conf/下,名为nginx.conf。组成配置文件的基本单元是一条条的“指令(directives)”,指令由名称、参数属性以及结尾的’:’三部分组成。此外,一些指令会被{ }包围起来,组成一个block;如果block内部包含一些指令,那么这个block也叫作一个“上下文(context)”。
配置文件里所有的指令要么在某个上下文内,要么不被任何上下文包含(即位于主上下文),有点类似于C中的全局变量。
例如, 一个简单的配置文件如下所示:
<code>bookxiao<span>@ubuntuforfun</span><span>:~/nginx/conf</span><span>$ </span>cat nginx.conf <span>#user nobody;</span> worker_processes <span>1</span>; events { worker_connections <span>1024</span>; } http { server { listen <span>80</span>; server_name localhost; location / { root html; index index.html index.htm; } location /images { root /home/bookxiao/nginx/data; } } }</code>
event, http, server都是”context”;指令”worker_processes 1;”位于main context。
要想简单测试nginx的功能,那么首先看一下如何配置server{}块。在nginx中,每个server块都表示一个HTTP服务,不同的server拥有不同的port和server_name。
假定我们现在有一张图片,存放路径为~/nginx/data/images/beautiful-girl.jpg。
现在我们想在浏览器里面输入http://127.0.0.1/images/beautiful-girl.jpg
,就会这样:
仔细看一下上面的配置文件,看到有个location的block是这样定义的:
<code> location /images { root /home/bookxiao/nginx/<span><span>data</span>;</span> }</code>
locations后跟的”/images”用来跟客户端的URL请求作前缀匹配,如果匹配了,那么就将root的值添加到URL的前端,组成新的URL去文件系统寻找资源文件。
比如说,这里原本的URL是”/images/beautiful-girl.jpg”,那么最终的URL是”/home/bookxiao/nginx/data/images/beautiful-girl.jpg”。
如果有多个location都匹配某个URL怎么办?nginx的策略是选择最长匹配的值的那个location。
所以,我们可以增加这样一个server:
<code> server { listen <span>9999</span>; server_name localhost_test; location /images { root /home/bookxiao/nginx/<span><span>data</span>/test;</span> } }</code>
然后执行sudo nginx -s reload
重新加载配置文件。然后我们在data/下新建一个test/images/目录。这样,我们在浏览器中输入http://127.0.0.1:9999/images/beautiful-girl.img
。那么我们就会看到:
版权声明:本文为博主原创文章,未经博主允许不得转载。
以上就介绍了nginx学习笔记1 使用nginx搭建简单的HTTP服务器,包括了方面的内容,希望对PHP教程有兴趣的朋友有所帮助。