
正文
菜鸟nginx源代码剖析 配置与部署篇(一) 手把手实现nginx "I love you"
提示:扫一扫查出行【扫一扫了解最新限行尾号】
复制提示
菜鸟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:
- Linux:nginx-1.7.7.tar.gz
- Windows:nginx-1.7.7.zip
稳定版本号为1.6.2:
- Linux:nginx-1.6.2.tar.gz
- Windows:nginx-1.6.2.zip
大家能够依据自己的操作系统和喜好选择程序包来实现。这里以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: #设定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>
眼下nginx最新的开发版本号为1.7.7:
- Linux:nginx-1.7.7.tar.gz
- Windows:nginx-1.7.7.zip
稳定版本号为1.6.2:
- Linux:nginx-1.6.2.tar.gz
- Windows:nginx-1.6.2.zip
大家能够依据自己的操作系统和喜好选择程序包来实现。这里以nginx-1.7.7.tar.gz 在CentOs 6.4操作系统下为例。
下载和解压。这里以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: #设定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>
依照上面的操作。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中文具体解释》。建立一个/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>
1: /usr/local/nginx/sbin/nginx
2: s -ef | grep nginx
显演示样例如以下则启动成功:

在/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 "I love you"的更多相关文章- 菜鸟nginx源代码剖析 框架篇(一) 从main函数看nginx启动流程
菜鸟nginx源代码剖析 框架篇(一) 从main函数看nginx启动流程 Author:Echo Chen(陈斌) Email:chenb19870707@gmail.com Blog:Blog.c ...
- 菜鸟nginx源代码剖析数据结构篇(七) 哈希表 ngx_hash_t(下)
菜鸟nginx源代码剖析数据结构篇(七) 哈希表 ngx_hash_t(下) Author:Echo Chen(陈斌) Email:chenb19870707@gmail.com Blog:B ...
- 菜鸟nginx源代码剖析数据结构篇(一)动态数组ngx_array_t
菜鸟nginx源代码剖析数据结构篇(一)动态数组ngx_array_t Author:Echo Chen(陈斌) Email:chenb19870707@gmail.com Blog:Blog.csd ...
- 菜鸟nginx源代码剖析数据结构篇(八) 缓冲区链表ngx_chain_t
菜鸟nginx源代码剖析数据结构篇(八) 缓冲区链表 ngx_chain_t Author:Echo Chen(陈斌) Email:chenb19870707@gmail.com Blog:Blog. ...
- 菜鸟nginx源代码剖析数据结构篇(十) 自旋锁ngx_spinlock
菜鸟nginx源代码剖析数据结构篇(十) 自旋锁ngx_spinlock Author:Echo Chen(陈斌) Email:chenb19870707@gmail.com Blog:Blog.cs ...
- 菜鸟nginx源代码剖析数据结构篇(六) 哈希表 ngx_hash_t(上)
菜鸟nginx源代码剖析数据结构篇(六) 哈希表 ngx_hash_t(上) Author:Echo Chen(陈斌) Email:chenb19870707@gmail.com Blog:Blog. ...
- 菜鸟nginx源代码剖析数据结构篇(九) 内存池ngx_pool_t
菜鸟nginx源代码剖析数据结构篇(九) 内存池ngx_pool_t Author:Echo Chen(陈斌) Email:chenb19870707@gmail.com Blog:Blog.csdn ...
- 高性能web服务器(热死你)Resin Linux的安装、配置、部署,性能远超Nginx支持Java、PHP等
高性能web服务器(热死你)Resin Linux的安装.配置.部署,性能远超Nginx支持Java.PHP等 一. 安装resin 1. 下载resin: 下载地址:http://cauch ...
- NGINX源代码剖析 之 CPU绑定(CPU亲和性)
作者:邹祁峰 邮箱:Qifeng.zou.job@gmail.com 博客:http://blog.csdn.net/qifengzou 日期:2014.06.12 18:44 转载请注明来自&quo ...
随机推荐- Codeforces Round #Pi (Div. 2) D. One-Dimensional Battle Ships set乱搞
D. One-Dimensional Battle ShipsTime Limit: 2 Sec Memory Limit: 256 MB 题目连接 http://codeforces.com/con ...
- Wild Words
poj1816:http://poj.org/problem?id=1816 题意:给你n个模板串,然后每个串除了字母,还有?或者*,?可以代替任何非空单个字符,*可以替代任何长度任何串,包括空字符串 ...
- (转)直接保存对象的数据库——db4o
在实际开发中,数据的存储是必不可少的,常用的有数据库存储和文件存储.数据库目前有关系型数据库和文档型数据库(No-SQL).关系型数据库以字段.类型.约束.表关系来存储和管理数据,比较常见的比如Ora ...
- apache2部署django以及静态文件
django中的runserver只是一个很简单的web服务器,在开发中是不建议使用的,django在官方中建议是使用apache2等web服务器来配置,并且django会把静态文件交由apache2 ...
- Problem : 1196 ( Lowest Bit )
第一次一次通过,逻辑太简单... #include<iostream> using namespace std; void main() { int n; while(cin>> ...
- 数据库的设计:深入理解 Realm 的多线程处理机制
你已经阅读过 Realm 关于线程的基础知识.你已经知道了在处理多线程的时候你不需要关心太多东西了,因为强大的 Realm 会帮你处理好这些,但是你还是很想知道更多细节…… 你想知道在 Realm 的 ...
- [c/c++] programming之路(15)、多维数组和二分查找法,小外挂
一.多维数组 #include<stdio.h> #include<stdlib.h> void main(){ ][]; int i,j; ; i < ; i++) { ...
- 函数式编程的终极形式:面向映射流的编程pipeline
1.单体(数据)映射:基本操作:数据的单次映射: 2.管道流:数据的流程化处理 基础是monand类型,形式是声明式编程: Pipeline模型: 它以一种“链式模型”来串接不同的程序或者不同的组件, ...
- jquery操作select标签change事件
$('#update_supply_id').on('change',function(){//判断是否选取prompt属性,无返回值: if($(this).val()){ var selectTe ...
- 搜狐畅游CEO王滔辞职
凤凰科技讯 11月3日消息,搜狐公布公告确认搜狐畅游CEO离职.公告称王滔因个人原因辞去畅游首席运行官职务.将继续担任畅游公司董事和首席产品官. 据搜狐公告,董事会任命搜狐总裁余楚媛与畅游总裁陈德文为 ...
菜鸟nginx源代码剖析 框架篇(一) 从main函数看nginx启动流程 Author:Echo Chen(陈斌) Email:chenb19870707@gmail.com Blog:Blog.c ...
菜鸟nginx源代码剖析数据结构篇(七) 哈希表 ngx_hash_t(下) Author:Echo Chen(陈斌) Email:chenb19870707@gmail.com Blog:B ...
菜鸟nginx源代码剖析数据结构篇(一)动态数组ngx_array_t Author:Echo Chen(陈斌) Email:chenb19870707@gmail.com Blog:Blog.csd ...
菜鸟nginx源代码剖析数据结构篇(八) 缓冲区链表 ngx_chain_t Author:Echo Chen(陈斌) Email:chenb19870707@gmail.com Blog:Blog. ...
菜鸟nginx源代码剖析数据结构篇(十) 自旋锁ngx_spinlock Author:Echo Chen(陈斌) Email:chenb19870707@gmail.com Blog:Blog.cs ...
菜鸟nginx源代码剖析数据结构篇(六) 哈希表 ngx_hash_t(上) Author:Echo Chen(陈斌) Email:chenb19870707@gmail.com Blog:Blog. ...
菜鸟nginx源代码剖析数据结构篇(九) 内存池ngx_pool_t Author:Echo Chen(陈斌) Email:chenb19870707@gmail.com Blog:Blog.csdn ...
高性能web服务器(热死你)Resin Linux的安装.配置.部署,性能远超Nginx支持Java.PHP等 一. 安装resin 1. 下载resin: 下载地址:http://cauch ...
作者:邹祁峰 邮箱:Qifeng.zou.job@gmail.com 博客:http://blog.csdn.net/qifengzou 日期:2014.06.12 18:44 转载请注明来自&quo ...
- Codeforces Round #Pi (Div. 2) D. One-Dimensional Battle Ships set乱搞
D. One-Dimensional Battle ShipsTime Limit: 2 Sec Memory Limit: 256 MB 题目连接 http://codeforces.com/con ...
- Wild Words
poj1816:http://poj.org/problem?id=1816 题意:给你n个模板串,然后每个串除了字母,还有?或者*,?可以代替任何非空单个字符,*可以替代任何长度任何串,包括空字符串 ...
- (转)直接保存对象的数据库——db4o
在实际开发中,数据的存储是必不可少的,常用的有数据库存储和文件存储.数据库目前有关系型数据库和文档型数据库(No-SQL).关系型数据库以字段.类型.约束.表关系来存储和管理数据,比较常见的比如Ora ...
- apache2部署django以及静态文件
django中的runserver只是一个很简单的web服务器,在开发中是不建议使用的,django在官方中建议是使用apache2等web服务器来配置,并且django会把静态文件交由apache2 ...
- Problem : 1196 ( Lowest Bit )
第一次一次通过,逻辑太简单... #include<iostream> using namespace std; void main() { int n; while(cin>> ...
- 数据库的设计:深入理解 Realm 的多线程处理机制
你已经阅读过 Realm 关于线程的基础知识.你已经知道了在处理多线程的时候你不需要关心太多东西了,因为强大的 Realm 会帮你处理好这些,但是你还是很想知道更多细节…… 你想知道在 Realm 的 ...
- [c/c++] programming之路(15)、多维数组和二分查找法,小外挂
一.多维数组 #include<stdio.h> #include<stdlib.h> void main(){ ][]; int i,j; ; i < ; i++) { ...
- 函数式编程的终极形式:面向映射流的编程pipeline
1.单体(数据)映射:基本操作:数据的单次映射: 2.管道流:数据的流程化处理 基础是monand类型,形式是声明式编程: Pipeline模型: 它以一种“链式模型”来串接不同的程序或者不同的组件, ...
- jquery操作select标签change事件
$('#update_supply_id').on('change',function(){//判断是否选取prompt属性,无返回值: if($(this).val()){ var selectTe ...
- 搜狐畅游CEO王滔辞职
凤凰科技讯 11月3日消息,搜狐公布公告确认搜狐畅游CEO离职.公告称王滔因个人原因辞去畅游首席运行官职务.将继续担任畅游公司董事和首席产品官. 据搜狐公告,董事会任命搜狐总裁余楚媛与畅游总裁陈德文为 ...







