如何查看linux版本、内核版本、系统位数(32位OR64位)

一、查看内核

1、cat /proc/version
[root@localhost ~]# cat /proc/version
Linux version 2.6.18-308.el5 (mockbuild@x86-010.build.bos.redhat.com) (gcc version 4.1.2 20080704 (Red Hat 4.1.2-50)) #1 SMP Fri Jan 27 17:21:15 EST 2012
2、uname -a
[root@localhost ~]# uname -a
Linux localhost.localdomain 2.6.18-308.el5 #1 SMP Fri Jan 27 17:21:15 EST 2012 i686 i686 i386 GNU/Linux
3、uname -r
[root@localhost ~]# uname -r
2.6.18-308.el5
二、查看linux版本
1、lsb_release -a
[root@localhost ~]# lsb_release -a
LSB Version:    :core-4.0-ia32:core-4.0-noarch:graphics-4.0-ia32:graphics-4.0-noarch:printing-4.0-ia32:printing-4.0-noarch
Distributor ID: RedHatEnterpriseServer
Description:    Red Hat Enterprise Linux Server release 5.8 (Tikanga)
Release:        5.8
Codename:       Tikanga
2、cat /etc/issue
[root@localhost ~]# cat /etc/issue
Red Hat Enterprise Linux Server release 5.8 (Tikanga)
Kernel \r on an \m
3、cat /etc/redhat-release
[root@localhost ~]# cat /etc/redhat-release
Red Hat Enterprise Linux Server release 5.8 (Tikanga)
三、查看系统位数
1、file /bin/ls
 
2、lsb_release -a

阅读剩余部分 -

nginx添加模块(非覆盖安装)


nginx添加模块(非覆盖安装)



原已经安装好的nginx,现在需要添加一个未被编译安装的模块:

查看原来编译时都带了哪些参数
# /usr/local/nginx/sbin/nginx -V

nginx version: nginx/1.8.1
built by gcc 4.4.7 20120313 (Red Hat 4.4.7-16) (GCC) 
configure arguments: --prefix=/usr/local/nginx --with-http_realip_module --with-http_sub_module --with-http_gzip_static_module --with-http_stub_status_module --with-pcre




进入nginx源码目录
#cd nginx-1.3.2

添加的参数 (添加之前已经过的编译模块,不然最后只有新编译模块)
#./configure --prefix=/usr/local/nginx --with-http_realip_module --with-http_sub_module --with-http_gzip_static_module --with-http_stub_status_module --with-pcre --with-http_ssl_module

阅读剩余部分 -

NGINX 加载动态模块(NGINX 1.9.11开始增加加载动态模块支持)

NGINX 1.9.11开始增加加载动态模块支持,从此不再需要替换nginx文件即可增加第三方扩展。目前官方只有几个模块支持动态加载,第三方模块需要升级支持才可编译成模块。

 
tinywan@tinywan:~/nginx-1.12.0$ ./configure --help | grep dynamic
  --with-http_xslt_module=dynamic    enable dynamic ngx_http_xslt_module
  --with-http_image_filter_module=dynamic
                                     enable dynamic ngx_http_image_filter_module
  --with-http_geoip_module=dynamic   enable dynamic ngx_http_geoip_module
  --with-http_perl_module=dynamic    enable dynamic ngx_http_perl_module
  --with-mail=dynamic                enable dynamic POP3/IMAP4/SMTP proxy module
  --with-stream=dynamic              enable dynamic TCP/UDP proxy module
  --with-stream_geoip_module=dynamic enable dynamic ngx_stream_geoip_module
  --add-dynamic-module=PATH          enable dynamic external module
  --with-compat                      dynamic modules compatibility

如上可看出官方支持9个动态模块编译,需要增加第三方模块,使用参数--add-dynamic-module=即可。

NGINX动态模块语法:

load_module

Default: —

配置段: main

说明:版本必须>=1.9.11

实例:load_module modules/ngx_mail_module.so;

阅读剩余部分 -

Nginx总算支持动态模块了

编者按:

Nginx作者Igor一直是很固执的不用动态模块,没想到最终还是妥协了,不过现在Nginx已经是公司了,可能考虑的比较全面、比较商业,Tengine我记得很早就支持了,还是易用性比较重要一些。

 

 

最近发布的Nginx 1.9.11版本带来一个重要的新功能:动态模块,给我们以后如何使用Nginx带来了巨大的影响。通过动态模块,你可以在运行时有有选择性的加载第三方或Nginx官方模块。新的实现方式通过API模块保持尽可能的向后兼容。

 

下一个版本的Nginx Plus(Nginx Plus R9)将基于动态模块新特性进行构建。我们计划创建一个模块仓库,收集那些已经在Nginx Plus上通过测试和认证的第三方模块,使添加常用的扩展更加方便更加放心。如果你希望将你的开源模块或者商业模块在我们的模块仓库中,请通过链接与我们的销售联系。

 

在此之前,如果要给Nginx增加一个模块,需要将模块与源代码一起编译进Nginx二进制文件,而且不管你是否愿意,每次打开Nginx都会加载此模块。如此以来就很难在操作系统发行版的包中为每个用户创建自定义的Nginx二进制文件。

 

