淘淘商城——nginx基础学习

什么是nginx?

nginx是一款高性能的http服务器/反向代理服务器及电子邮件(IMAP/POP3)代理服务器。由俄罗斯的程序设计师Igor Sysoev所开发,官方测试nginx能够支撑5万并发链接,并且cpu、内存等资源消耗却非常低,运行非常稳定。

nginx的应用场景

nginx的应用场景主要有以下三处:

  1. http服务器。nginx是一个http服务器,可以独立提供http服务,所以可以做网页静态服务器。
  2. 虚拟主机。可以实现在一台服务器虚拟出多个网站。例如个人网站使用的虚拟主机。这里我举一个例子,前几年流行自己创建个人网站来娱乐,如果要是每个人都买一台服务器来维护网站的话,费用是比较高的,很划不来,为了降低费用便催生出了虚拟主机,就是在一台服务器上虚拟出多个”主机”出来,大家可以共用这一台服务器,费用当然就很低了,但是有个问题,我们知道nginx默认的端口是80,使用nginx访问静态网页的时候,是不用输入80端口就可以访问的,如果nginx的端口修改为别的端口号如81,那么访问的时候便需要输入端口号81才能访问。多个人共用一台服务器,访问地址不能以端口号作为区分网站的标志,因为谁也不想在输入访问地址的时候还带个端口号,大家掏的钱都是一样的,那么怎么让大家都使用80端口而且区分出不同的个人网站呢?这就用到了域名,不同的用户输入自己的域名就可以访问自己的网站。比如aaaa.com、bbbb.com两个域名,这两个域名对应着同一台服务器并且共用80端口。
  3. 反向代理,负载均衡。当网站的访问量达到一定程度后,单台服务器不能满足用户的请求时,需要用多台服务器集群,这时可以使用nginx做反向代理。并且多台服务器可以平均分担负载,不会因为某台服务器负载高宕机而某台服务器闲置的情况。关于这点我们后面再详细介绍。

nginx的安装

下载nginx的源码包

大家可以从nginx的官方网站http://nginx.org/下载nginx的源码包,下面就是我所下载的nginx的源码包:
这里写图片描述
可以看出这里我使用的版本是1.8.0这个版本。

要求的安装环境

由于我们在Linux系统上安装nginx,而我们拿到又是nginx的源码,所以还需要重新编译,这与redis是一个道理。下面我们使用yum install gcc-c++命令来安装gcc的环境,如下图所示。
这里写图片描述
这儿我使用的虚拟机是安装单机版Solr的时候就已经新建好了的那台虚拟机。
下面我们还需要安装第三方的开发包,如下:

  1. PCRE
    PCRE(Perl Compatible Regular Expressions)是一个Perl库,包括perl兼容的正则表达式库。nginx的http模块使用pcre来解析正则表达式,所以需要在linux上安装pcre库。安装命令为yum install -y pcre pcre-devel,如下图所示。
    这里写图片描述
    注:pcre-devel是使用pcre开发的一个二次开发库,nginx也需要此库。
  2. zlib
    zlib库提供了很多种压缩和解压缩的方式,nginx使用zlib对http包的内容进行gzip,所以需要在linux上安装zlib库。安装命令为yum install -y zlib zlib-devel,如下图所示。
    这里写图片描述
  3. openssl
    OpenSSL是一个强大的安全套接字层密码库,囊括主要的密码算法、常用的密钥和证书封装管理功能及SSL协议,并提供丰富的应用程序供测试或其它目的使用。
    nginx不仅支持http协议,还支持https(即在ssl协议上传输http),所以需要在linux安装openssl库。安装命令为yum install -y openssl openssl-devel,如下图所示。
    这里写图片描述

安装步骤

首先,将nginx的源码包上传到linux系统上,关于怎样将文件上传到linux系统上,我想我已经说的要吐了,所以这儿不再浪费口舌。与以往一样,我把nginx-1.8.0.tar.gz上传到了用户主目录(即root)下,如下图所示。
这里写图片描述
接着,我们使用tar zxf nginx-1.8.0.tar.gz命令将nginx的源码包解压缩到用户主目录(即root)下,解压完之后,可以看到解压后的nginx-1.8.0目录。
这里写图片描述
进入到解压好的nginx-1.8.0目录下,如下图所示。
这里写图片描述
紧接着,我们使用configure命令创建一个makeFile文件,具体命令如下:

./configure \
--prefix=/usr/local/nginx \
--pid-path=/var/run/nginx/nginx.pid \
--lock-path=/var/lock/nginx.lock \
--error-log-path=/var/log/nginx/error.log \
--http-log-path=/var/log/nginx/access.log \
--with-http_gzip_static_module \
--http-client-body-temp-path=/var/temp/nginx/client \
--http-proxy-temp-path=/var/temp/nginx/proxy \
--http-fastcgi-temp-path=/var/temp/nginx/fastcgi \
--http-uwsgi-temp-path=/var/temp/nginx/uwsgi \
--http-scgi-temp-path=/var/temp/nginx/scgi

这里写图片描述
执行完命令后可以看到nginx-1.8.0目录下多了一个Makefile文件,如下图所示。
这里写图片描述
注意:启动nginx之前,上边将临时文件目录指定为/var/temp/nginx,需要在/var下创建temp及nginx目录。如下图所示。
这里写图片描述
下面使用make命令进行编译nginx的源码,如下图所示。
这里写图片描述
接着使用make install命令进行安装,如下图所示。
这里写图片描述
安装完后,进入到/usr/local目录下,可以看到多了一个nginx的目录。
这里写图片描述
进入到nginx目录中,可以看到有三个目录,如下图所示。其中conf中存放的都是配置文件,html目录下放置的是欢迎页等相关文件,sbin目录下只有nginx文件,是用来启动nginx的。
这里写图片描述

启动nginx

安装完了nginx,我们来启动nginx,如下图所示。
这里写图片描述
启动完之后,可使用ps aux|grep nginx命令查看进程,如下图所示,看到master和worker这两个进程代表nginx启动成功了。
这里写图片描述
如果要停止nginx可以使用./nginx -s stop命令,停止后,再查看进程发现nginx进程已经没有了。
这里写图片描述
注:关闭nginx,推荐使用./nginx -s quit命令。
如果修改了配置文件,想要使用新的配置文件,那么就需要使用热启动,即动态地刷新配置文件,如下图所示。
这里写图片描述

访问nginx

安装完nginx后,在浏览器地址栏中输入nginx所在虚拟机的IP地址进行访问,如下图所示,发现可以正常访问nginx首页。这里之所以不用输入端口号是因为nginx默认使用的是80端口,80端口不用输入,如果使用别的端口号的话,访问nginx首页的时候就要输入端口号才能正常访问。
这里写图片描述
注意:是否关闭防火墙。

猜你喜欢

转载自blog.csdn.net/a_blackmoon/article/details/80520925