二进制安装Nginx

准备工作:

1、LINUX操作系统
首先内核为Linux2.6 及以上版本的操作系统,因为Linux2.6 及以上版本才支持epoll,使用select或者poll来解决事件的多路复用,是无法解决高并发压力问题。

uname -a

在这里插入图片描述

2、安装nginx的必备软件
1)、GCC编译器
#GCC可用来编译C语言程序。Nginx不会直接提供二进制可执行程序

yum install   -y  gcc

#使用C++来编写Nginx HTTP模块,需要用到G++编译器

yum install   -y  gcc-c++

2)、PCRE库
该库支持正则表达式。如果我们ngnix.conf里面使用正则表达式编译安装时候必须把PCRE库编译进Nginx

yum install   -y  pcre pcre-devel

3)、zlib库
zlib库用于对HTTP包内容做gzip格式的压缩,如果我们ngnix.conf里面配置了 gzip on。并且对于某些类型(content-type)的HTTP响应使用gzip进行压缩减少网络传输量。

yum install   -y  zlib zlib-devel

4)、OpenSSL开发库
如果我们的服务器不只是要支持HTTP,还需要再更安全的SSL协议上传输HTTP,那就需要OpenSSL。传输为HTTPS

yum install   -y  openssl openssl-devel

3、Nginx内核参数优化
只是简单的对TCP网络参数做简单的说明:

  • fs.file-max = 999999
    表示进程(比如一个worker进程)同时可以打开的最大句柄数,这个参数直接限制最大并发连接数。默认查看(/proc/sys/fs/file-max)

  • net.ipv4.tcp_tw_reuse = 1
    参数设置为 1 ,表示允许将TIME_WAIT状态的socket重新用于新的TCP链接,这对于服务器来说意义重大,因为总有大量TIME_WAIT状态的链接连接状态,默认值2(/proc/sys/net/ipv4/tcp_tw_reuse)

  • net.ipv4.tcp_keepalive_time = 600
    当keepalive启动时,TCP发送keepalive消息的频度,将其设置为10分钟,可以更快的清理无效的连接。默认是2小时(/proc/sys/net/ipv4/tcp_keepalive_time)

  • net.ipv4.tcp_fin_timeout = 30
    这个参数表示当服务器主动关闭连接时,socket保持在FIN_WAIT_2状态的较大时间。默认值60(/proc/sys/net/ipv4/tcp_fin_timeout)

  • net.ipv4.tcp_max_tw_buckets = 5000
    表示操作系统允许TIME_WAIT套接字数量的较大值,如超过此值,TIME_WAIT套接字将立刻被清除并打印警告信息,过多的TIME_WAIT套接字会使Web服务器变慢,默认值/proc/sys/net/ipv4/tcp_max_tw_buckets

  • net.ipv4.ip_local_port_range = 1024 65000
    定义UDP和TCP链接的本地端口的取值范围,默认值/proc/sys/net/ipv4/ip_local_port_range

  • net.ipv4.tcp_rmem = 10240 87380 12582912
    定义了TCP接受缓存的最小值、默认值、较大值

  • net.ipv4.tcp_wmem = 10240 87380 12582912
    定义TCP发送缓存的最小值、默认值、较大值

  • net.core.netdev_max_backlog = 8096
    当网卡接收数据包的速度大于内核处理速度时,会有一个列队保存这些数据包。这个参数表示该列队的较大值,默认值/proc/sys/net/core/netdev_max_backlog

  • net.ipv4.tcp_syncookies = 1
    与性能无关。用于解决TCP的SYN攻击

  • net.ipv4.tcp_max_syn_backlog = 1024
    这个参数表示TCP三次握手建立阶段接受SYN请求列队的较大长度,默认1024,将其设置的大一些可使出现Nginx繁忙来不及accept新连接时,Linux不至于丢失客户端发起的连接请求,默认值/proc/sys/net/ipv4/tcp_max_syn_backlog

  • net.ipv4.tcp_tw_recycle = 1
    这个参数用于设置启用timewait快速回收

fs.filemax=999999

net.ipv4.tcp_tw_reuse=1

net.ipv4.tcp_keepalive_time=600

net.ipv4.tcp_fin_timeout=30

net.ipv4.tcp_max_tw_buckets=5000

net.ipv4.ip_local_port_range=1024 65000

net.ipv4.tcp_rmem=10240 87380 12582912

net.ipv4.tcp_wmem=10240 87380 12582912

net.core.netdev_max_backlog=8096

net.ipv4.tcp_syncookies=1

net.ipv4.tcp_max_syn_backlog=1024

net.ipv4.tcp_tw_recycle=1

4、获取Nginx源码
http://nginx.org/en/download.html在这里插入图片描述
在这里插入图片描述
下载

wget  http://nginx.org/download/nginx-1.16.1.tar.gz

解压

tar -zxf nginx-1.16.1.tar.gz

5、编译安装
1)、进入解压目录

cd nginx-1.16.1

2)、简单安装(编译不加载模块)

./configure
make  && make install

如下图编译安装nginx完成:
在这里插入图片描述

3)configure详解

./configure   --help

在这里插入图片描述
PATH=默认目录路径

6、编译加载模块
1)、重新编译代码和模块

./configure --prefix=/usr/local/nginx --user=nginx --group=nginx --with-http_stub_status_module --with-http_ssl_module

2)、 重新make(千万不要make install覆盖)

make

在这里插入图片描述
make完之后在objs目录下就多了个nginx,这个就是新版本的程序了

3)、备份旧的nginx程序

 cp /usr/local/nginx/sbin/nginx   /usr/local/nginx/sbin/nginx.bak

4)、把新的nginx程序覆盖旧的

\cp objs/nginx /usr/local/nginx/sbin/nginx

5)、测试新的nginx程序是否正确

/usr/local/nginx/sbin/nginx -t

6)、平滑重启nginx

/usr/local/nginx/sbin/nginx -s reload

7)、查看ngixn版本极其编译参数

/usr/local/nginx/sbin/nginx -V

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值