Nginx初体验

初识Nginx

Nginx(engine x)是一个高性能的HTTP和反向代理Web服务器,同时也提供了IMAP/POP3/SMTP服务。

博主以前在面试的时候,简历上写了熟悉Nginx。实际上,也就简单的安装了一下,然后启动了服务,访问了默认提供的index.html,然后就在简历上写了Nginx这几个字。这就像你告诉面试官,你会各种语言的“hello world”一样。面试的结果,可想而知,被技术官怼的哑口无言。
从那以后,我意识到,写简历要慎重。更加意识到,技术广度和深度的重要性。所以,决定从哪跌倒就从哪爬起来。开始上手Nginx。刚好我司最近的项目会用到它。决定一步一步把它征服。

优点和适用场景

在软件开发中要使用一种技术,一定是因为它的某种优点或者适应场景与你的项目所匹配。同样,Nginx也是如此,具有很多优点。
相信,在平时开发中,大家用的最多的服务器,就是那只“猫”了吧!没错,这里说的就是Apache。为什么这么多人用它呢?就是因为它有着“稳定、开源、跨平台”等优点。但是呢,这只猫咪也是有缺点的,而最致命的缺点就是:“不支持高并发”,当访问量过大的时候,服务器会消耗大量资源,导致响应速度急剧下降。那个时候,你肯定会有摔电脑的冲动。

在这时,Nginx就出现了,一款高性能的Web服务器。

一、Nginx的优点

  1. 高并发、高性能。
  2. 可扩展性好。
  3. 内存消耗少,节省带宽。(支持Gzip压缩)
  4. 具有高可靠性。
  5. 支持热部署(在不停止服务的情况下,进行版本升级)
  6. BSD许可证(也就是所谓的开源)

二、适用场景

  1. 静态资源服务
  2. 反向代理服务
  3. API服务(OpenResty:基于Nginx与Lua的高性能Web平台,支持Rest风格)

三、组成
说完了优点和适用场景,最后说说Nginx的组成。

  1. Nginx二进制可执行文件(由各个模块源码编译出的一个文件)
  2. Nginx.conf配置文件(控制Nginx的行为)
  3. access.log访问日志(记录每一条http请求信息)
  4. error.log错误日志(用来定位问题)

安装编译Nginx

上面对Nginx进行了简单的介绍。下面就是实战了。安装和编译Nginx。

一、安装编译工具
yum -y install make zlib zlib-devel gcc-c++ libtool openssl openssl-devel

zlib库:主要对http包的内容做gzip格式的压缩。
openssl:主要是为了服务器能够支持安全的SSL协议,支持https。
gcc-c++:因为Nginx是用C语言开发的,所以,安装这个,主要用来编译C和C++文件。
libtool:一个通用库支持脚本,将使用动态库的复杂性隐藏在统一、可移植的接口中。可以在不同平台上创建并调用动态库。

二、安装pcre库

pcre库支持正则表达式,Nginx的http模块需要它来解析正则表达式。另外它最重要的作用是让Nginx支持Rewrite功能。

下载pcre安装包:wget https://sourceforge.net/projects/pcre/files/pcre2/10.33/pcre2-10.33.tar.gz

下载完成,就是解压安装,然后编译了。

tar -zxvf pcre2-10.33.tar.gz -C /usr/local/software/pcre

解压到自己定义的文件夹下即可。然后进入此文件夹。

./configure
make && make install
pcre-config --version # 查看版本

基本上就安装完了。如果安装过程遇到问题,可以参考下面的文章。

https://blog.csdn.net/eddy23513/article/details/81366751

三、安装Nginx

绕了这么大一圈,终于到了正题。说一个题外话,我本人用的是阿里云的服务器,所以没有经过上面的几个步骤。刚在服务器上看了一下,果然已经有相应的库。以前使用本地的Linux安装Nginx时会安装上面所需要的库。
好了,回归正题。首先去官网下载Nginx安装包。

①、安装包下载及目录分析
Nginx官网:http://nginx.org/

右边有一个download,点击就可以看到下面的界面。

矩形框圈出来的就是Nginx的版本。

  1. Mainline version:最新的版本。
  2. Stable version:旧的版本。

这里随自己喜好下载即可。下载完成,传到Linux上,进行解压。推荐使用Linux系统。因为Linux的性能始终高于Windows系统。

cd Nginx的目录
tar -zxvf nginx-1.16.0.tar.gz -C /usr/local/software/nginx

解压完成,查看解压之后的Nginx目录。


1. auto:主要用于编译,判定支持的模块和操作系统。
2. CHANGE:Nginx提供了哪些特性(Feature表示更新的;Bugfix表示修复的BUG;Change表示哪些发生了变化)。
3. CHANGE.ru:表示其他语言的支持。
4. conf:一个实例文件夹。
5. configure:编译前,执行的必备动作。
6. contrib:提供了vim工具,将文件拷贝到自己的目录(然后文件就能高亮显示)。
7. html:提供了500的页面和index的页面。
8. man:Linux对Nginx提供的一个帮助文件。
9. src:Nginx的源代码。

上面提到了contrib这个文件夹,下面的文件可以让使用vim nginx.conf这个命令时,内容高亮显示。
具体方法就是:

mkdir ~/.vim
cp -r contrib/vim/* ~/.vim/

完成上面的命令,再次查看nginx.conf,就可以看到以前没有高亮显示的内容,会有高亮的效果了。

②、编译

接下来就到了关键的时候了,使用下面的命令编译解压后的Nginx。

./configure --prefix=/usr/local/package_config/nginx
# /usr/local/package_config/nginx  这个路径根据自己的情况自定义即可。

编译完之后,如果一切正常,就会看到下面的界面。

最后使用下面的命令完成操作。

make 
make install # 首次安装可以使用这个命令

所有的安装编译步骤都完了,就可以启动Nginx服务了。

③、启动Nginx

首先进入编译之后的Nginx目录,使用下面的命令:

cd Nginx目录
./sbin/nginx   # 启动Nginx

./sbin/nginx -s reload    # 重新载入配置文件
./sbin/nginx -s reopen    # 重启 Nginx
./sbin/nginx -s stop      # 停止 Nginx

ps -ef|grep nginx         # 查看Nginx进程状态

直接访问:虚拟机IP或者使用Linux命令curl ‘http://127.0.0.1’,即可看到如下界面,因为Nginx默认开启80端口。

编程的初衷是什么?

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值