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

  • Author:Echo Chen(陈斌)

  • Email:chenb19870707@gmail.com

  • Blog:Blog.csdn.net/chen19870707

  • Date:Nov 7th, 2014

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

    1.Nginx 程序包

    眼下nginx最新的开发版本号为1.7.7:

    稳定版本号为1.6.2:

    大家能够依据自己的操作系统和喜好选择程序包来实现。这里以nginx-1.7.7.tar.gzCentOs 6.4操作系统下为例。

    2.Nginx下载解压、安装

    下载和解压。这里以nginx-1.7.7.tar.gzCentOs 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: #设定httpserver。利用它的反向代理功能提供负载均衡支持
      12: http
      13: {
      14:     ...
      15:     #第一个虚拟server
      16:    server {
      17:     #侦听192.168.8.x的80port
      18:         listen       80;
      19:         server_name  192.168.8.x;
      20:        }
      21: }
      22:  
    当中events模块表示工作模式与链接数上限。http模块的作用为设定httpserver,server模块表示虚拟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表示监听的port号,sever_name则是webserver的名称(能够是域名、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源代码剖析 配置与部署篇(一) 手把手实现nginx &quot;I love you&quot;的更多相关文章

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

      菜鸟nginx源代码剖析 框架篇(一) 从main函数看nginx启动流程 Author:Echo Chen(陈斌) Email:chenb19870707@gmail.com Blog:Blog.c ...

    2. 菜鸟nginx源代码剖析数据结构篇(七) 哈希表 ngx_hash_t(下)

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

    3. 菜鸟nginx源代码剖析数据结构篇(一)动态数组ngx_array_t

      菜鸟nginx源代码剖析数据结构篇(一)动态数组ngx_array_t Author:Echo Chen(陈斌) Email:chenb19870707@gmail.com Blog:Blog.csd ...

    4. 菜鸟nginx源代码剖析数据结构篇(八) 缓冲区链表ngx_chain_t

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

    5. 菜鸟nginx源代码剖析数据结构篇(十) 自旋锁ngx_spinlock

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

    6. 菜鸟nginx源代码剖析数据结构篇(六) 哈希表 ngx_hash_t(上)

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

    7. 菜鸟nginx源代码剖析数据结构篇(九) 内存池ngx_pool_t

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

    8. 高性能web服务器(热死你)Resin Linux的安装、配置、部署,性能远超Nginx支持Java、PHP等

      高性能web服务器(热死你)Resin Linux的安装.配置.部署,性能远超Nginx支持Java.PHP等 一.    安装resin 1.  下载resin: 下载地址:http://cauch ...

    9. NGINX源代码剖析 之 CPU绑定(CPU亲和性)

      作者:邹祁峰 邮箱:Qifeng.zou.job@gmail.com 博客:http://blog.csdn.net/qifengzou 日期:2014.06.12 18:44 转载请注明来自&quo ...

    随机推荐

    1. python爬虫之处理验证码

      云打码实现处理验证码 处理验证码,我们需要借助第三方平台来帮我们处理,个人认为云打码处理验证码的准确度还是可以的 首先第一步,我们得先注册一个云打码的账号,普通用户和开发者用户都需要注册一下 然后登陆 ...

    2. Servlet到Servlet的请求转发与重定向的区别

      Servlet跳转到另一个Servlet中: request.getRequestDispatcher().forward();代表默认的是post方法,即在被跳转的Servlet的doPost()方 ...

    3. 涨知识-VI 基于TCP/UDP的应用层协议

      基于TCP/UDP的应用层协议: 基于TCP: Telnet(Teletype over the Network, 网络电传),通过一个终端(terminal)登陆到网络 FTP(File Trans ...

    4. [转]Android监听ListView里Button事件

      本文转自:http://blog.csdn.net/lovediji/article/details/6753349 public View getView(int position, View co ...

    5. 6.11---上传图片遇到的bug,字节流输入流输出流----图解----图片必须是post

      !!!这里要注意不能是目录必须是指定的文件名+目录,不然就存照片到指定的目录不成功 ----------------------------------------完整controller-servi ...

    6. [转]五个Linux下用户空间的调试工具

      有几个Linux下的用户空间调试工具和技术,它们用来分析用户空间的问题相当有用.它们是: 'print' 语句 查询 (/proc, /sys 等) 跟踪 (strace/ltrace) Valgri ...

    7. [Android]异常1-duplicate files during packaging of

      异常原因: 可能一>项目存在重复资源文件 可能二>Android Studio与源代码Android Studio不一致 解决方法有: 解决一>查找重复资源,删除或者修改文件 解决二 ...

    8. 六时出行 App 隐私政策

      六时出行 App 隐私政策   本应用尊重并保护所有使用服务用户的个人隐私权.为了给您提供更准确.更有个性化的服务,本应用会按照本隐私权政策的规定使用和披露您的个人信息.但本应用将以高度的勤勉.审慎义 ...

    9. MyEclipse快捷键 (精简)

      在调试程序的时候,我们经常需要注释一些代码,在用Myeclipse编程时,就可以用 Ctrl+/ 为选中的一段代码加上以 // 打头的注释:当需要恢复代码功能的时候,又可以用Ctrl+/ 去掉注释.这 ...

    10. linux杀掉某个进程的脚本

      https://www.cnblogs.com/zeng1994/p/13a2c5a28e55dd3abc2c75a4fb80371a.html awk的说明: https://www.cnblogs ...