菜鸟nginx源码剖析 配置与部署篇(一) 手把手配置nginx “I love you”

  • TCMalloc 对MYSQL 性能 优化的分析

    菜鸟nginx源码剖析系列文章解读

  • Author:Echo Chen(陈斌)

  • Email:chenb19870707@gmail.com

  • Blog:Blog.csdn.net/chen19870707

  • Date:Nov 7th, 2014

    还记得在前几年的CSDN泄漏账号事件中,统计发现程序员的账号中含有love的最多,这里我也俗套下,在这篇文章中将讲解如何 一步一步实用Nginx在一台机器上搭建一个最简单的显示“I love you”的Web服务器,大家一起动手尝试吧。

    1.Nginx 程序包

    目前nginx最新的开发版本为1.7.7:

    稳定版本为1.6.2:

    大家可以根据自己的操作系统和喜好选择程序包来实现,这里以nginx-1.7.7.tar.gz 在CentOs 6.4操作系统下为例。

    2.Nginx下载解压、安装

    下载和解压,这里以nginx-1.7.7.tar.gz 在CentOs 6.4操作系统下为例:

       1: wget http://nginx.org/download/nginx-1.7.7.tar.gz
       2: tar zxvf nginx-1.7.7.tar.gz 

    但是下载解压完不要急着安装,因为 Nginx 依赖很多软件(gcc、g++、make、libz-dev、libbz2-dev、libreadline-dev),我们假设您的 Linux 环境是“纯净”的,所以下面我们就来安装这些依赖包。请按照如下步骤安装:

       1: yum install gcc -y
       2: yum install g++ -y
       3: yum install make -y
       4: yum install zlib-dev* -y
       5: yum install bzip2-dev* -y
       6: yum install readline-devel -y
    
    

    这是一些基本的软件,另外还有 PCRE 要安装。PCRE 是“Perl Compatible Regular Expressions”的缩写,是一个正则表达式库。下载、解压并安装 PCRE:

       1: wget ftp://ftp.csx.cam.ac.uk/pub/software/programming/pcre/pcre-8.36.tar.gz
       2: tar -zxvf pcre-8.36.tar.gz
       3: cd pcre-8.36.tar.gz
       4: ./configure
       5: make
       6: make install

    好了,这下可以安装我们的nginx了

       1: tar -zxvf nginx-1.7.7.tar.gz
       2: cd nginx-1.7.7
       3: ./configure
       4: sudo make
       5: sudo make install

    3.Nginx 配置文件

    按照上面的操作,Nginx 就已经安装完了。因为我们使用的是默认的 configure,所以会安装到/usr/local/nginx目录。相应的配置文件是/usr/local/nginx/conf/nginx.conf。我们打开配置文件,看到结构形如:

       1: ...
       2: #工作模式与连接数上限
       3: events
       4: {
       5: #参考事件模型,use [ kqueue | rtsig | epoll | /dev/poll | select | poll ]; epoll模型是Linux 2.6以上版本内核中的高性能网络I/O模型,如果跑在FreeBSD上面,就用kqueue模型。
       6: use epoll;
       7: #单个进程最大连接数(最大连接数=连接数*进程数)
       8: worker_connections 65535;
       9: }
      10:  
      11: #设定http服务器,利用它的反向代理功能提供负载均衡支持
      12: http
      13: {
      14:     ...
      15:     #第一个虚拟服务器
      16:    server {
      17:     #侦听192.168.8.x的80端口
      18:         listen       80;
      19:         server_name  192.168.8.x;
      20:        }
      21: }
      22:  

    其中events模块表示工作模式与链接数上限,http模块的作用为设定http服务器,server模块表示虚拟服务器,这里只是简要列出最简单的配置,如果有需要对配置进行进一步了解,可以参考《Nginx配置文件nginx.conf中文详解》。

    4.Nginx 一个简单配置的编写

    建立一个/root/test_space目录,用来存储我们的测试页面。再直接在 Nginx 的默认配置文件/usr/loca/nginx/conf/nginx.conf中修改,在http中增加一个server模块,如下:

       1: server {
       2:     listen      8011;
       3:     server_name localhost;
       4:     charset     utf-8;
       5:     location / {
       6:         alias   /root/test_space/;
       7:     }
       8: }

    其中listen表示监听的端口号,sever_name则是web服务器的名称(可以是域名、host 或 IP 地址),charset指定编码字符集,这里的location则通过alias指定了web服务的文件目录。

    5.Nginx启动

       1: /usr/local/nginx/sbin/nginx 
       2: s -ef | grep nginx

    显示如下则启动成功:

    6.测试

    在/root/test_space下建立如下html文件:

       1: <html>
       2:    <head></head>
       3:    <body>I love you!<body>
       4: </html>

    -

    Echo Chen:Blog.csdn.net/chen19870707

  • 菜鸟nginx源码剖析的更多相关文章

    1. 菜鸟nginx源码剖析 框架篇(一) 从main函数看nginx启动流程(转)

      俗话说的好,牵牛要牵牛鼻子 驾车顶牛,处理复杂的东西,只要抓住重点,才能理清脉络,不至于深陷其中,不能自拔.对复杂的nginx而言,main函数就是“牛之鼻”,只要能理清main函数,就一定能理解其中 ...

    2. 菜鸟nginx源码剖析数据结构篇(十一) 共享内存ngx_shm_t[转]

      菜鸟nginx源码剖析数据结构篇(十一) 共享内存ngx_shm_t Author:Echo Chen(陈斌) Email:chenb19870707@gmail.com Blog:Blog.csdn ...

    3. 菜鸟nginx源码剖析数据结构篇(十) 自旋锁ngx_spinlock[转]

      菜鸟nginx源码剖析数据结构篇(十) 自旋锁ngx_spinlock Author:Echo Chen(陈斌) Email:chenb19870707@gmail.com Blog:Blog.csd ...

    4. 菜鸟nginx源码剖析数据结构篇(九) 内存池ngx_pool_t[转]

      菜鸟nginx源码剖析数据结构篇(九) 内存池ngx_pool_t Author:Echo Chen(陈斌) Email:chenb19870707@gmail.com Blog:Blog.csdn. ...

    5. 菜鸟nginx源码剖析数据结构篇(八) 缓冲区链表ngx_chain_t[转]

      菜鸟nginx源码剖析数据结构篇(八) 缓冲区链表 ngx_chain_t Author:Echo Chen(陈斌) Email:chenb19870707@gmail.com Blog:Blog.c ...

    6. 菜鸟nginx源码剖析数据结构篇(七) 哈希表 ngx_hash_t(下)[转]

      菜鸟nginx源码剖析数据结构篇(七) 哈希表 ngx_hash_t(下) Author:Echo Chen(陈斌) Email:chenb19870707@gmail.com Blog:Blog.c ...

    7. 菜鸟nginx源码剖析数据结构篇(六) 哈希表 ngx_hash_t(上)[转]

      菜鸟nginx源码剖析数据结构篇(六) 哈希表 ngx_hash_t(上) Author:Echo Chen(陈斌) Email:chenb19870707@gmail.com Blog:Blog.c ...

    8. 菜鸟nginx源码剖析数据结构篇(五) 基数树 ngx_radix_tree_t[转]

      菜鸟nginx源码剖析数据结构篇(五) 基数树 ngx_radix_tree_t Author:Echo Chen(陈斌) Email:chenb19870707@gmail.com Blog:Blo ...

    9. 菜鸟nginx源码剖析数据结构篇(四)红黑树ngx_rbtree_t[转]

      菜鸟nginx源码剖析数据结构篇(四)红黑树ngx_rbtree_t Author:Echo Chen(陈斌) Email:chenb19870707@gmail.com Blog:Blog.csdn ...

    随机推荐

    1. Spring RedisTemplate操作-xml配置(1)

      网上没能找到全的spring redistemplate操作例子,故特意化了点时间做了接口调用练习,基本包含了所有redistemplate方法. 该操作例子是个系列,该片为spring xml配置, ...

    2. 用matplotlib制作的比较满意的蜡烛图

      用matplotlib制作的比较满意的蜡烛图 2D图形制作包, 功能强大, 习练了很久, 终于搞定了一个比较满意的脚本. 特点: 使用方面要非常简单 绘制出来的图要非常的满意, 具有如下的特点 时间和 ...

    3. 阿里云centos7.3安装lamp环境

      参考文档:http://www.jb51.net/article/96649.htm http://m.blog.csdn.net/qq_33813365/article/details/766337 ...

    4. kombu源码Producer收获一

      celery内置了kombu库,看了一下kombu的源码,从官网最简单的一个例子来分析---消息发布,源码如下: from __future__ import absolute_import, uni ...

    5. AngularJs -- ngMessages(1.3+)

      ngMessages(1.3+) 表单和验证是AngularJS中复杂的组件之一.用AngularJS默认的方式来写,不是特别好,不简洁. 在AngualrJS1.3发布前,表单验证必须以这种方式编写 ...

    6. c++刷题(39/100)笔试题3

      题目1: 现在你需要用一台奇怪的打字机书写一封书信.信的每行只能容纳宽度为100的字符,也就是说如果写下某个字符会导致行宽超过100,那么就要另起一行书写 信的内容由a-z的26个小写字母构成,而每个 ...

    7. mybatis多对多关联查询——(十)

      1.需求 查询用户及用户购买商品信息. 2     sql语句 查询主表是:用户表 关联表:由于用户和商品没有直接关联,通过订单和订单明细进行关联,所以关联表: orders.orderdetail. ...

    8. MVC 控制器中传递dynamic(对象) 给视图

      有时候不想重新定义一个实体,则使用 dynamic 来定义匿名类型. //匿名类型 传递到前台 Model dynamic viewModel = new { UserID = 5016 }; ret ...

    9. vs code 的背景颜色主题还有背景图片的自定义方法

      先说颜色主题吧: 依次点击文件--->首选项---->颜色主题 你就可以看到不同的颜色主题了 如果你还觉得不好看,不满意,不符合你的审美风格 你还可以在插件库里面下载相关插件: THEME ...

    10. Python api认证

      本节内容: 基本的api 升级的api 终极版api 环境:Djanao, 项目名:api_auto, app:api 角色:api端,客户端,黑客端 1.基本的api [api端] #api_aut ...