1.Nginx介绍
Nginx是一款高性能的http 服务器/反向代理服务器及电子邮件(IMAP/POP3)代理服务器。由俄罗斯的程序设计师Igor Sysoev所开发,官方测试nginx能够支支撑5万并发链接,并且cpu、内存等资源消耗却非常低,运行非常稳定。
2.Nginx的4个功能
1.反向代理
2.动静分离
3.负载均衡
4.利用keepalived 实现集群
3. 应用场景
1、http服务器。Nginx是一个http服务可以独立提供http服务。可以做网页静态服务器。
2、虚拟主机。可以实现在一台服务器虚拟出多个网站。例如个人网站使用的虚拟主机。
3、反向代理,负载均衡。当网站的访问量达到一定程度后,单台服务器不能满足用户的请求时,需要用多台服务器集群可以使用nginx做反向代理。并且多台服务器可以平均分担负载,不会因为某台服务器负载高宕机而某台服务器闲置的情况。
2.Nginx下载
1.下载
官方网址:http://nginx.org/en/download.html Nginx官网提供了三个类型的版本
Mainline version:Mainline 是 Nginx 目前主力在做的版本,可以说是开发版
Stable version:最新稳定版,生产环境上建议使用的版本
Legacy versions:遗留的老版本的稳定版
我下载的就是Stable version的 nginx-1.24.0
2.安装要求的环境
下面的环境需要视自己的系统情况而定,没有的环境安装以下就好。
1.需要安装gcc环境
yum install gcc-c++
我在安装的时候报错(倒数第二行显示):failure: repodata/repomd.xml from base: [Errno 256] No more mirrors to try.
报错可以看看这个:
CentOS7使用yum安装时报错:failure: repodata/repomd.xml from base: [Errno 256] No more mirrors to try.
2.第三方的开发包
1 PERE
PCRE(Perl Compatible Regular Expressions)是一个Perl库,包括 perl 兼容的正则表达式库。
nginx的http模块使用pcre来解析正则表达式,所以需要在linux上安装pcre库。
注:pcre-devel是使用pcre开发的一个二次开发库。nginx也需要此库。
yum install -y pcre pcre-devel
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 -y install pcre pcre-devel zlib zlib-devel openssl openssl-devel
注意:总的命令一条搞定
yum -y install gcc-c++ pcre pcre-devel zlib zlib-devel openssl openssl-devel
查看安装的版本pcre
pcre-config --version
3.nginx安装过程
1.把nginx-1.18.0.tar.gz 上传到linux下的 /usr/src目录下(root用户)
2.解压到当前目录下
tar -zxvf nginx-1.24.0.tar.gz
3.使用cofigure命令创建一个makeFile文件
执行下面的命令的时候,一定要进入到nginx-1.24.0目录里面去。
创建出一个Makefile
4.当前目录下使用命令(必须确保有MakeFile)
make && make install
5.安装成功之后,在/usr/local下有个nginx文件夹,在nginx中的sbin目录下有启动脚本
6.启动nginx 在sbin目录下 ./nginx
查看是否启动成功:
ps -ef|grep nginx
用主机开浏览器访问虚拟机地址,nginx默认开放端口是80端口
7.额外补充 如果有防火墙
查看开放的端口号
firewall-cmd --list-all
设置开放的端口号
firewall-cmd --add-service=http-permanent
sudo firewall-cmd --add-port=80/tcp --permanent
重启防火墙
firewall-cmd -reload