从本文开始,我将陆续书写有关
Nginx
相关学习内容。鉴于目前个人处于学习使用的阶段,在这里分享相关的学习使用经验,希望对大家的学习工作能有所帮助。
1.引言
Nginx
是一款优秀的Web 服务器/反向代理服务器及电子邮件(IMAP/POP3)
代理服务器,遵循BSD开源协议。具备高并发、高性能,高可扩展性、高可靠性、热部署* 等特点。目前Nginx
已被广泛使用,如百度、京东、新浪、网易、腾讯、淘宝等。同时也有许多的衍生版本,如淘宝Tengine
,OpenResty
等。
1.预备工作
- 选择一款虚拟机,
Windows
中可使用vmware workstation
,virtualbox
等,Mac
中可使用parallels desktop
- 下载并安装一款
Linux
操作系统,可使用Ubantu
、CentOS
等,推荐使用CentOS 7
。
2.获取nginx
-
文中使用Nginx 免费开源版作为实践版本,此外还有淘宝基于Nginx开发的版本 Tengie以及oprenresty等版本。
访问Nginx开源版本页面,nginx.org,在download页面中下载对应版本,Nginx 分为稳定版和开发板,稳定版版本号为偶数,开发版为计数。
NgInx 官网
-
复制版本下载链接,使用
wget
命令下载。
$ wget http://nginx.org/download/nginx-1.14.2.tar.gz
- 解压文件
$ tar -zxvf nginx-1.14.2
3.ngxin 目录结构
-
解压后nginx主要目录结构如下所示。
nginx目录结构
- 目录介绍
-
auto
:存放检测系统环境以及编译相关的脚本-
cc
:存放关于编译器相关的编译选项的检测脚本 -
lib
:存放nginx
编译所需要的一些库的检测脚本 -
os
:存放与平台相关的一些系统参数与系统调用相关的检测 -
lib
:存放nginx
编译所需要的一些库的检测脚本 -
types
:存放与数据类型相关的一些辅助脚本 -
conf
:默认配置文件,在安装完毕后,会拷贝到安装目录中去,后期配置全靠此目录文件
-
-
contrib
:存放一些实用工具,如目录中vim
拷贝到系统vim
后编辑配置文件时会有语法高亮提醒。 -
html
: 存放默认的站点目录,在安装后,会拷贝到安装目录中去 -
man
:帮助手册 -
src
:nginx
源码目录-
core
:nginx
的核心源代码,包括常用数据结构的定义,以及nginx初始化运行的核心代码如main函数 -
event
:存放对系统事件处理机制的封装,以及定时器的实现相关代码 -
http
:http
服务器相关的代码 -
mail
:邮件相关代码 -
misc
:一些辅助代码,如测试c++
头的兼容性 -
os
: 针对各种不同体系统结构所提供的系统函数的封装,对外提供统一的系统调用接口 -
stream
:实现四层协议转发,负载均衡等内容
-
-
4.编译安装
-
configre 选项介绍
nginx 源码编译需要使用configure 脚本自动生成Makefile文件,在编译之前我们先了解一下configure
支持的常用选项。针选项可以大致分为以下几类(个人分类,仅供参考)。更多内容可以查看官方文档 相关介绍说明。- 安装相关,主要指安装时需要配置的,如安装路径等。如以下选项:
-
--prefix
:指定安装路径,不指定则使用默认安装路径 -
--sbin-path
:指定可执行文件安装路径
-
- 需要启用的,配置默认不编译,因业务需要需编译的,一般以
with
开头,如以下选项:-
--with-debug
:声明启用调试日志 -
--with-poll_module
:声明启用poll
模块
-
- 需要关闭的,默认编译,安装不想编译的,一般以
without
开头,如以下选项:-
--without-http_gzip_module
:声明禁用gzip
模块 -
--without-http_rewrite_module
:声明禁用rewrite
模块
-
- 安装相关,主要指安装时需要配置的,如安装路径等。如以下选项:
-
生成Makefile:
$ ./configure --prefix=/usr/local/nginx
- 回车后会看到
configure
自动脚本运行的全过程,这个过程会调用auto
目录中的脚本进行系统环境监测及配置文件的检查。 - 该过程可能会提示缺少依赖,如
pcre
,根据提示内容使用yum
安装即可。
./configure: error: the HTTP rewrite module requires the PCRE library. You can either disable the module by using --without-http_rewrite_module option, or install the PCRE library into the system, or build the PCRE library statically from the source with nginx by using --with-pcre=<path> option.
- 回车后会看到
-
编译安装
生成Makefle没有问题后,即可直接进行编译安装操作。$ make & make install
-
完成安装后目录结构
编译安装后目录
-
conf
:存放所有配置文件 -
html
:存放网站站点目录 -
log
:存放日志文件 -
sbin
:存放nginx
主程序
-
5. 启动测试
- 启动:运行
sbin
目录nginx
即可启动nginx
服务
$ /usr/local/nginx/sbin/nginx
- 测试服务(此处使用
curl
请求服务器),浏览器
$ curl 127.0.0.1
- 返回如下结果则表明服务启动正常。
<!DOCTYPE html>
<html>
<head>
<title>Welcome to nginx!</title>
<style>
body {
width: 35em;
margin: 0 auto;
font-family: Tahoma, Verdana, Arial, sans-serif;
}
</style>
</head>
<body>
<h1>Welcome to nginx!</h1>
<p>If you see this page, the nginx web server is successfully installed and
working. Further configuration is required.</p>
<p>For online documentation and support please refer to
<a href="http://nginx.org/">nginx.org</a>.<br/>
Commercial support is available at
<a href="http://nginx.com/">nginx.com</a>.</p>
<p><em>Thank you for using nginx.</em></p>
</body>
</html>
6. 总结
本文主要介绍了基于CentOS
编译安装nginx
相关的操作。同时介绍了nginx
的目录文件结构及相关的一些配置选项,希望对想入门学习nginx
的小伙伴们提供帮助。在下篇文章中我将介绍nginx
信号量控制及配置文件相关的内容。
网友评论