nginx学习笔记1 使用nginx搭建简单的HTTP服务器
当然,学习nginx的第一步就是学会如何使用它了。
1 安装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,然后在根目录下执行
./configure --with-http_ssl_module --with-pcre=./3rdparty/pcre-8.32/
./make
./sudo make install
即可完成安装,默认安装目录在/usr/local/nginx。
安装过程中可能会提示缺少openssl库,可以直接apt-get install。
2 配置nginx
在使用nginx之前,先在/home/bookxiao/下创建一个nginx目录用于存放资源文件,再创建到/usr/local/nginx下conf, sbin以及logs的软连接,避免频繁的切换目录。
bookxiao@ubuntuforfun:~/nginx$ ls
bin conf data logs
nginx的配置文件位于conf/下,名为nginx.conf。组成配置文件的基本单元是一条条的“指令(directives)”,指令由名称、参数属性以及结尾的’:’三部分组成。此外,一些指令会被{ }包围起来,组成一个block;如果block内部包含一些指令,那么这个block也叫作一个“上下文(context)”。
配置文件里所有的指令要么在某个上下文内,要么不被任何上下文包含(即位于主上下文),有点类似于C中的全局变量。
例如, 一个简单的配置文件如下所示:
bookxiao@ubuntuforfun:~/nginx/conf$ cat nginx.conf
#user nobody;
worker_processes 1;
events {
worker_connections 1024;
}
http {
server {
listen 80;
server_name localhost;
location / {
root html;
index index.html index.htm;
}
location /images {
root /home/bookxiao/nginx/data;
}
}
}
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是这样定义的:
location /images {
root /home/bookxiao/nginx/data;
}
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:
server {
listen 9999;
server_name localhost_test;
location /images {
root /home/bookxiao/nginx/data/test;
}
}
然后执行sudo nginx -s reload
重新加载配置文件。然后我们在data/下新建一个test/images/目录。这样,我们在浏览器中输入http://127.0.0.1:9999/images/beautiful-girl.img
。那么我们就会看到:
版权声明:本文为博主原创文章,未经博主允许不得转载。
以上就介绍了nginx学习笔记1 使用nginx搭建简单的HTTP服务器,包括了方面的内容,希望对PHP教程有兴趣的朋友有所帮助。
声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn核实处理。
相关文章
相关视频
上一篇: oracle 数据泵迁移不同表空间数据
下一篇: 怎么将接收到的数组转成如下格式