nginx升级版本(nginx版本如何选择)

本文目录
- nginx版本如何选择
- 关于如何升级nginx 到新最新版本1.7.9
- 运行良好的nginx有必要升级吗
- Nginx 漏洞
- Nginx Unique Tracing ID
- lnmp集成环境用nginx的ssl协议来代理workman的websocket服务
- wdcp如何升级最新版nginx
nginx版本如何选择
Nginx的版本有:
Mainline version:Mainline 是 Nginx 目前主力在做的版本,可以说是开发版。
Stable version:最新稳定版,生产环境上建议使用的版本。
Legacy versions:遗留的老版本的稳定版。
一般就选最新版本,Stable version:最新稳定版。
Nginx的HTTP基础功能:
处理静态文件, 索引文件以及自动索引。
反向代理加速(无缓存),简单的负载均衡和容错。
FastCGI,简单的负载均衡和容错。
模块化的结构。过滤器包括gzipping,byte ranges,chunked responses,以及 SSI-filter。在SSI过滤器中,到同一个 proxy 或者 FastCGI 的多个子请求并发处理。
SSL和TLS SNI 支持。
IMAP/POP3代理服务功能。使用外部 HTTP 认证服务器重定向用户到 IMAP/POP3 后端。
使用外部 HTTP 认证服务器认证用户后连接重定向到内部的 SMTP 后端。
关于如何升级nginx 到新最新版本1.7.9
如何升级Nginx到最新稳定版
我的环境:
Ubuntu 12.04 LTS
Nginx 1.1.9
Nginx是通过apt-get的方式安装的,所以我的路径与下载代码再编译、安装的有些不一样,我的升级过程如下
1.进入Downloads文件夹
cd /Downloads
2.下载nginx-1.2.5.tar.gz文件到Downloads文件夹中
***隐藏网址***
3.解压nginx-1.2.5.tar.gz文件
tar zxvf nginx-1.2.5.tar.gz
4.进入ngixn-1.2.5文件夹中
cd nginx-1.2.5
5.查看nginx原来的配置
nginx -V
上面的命令将输出:
***隐藏网址***
6.执行configure命令,后面跟上原来nginx的配置
***隐藏网址***
在执行configure时得到几个错误:
***隐藏网址***
sudo apt-get install libxml2 libxml2-dev libxslt-dev
***隐藏网址***
sudo apt-get install libgd2-xpm libgd2-xpm-dev
***隐藏网址***
sudo apt-get install geoip-database libgeoip-dev
d.rewrite需要pcre支持, 错误提示:./configure: error: the HTTP rewrite module requires the PCRE library.
apt-get install libpcre3 libpcre3-dev
7.再执行第6步的configure命令
8.这次没有提示缺少library, 执行make令命编译nginx, 编译好以后objs目录下多出一个nginx文件,这个就是已好的nginx程序
make
9.更改旧的nginx程序的名子,并复制新的程序过去,我的旧nginx程序放在/usr/sbin/目录中
mv /usr/sbin/nginx /usr/sbin/nginx-20121122
cp objs/nginx /usr/sbin/nginx
/usr/sbin/nginx -t
执行/usr/sbin/nginx -t 命令检查配置文件并将返回下面的信息:
nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
nginx: configuration file /etc/nginx/nginx.conf test is successful
10.在nginx-1.2.5目录下执行下面的命令来升级nginx
make upgrade
11.执行make upgrade得到一个错误:
make: /etc/nginx/sbin/nginx: Command not found
make: *** Error 127
12.用文本器打开修改nginx-1.2.5目录下名为Makefile的文件,将upgrade节点中的/etc/nginx/sbin/nginx改为/usr/sbin/nginx -t,保存后关闭并重新执行make upgrade命令
13.执行nginx -v命令,程序的版本号已经是1.2.5,升级完毕.
运行良好的nginx有必要升级吗
如果没有重要安全性问题,及重大bug,一般情况下,不建议频繁升级服务器软件版本
如果新版本的新增特性有助于网站的性能方面的优化,可以升级
Nginx 漏洞
近日 nginx 被爆出存在安全问题,有可能会致使 1400 多万台服务器易遭受 DoS 攻击。而导致安全问题的漏洞存在于 HTTP/2 和 MP4 模块中。
nginx Web 服务器于 11 月 6 日 发布了新版本 ,用于修复影响 1.15.6, 1.14.1 之前版本的多个安全问题,被发现的安全问题有一种这样的情况 —— 允许潜在的攻击者触发拒绝服务 (DoS) 状态并访问敏感的信息。
升级修复方法:
1、创建nginx的yum源文件(/etc/yum.repos.d/nginx.repo),内容如下(根据系统版本修改对应的版本号,我这里是centos7):
2、执行更新操作
3、验证更新
显示为:
Nginx Unique Tracing ID
我们想要从Nginx接受请求开始,生成一个Unique Tracing ID,不仅记录在Nginx的日志中,也要贯穿到整个后台的服务,从而利用这个ID方便问题的排查。
利用Nginx丰富的内置变量,拼接出一个“unique enough id”。这里使用了五个变量:
1.在nginx.conf的location模块里:
***隐藏网址***
3.在后台服务中可以通过下面的方式获取$req_id
4.重启Nginx
格式混乱,信息冗余,生成的效果如下:
使用Nginx内置的变量 $request_id
这是最直接的办法,使用Nginx自带的一个$request_id,一个16位比特的随机数,用32位的16进制数表示。
这Nginx 1.11.0 版本新增加的feature,使用Nginx旧版本,或者依赖某些二次开发的Nginx版本,例如 Tengine 继承的是Nginx 1.8.1 版本,都面临着升级Nginx的问题。
使用 Lua 生成一个uuid.
利用Lua轻量小巧的特性,嵌入到Nginx的配置文件当中,然后生成一个uuid.
***隐藏网址***
2.在server模块里加入:
3.在location模块里加入:
4.uuid4.lua
引用自 第三方库
Lua的这个模块太长,担心性能问题,需要进行性能评估。
还是利用Lua脚本,使用时间戳加随机数的方式
关键步骤:
os.time()的精确度在1秒,os.clock()的精确度在0.01秒,这样处理之后,总的精度在10毫秒,没有达到要求。
Lua有一个 Luasocket 模块,可以达到毫秒级别的精度,但是需要安装。
结合Nginx的 $msec 变量和 Lua 的随机数
关键配置
最终确定方案五,简单,方便,影响最小。
在方案选择、测试过程中,还遇到了环境搭建相关的问题,将记录在下篇文章中,敬请期待!
***隐藏网址***
***隐藏网址***
***隐藏网址***
***隐藏网址***
***隐藏网址***
lnmp集成环境用nginx的ssl协议来代理workman的websocket服务
根据下图的nginx升级说明,nginx从1.3.13版本之后才开始支持websocket代理的功能。
因此,要在lnmp集成环境中使用nginx的websocket代理服务,首先必须确认你的nginx版本要高于1.3.13版本。
对于配置就很简单了,具体的配置如下所示:
***隐藏网址***
upstream wsbackend {
server 127.0.0.1:3000; # websocket服务器后端地址
}
server {
listen 8080;
location / {
# 如下是对websocket代理的配置代码.
***隐藏网址***
***隐藏网址***
***隐藏网址***
proxy_set_header Connection "Upgrade";
}
}
如上的配置会将8080端口收到的搜友的websocket请求代理到wsbackend中的机器中。
wdcp如何升级最新版nginx
登录SSH(使用PuTTY远程登录Linux服务器)执行命令升级PHP版本:
wget IP
sh php_up53.sh
升级程点漫约十钟吧现php update is OK表明升级功
接执行命令升级eAccelerator:
wget IP
sh eac0961_ins.sh
我执行命令安装Zend Guard Loader:
wget IP
sh ZendGL_ins.sh
执行命令重启服务器:
shutdown -r now

更多文章:
sqlite格式的视频怎么打开(.sqlite是什么文件,用什么工具打开)
2026年11月7日 05:30
element ui面试题(用element-ui ELDialog和ELTable遇见的坑)
2026年11月7日 04:40
中文自动翻译成英语的输入法(有没有一种输入法能将打出来的中文自动变成英文)
2026年11月7日 02:10
equals to(为什么有些英文句子要用的是“equals to that of” 这个that和of之间还可以加名词吗)
2026年11月7日 01:50
default values(电脑开机后出现all settings was reset to default values.)
2026年11月7日 01:20
structured reviewing翻译(软件测试的英文翻译)
2026年11月7日 00:50






