Nginx安装
一、 版本选择
官网网址http://nginx.org/en/download.html
选择稳定版本
二、 准备环境
yum 安装gcc、zlib、zlib-devel、pcre 、pcre-devel、openssl、openssl-devel
三、 安装
- 解压安装包
tar -zxvf nginx-1.20.2.tar.gz -C /app/install/ - 编译安装
cd /app/install/nginx-1.20.2
./configure --prefix=/app/nginx --error-log-path=/app/nginx/log/error.log --http-log-path=/app/nginx/log/access.log --pid-path=/app/nginx/log/nginx.pid --with-http_ssl_module
make
make install
./configure:用来检测安装平台的目标特征,这一步一般用来生成Makefile
–prefix:文件所安装的位置
–error-log-path:保存错误日志文件的位置
–http-log-path:设置access log文件路径
–pid-path:nginx master进程pid写入的文件位置
–add-module:安装第三方模块
–with-http_ssl_module:使用https协议模块。默认情况下,该模块没有被构建。前提是openssl与openssl-devel已安装
四、 配置文件介绍
-
结构
-
全局块:配置影响nginx全局的指令。一般有运行nginx服务器的用户组,nginx进程pid存放路径,日志存放路径,配置文件引入,允许生成worker process数等。
-
events块:配置影响nginx服务器或与用户的网络连接。有每个进程的最大连接数,选取哪种事件驱动模型处理连接请求,是否允许同时接受多个网路连接,开启多个网络连接序列化等。
-
http块:可以嵌套多个server,配置代理,缓存,日志定义等绝大多数功能和第三方模块的配置。如文件引入,mime-type定义,日志自定义,是否使用sendfile传输文件,连接超时时间,单连接请求数等。
-
server块:配置虚拟主机的相关参数,一个http中可以有多个server。
-
location块:配置请求的路由,以及各种页面的处理情况。
五、 代理配置 -
反向代理
编辑配置文件
server {
listen 8080;
server_name localhost;
location / {
proxy_pass http://110.42.183.187:8001;
}
} -
集群配置
http {
upstream myServer {
server 192.168.1.33:8080 down;
server 192.168.1.33:8081 max_fails=2 fail_timeout=30s weight=2;
server 192.168.1.33:8082 backup;
}
server{
listen 8080;
location / {
proxy_pass http://myServer;
}
}
} -
Nginx集群算法
(1)轮询(默认)
每个请求按时间顺序逐一分配到不同的后端服务器,如果后端服务器down掉,能自动剔除。
(2)weight
指定轮询几率,weight和访问比率成正比,用于后端服务器性能不均的情况。
(3)ip_hash
每个请求按访问ip的hash结果分配,这样每个访客固定访问一个后端服务,好处是可以解决session的问题。
因此前两种只能处理静态页面,而这种方式可以处理动态网站。
(4)fair(第三方)
按后端服务器的响应时间来分配请求,响应时间短的优先分配。
(5)url_hash(第三方)
按访问url的hash结果来分配请求,使每个url定向到同一个后端服务 ,后端服务器为缓存时比较有效。 -
状态设置参数
(1)down
表示当前的server暂时不参与负载;
(2)weight
默认为1,weight越大,负载的权重就越大;
(3)max_fails
允许请求失败的次数默认为1,当超过最大次数时,返回proxy_next_upstream模块定义的错误;
(4)fail_timeout
失败超时时间,在连接Server时,如果在超时时间之内超过max_fails指定的失败次数,会认为在fail_timeout时间内Server不可用,默认为10s
(5)backup
其他所有的非backup机器down或者忙的时候,请求backup机器。所以这台机器压力会最轻。
六、 Nginx命令解释 -
/app/nginx/sbin/nginx 启动脚本参数
-?:查看帮助
-v:显示版本并退出
-V:显示版本和配置选项,然后退出
-t:测试配置并退出
-s:发送信号给主进程: stop(停止), quit(退出), reopen(重新打开日志文件), reload(重新加载配置文件)
-p prefix :设置前缀路径(默认:/usr/local/nginx/)
-c 文件名:设置配置文件(默认:conf/nginx.conf)
-g 指令:从配置文件中设置全局指令 -
启动nginx扶服务直接执行/app/nginx/sbin/nginx