目录
- Nginx的功能介绍
- Nginx的安装
- Nginx常用操作
Nginx的功能介绍
Nginx是一个轻量级、高性能、稳定性高、并发性好的HTTP和反向代理服务器。也是由于其的特性,其应用非常广。
反向代理
在说反向代理之前说一下正向代理:某些情况下,代理服务器代理我们用户去访问服务器,需要用户手动的设置代理服务器的ip和端口号。正向代理的最大特点是代理服务器在客户端
反向代理是用来代理服务器的,代理服务器代理我们要访问的目标服务器。代理服务器接受请求,然后将请求转发给内部网络的服务器(集群化),并将从服务器上得到的结果返回给客户端,此时代理服务器对外就表现为一个服务器。反向代理的最大特点是代理服务器在服务器端
负载均衡
负载均衡是在高并发情况下需要使用。其原理就是将数据流量分摊到多个服务器执行,减轻每台服务器的压力,多台服务器(集群)共同完成工作任务,从而提高了数据的吞吐量。
Nginx可使用的负载均衡策略有:轮询(默认)、权重、ip_hash、url_hash(第三方)、fair(第三方)
Ip hash算法,对客户端请求的ip进行hash操作,然后根据hash结果将同一个客户端ip的请求分发给同一台服务器进行处理,可以解决session不共享的问题。
动静分离
Nginx提供的动静分离是指把动态请求和静态请求分离开,合适的服务器处理相应的请求,使整个服务器系统的性能、效率更高。
Nginx可以根据配置对不同的请求做不同转发,这是动态分离的基础。静态请求对应的静态资源可以直接放在Nginx上做缓冲,更好的做法是放在相应的缓冲服务器上。动态请求由相应的后端服务器处理。
常见的静态文件有js、css、html,常见的动态文件有jsp、servlet
Nginx的安装
安装所需环境
一. gcc 安装
安装 nginx 需要先将官网下载的源码进行编译,编译依赖 gcc 环境,如果没有 gcc 环境,则需要安装:
yum install gcc-c++ |
二. PCRE pcre-devel 安装
PCRE(Perl Compatible Regular Expressions) 是一个Perl库,包括 perl 兼容的正则表达式库。nginx 的 http 模块使用 pcre 来解析正则表达式,所以需要在 linux 上安装 pcre 库,pcre-devel 是使用 pcre 开发的一个二次开发库。nginx也需要此库。命令:
yum install -y pcre pcre-devel |
三. zlib 安装
zlib 库提供了很多种压缩和解压缩的方式, nginx 使用 zlib 对 http 包的内容进行 gzip ,所以需要在 Centos 上安装 zlib 库。
yum install -y zlib zlib-devel |
四. OpenSSL 安装
OpenSSL 是一个强大的安全套接字层密码库,囊括主要的密码算法、常用的密钥和证书封装管理功能及 SSL 协议,并提供丰富的应用程序供测试或其它目的使用。
nginx 不仅支持 http 协议,还支持 https(即在ssl协议上传输http),所以需要在 Centos 安装 OpenSSL 库。
yum install -y openssl openssl-devel |
五. 综合操作下载命令
yum install gcc-c++ pcre pcre-devel zlib zlib-devel openssl openssl-devel -y |
下载安装Nginx
官网下载
.tar.gz
安装包,地址:https://nginx.org/en/download.html使用
wget
命令下载(推荐)。确保系统已经安装了wget,如果没有安装,执行 yum install wget 安装。wget -c https://nginx.org/download/nginx-1.12.0.tar.gz
解压依然是直接命令:
tar -zxvf nginx-1.12.0.tar.gz -C ../app
cd nginx-1.12.0默认配置(默认是安装在/usr/local/nginx,不推介指定安装目录)
./configure
编译安装(root用户)
make && make install
查找安装路径
whereis nginx
结果:/usr/local/nginx
Nginx常用操作
启动、停止nginx
cd /usr/local/nginx/sbin/
./nginx #启动
./nginx -s stop #停止
./nginx -s quit #退出
./nginx -s reload #重新加载配置文件启动时报80端口被占用:nginx: [emerg] bind() to 0.0.0.0:80 failed (98: Address already in use)
解决办法:安装net-tool 包:
yum install net-tools
命令详解:
./nginx -s quit
:此方式停止步骤是待nginx进程处理任务完毕进行停止。./nginx -s stop
:此方式相当于先查出nginx进程id再使用kill命令强制杀掉进程。重启Nginx
对 nginx 进行重启相当于先停止再启动,即先执行停止命令再执行启动命令。如下:
./nginx -s quit
./nginx重新加载配置文件
当 ngin x的配置文件 nginx.conf 修改后,要想让配置生效需要重启 nginx,使用
-s reload
不用先停止 ngin x再启动 nginx 即可将配置信息在 nginx 中生效,如下:./nginx -s reload
启动成功后,可打开浏览器访问,默认端口80
配置开机自启
即在
rc.local
增加启动代码就可以了。vi /etc/rc.local
/usr/local/nginx/sbin/nginx
设置执行权限:
chmod 755 rc.local