点击上方蓝字关注我,我们一起学编程
如果觉得内容还不错,请帮忙分享一下
有任何疑问或者想看的内容,欢迎私信
微信搜索《编程笔记本》(codingbook2020),获取更多干活。
今天我们来初识一下 Nginx ,并安装环境。后续我们会花更多的时间去介绍其详细应用。
Nginx 是什么?
Nginx (发音:engine x) 是一个高性能的 HTTP 和反向代理 web 服务器,同时也提供了 MAP/POP3/SMTP 服务。
Nginx 是由伊戈尔·赛索耶夫为俄罗斯访问量第二的 Rambler.ru 站点(俄文:Рамблер)开发的,第一个公开版本 0.1.0 发布于 2004年 10 月 4 日。
其将源代码以类 BSD 许可证的形式发布,因它的稳定性、丰富的功能集、示例配置文件和低系统资源的消耗而闻名。2011 年 6 月 1 日,nginx 1.0.4 发布。
Nginx 是一款轻量级的 Web 服务器/反向代理服务器及电子邮件(IMAP/POP3)代理服务器,在 BSD-like 协议下发行。其特点是占用内存少,并发能力强,事实上 nginx 的并发能力在同类型的网页服务器中表现较好,中国大陆使用 nginx 网站用户有:百度、京东、新浪、网易、腾讯、淘宝等。
安装 Nginx
Linux 操作系统
首先我们需要一个内核为 Linux 2.6 及以上版本的操作系统,因为 Linux 2.6 及以上内核才 支持 epoll ,而在 Linux 上使用 select 或 poll 来解决事件的多路复用,是无法解决高并发压力问题的。
我们可以使用 uname -a
命令来查询 Linux 内核版本,例如:
jincheng@jincheng-PC:~/Desktop$ uname -a
Linux jincheng-PC 4.15.0-30deepin-generic #31 SMP Fri Nov 30 04:29:02 UTC 2018 x86_64 GNU/Linux
可以看到,版本 4.15.0 是符合我们要求的。
使用 Nginx 的必备软件
如果要使用 Nginx 的常用功能,那么首先需要确保该操作系统上至少安装了如下软件:
- GCC 编译器
GCC(GNU Compiler Collection)可用来编译 C 语言程序。Nginx 不会直接提供二进制可
执行程序,我们可以使用最简单的apt
方式安装 GCC ,例如:apt install gcc
。GCC 是必需的编译工具。后面也会用到 G++ 编译器,这里一并安装:apt install g++
。 - PCRE 库
PCRE(Perl Compatible Regular Expressions,Perl 兼容正则表达式)是由 Philip Hazel 开发的函数库,目前为很多软件所使用,该库支持正则表达式。如果我们在配置文件 nginx.conf 里使用了正则表达式,那么在编译 Nginx 时就必须把 PCRE 库编译进 Nginx,因为 Nginx 的 HTTP 模块要靠它来解析正则表达式。当然,如果你确认不会使用正则表达式,就不必安装它。其 apt 安装方式如下:apt install libpcre3 libpcre3-dev
。 - zlib 库
zlib 库用于对 HTTP 包的内容做 gzip 格式的压缩,如果我们在 nginx.conf 里配置了 gzip on ,并指定对于某些类型(content-type)的 HTTP 响应使用 gzip 来进行压缩以减少网络传输量,那么,在编译时就必须把 zlib 编译进 Nginx 。其 apt 安装方式如下:apt install zlib1g-dev
。 - OpenSSL 开发库
如果我们的服务器不只是要支持 HTTP ,还需要在更安全的 SSL 协议上传输 HTTP ,那么就需要拥有 OpenSSL 了。另外,如果我们想使用 MD5、SHA1 等散列函数,那么也需要安装它。其 apt 安装方式如下:apt install openssl libssl-dev
。
Nginx 是高度自由化的 Web 服务器,它的功能是由许多模块来支持的。而这些模块可根据我们的使用需求来定制,如果某些模块不需要使用则完全不必理会它。同样,如果使用了某个模块,而这个模块使用了一些类似 zlib 或 OpenSSL 等的第三方库,那么就必须先安装这些软件。
安装
- 从官网(http://nginx.org/en/download.html)下载源码包
- 解压源码包:
tar -zxvf nginx-1.16.1.tar.gz
- 进入目录 nginx-1.16.1 后执行:
./configure
configure 命令做了大量的“幕后”工作,包括检测操作系统内核和已经安装的软件,参数的解析,中间目录的生成以及根据各种参数生成一些 C 源码文件、Makefile 文件等。
make
make 命令根据 configure 命令生成的 Makefile 文件编译 Nginx 工程,并生成目标文件、最终的二进制文件。
make install
make install 命令根据 configure 执行时的参数将 Nginx 部署到指定的安装目录,包括相关目录的建立和二进制文件、配置文件的复制。
至此,我们就完成了 Nginx 的安装。
启动 Nginx
安装完成后,我们可以启动 Nginx :
jincheng@jincheng-PC:~/Desktop$ /usr/local/nginx/sbin/nginx
jincheng@jincheng-PC:~/Desktop$
成功启动 Nginx 是没有任何提示的,我们可以通过浏览器访问来验证 Nginx 是否成功启动:
首先获取本设备的 IP 地址:
jincheng@jincheng-PC:~/Desktop$ ifconfig
ens33: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
inet 192.168.245.141 netmask 255.255.255.0 broadcast 192.168.245.255
inet6 fe80::c8ee:7fd0:8682:2505 prefixlen 64 scopeid 0x20<link>
ether 00:0c:29:bc:82:d4 txqueuelen 1000 (Ethernet)
RX packets 4866 bytes 5198546 (4.9 MiB)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 2398 bytes 207118 (202.2 KiB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
lo: flags=73<UP,LOOPBACK,RUNNING> mtu 65536
inet 127.0.0.1 netmask 255.0.0.0
inet6 ::1 prefixlen 128 scopeid 0x10<host>
loop txqueuelen 1000 (Local Loopback)
RX packets 0 bytes 0 (0.0 B)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 0 bytes 0 (0.0 B)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
得到 IP 地址为:192.168.245.141 。
接着,我们通过浏览器访问这一地址:
图片
可以看到,Nginx 已经成功安装并启动。
我们可以使用 /usr/local/nginx/sbin/nginx -s stop
去关闭 Nginx :
jincheng@jincheng-PC:~/Desktop$ /usr/local/nginx/sbin/nginx -s stop
jincheng@jincheng-PC:~/Desktop$
再去打开网页:
图片
可以看到,由于 Nginx 已经关闭,我们无法再去访问该 IP 地址。
还可以使用 /usr/local/nginx/sbin/nginx -s reload
去重启 Nginx 。
好啦,到这里我们就介绍完了 Nginx 的安装和简单测试了,后续我们将继续学习 Nginx 的其他知识。