传统方式

blob.png

 

阅读剩余部分 -

NGINX增加加载动态模块 1.9.11

NGINX 1.9.11开始增加加载动态模块支持,从此不再需要替换nginx文件即可增加第三方扩展。目前官方只有几个模块支持动态加载,第三方模块需要升级支持才可编译成模块。

 
1
2
3
4
5
6
7
8
# ./configure --help | grep dynamic
  --with-http_xslt_module=dynamic    enable dynamic ngx_http_xslt_module
  --with-http_image_filter_module=dynamic
                                     enable dynamic ngx_http_image_filter_module
  --with-http_geoip_module=dynamic   enable dynamic ngx_http_geoip_module
  --with-mail=dynamic                enable dynamic POP3/IMAP4/SMTP proxy module
  --with-stream=dynamic              enable dynamic TCP proxy module
  --add-dynamic-module=PATH          enable dynamic external module

如上可看出官方支持5个动态模块编译,需要增加第三方模块,使用参数--add-dynamic-module=即可。

NGINX动态模块语法

load_module

Default: —

配置段: main

说明:版本必须>=1.9.11

阅读剩余部分 -

openresty replace_fiter 模块

git clone https://github.com/openresty/sregex

cd sregex

make && make install

cd ../

 

git clone https://github.com/openresty/replace-filter-nginx-module

git clone https://github.com/alibaba/nginx-http-concat

 

wget    http://openresty.org/download/ngx_openresty-1.7.4.1.tar.gz

tar zvxf ngx_openresty-1.7.4.1.tar.gz

cd ngx_openresty-1.7.4.1

 

./configure --prefix=/usr/local/webserver  --with-luajit --with-http_drizzle_module --with-http_iconv_module  --add-module=../replace-filter-nginx-module --add-module=../nginx-http-concat 

 

make && make install

阅读剩余部分 -

openresty添加新模块

0x00.需求

  1. openresty已经默认编译安装,正常运行中,现需额外添加模块:–with-http_v2_module                  –with-http_sub_module    –with-http_stub_status_module     –with-luajit
  2. OS:centos;
  3. 为verynginx(应用防护)上openresty做准备;

0x01.准备

  • 需添加的模块属于openresty已有模块,只需编译时添加即可:

如果其他情况添加是第三方模块,则需下载相应的模块,并在./configure  添加

 

–add-module=/data/software/ngx_http_google_filter_module

 

  • 查看已编译参数:

保留openresty之前./configure编译安装时的参数,然后再后面补加相应模块;

 

#/usr/local/openresty/nginx/sbin/nginx   -V

 

  • 下载原openresty文件,便于下一步重新编译用;

 

阅读剩余部分 -

为openresty添加模块及开启nginx的https和http2

HTTP/2 源自 SPDY/2

SPDY 系列协议由谷歌开发,于 2009 年公开。它的设计目标是降低 50% 的页面加载时间。当下很多著名的互联网公司,例如百度、淘宝、UPYUN 都在自己的网站或 APP 中采用了 SPDY 系列协议(当前最新版本是 SPDY/3.1),因为它对性能的提升是显而易见的。主流的浏览器(谷歌、火狐、Opera)也都早已经支持 SPDY,它已经成为了工业标准,HTTP Working-Group 最终决定以 SPDY/2 为基础,开发 HTTP/2。

但是,HTTP/2 跟 SPDY 仍有不同的地方,主要是以下两点:

  1. HTTP/2 支持明文 HTTP 传输,而 SPDY 强制使用 HTTPS
  2. HTTP/2 消息头的压缩算法采用 HPACK,而非 SPDY 采用的 DEFLATE

HTTP/2 的优势

相比 HTTP/1.x,HTTP/2 在底层传输做了很大的改动和优化:

  1. HTTP/2 采用二进制格式传输数据,而非 HTTP/1.x 的文本格式。二进制格式在协议的解析和优化扩展上带来更多的优势和可能。
  2. HTTP/2 对消息头采用 HPACK 进行压缩传输,能够节省消息头占用的网络的流量。而 HTTP/1.x
  3. 每次请求,都会携带大量冗余头信息,浪费了很多带宽资源。头压缩能够很好的解决该问题。 多路复用,直白的说就是所有的请求都是通过一个 TCP 连接并发完成。HTTP/1.x 虽然通过 pipeline 也能并发请求,但是多个请求之间的响应会被阻塞的,所以 pipeline 至今也没有被普及应用,而 HTTP/2 做到了真正的并发请求。同时,流还支持优先级和流量控制。
  4. Server Push:服务端能够更快的把资源推送给客户端。例如服务端可以主动把 JS 和 CSS 文件推送给客户端,而不需要客户端解析 HTML 再发送这些请求。当客户端需要的时候,它已经在客户端了。 HTTP/2 主要是 HTTP/1.x 在底层传输机制上的完全重构,HTTP/2 是基本兼容 HTTP/1.x 的语义的(详细兼容性说明请戳这里)。Content-Type 仍然是 Content-Type,只不过它不再是文本传输了。

安装openresty前文已经有介绍,本文是基于前文的openresty安装的。查看nginx编译安装时的命令,安装了哪些模块,

阅读剩余部分 -