Chinaunix首页 | 论坛 | 博客
  • 博客访问: 331857
  • 博文数量: 32
  • 博客积分: 10
  • 博客等级: 民兵
  • 技术积分: 380
  • 用 户 组: 普通用户
  • 注册时间: 2012-08-30 10:47
文章分类

全部博文(32)

文章存档

2016年(2)

2015年(16)

2014年(14)

分类: LINUX

2014-02-19 15:55:34

安装nginx

先安装gccopenssl-develprce-develzlibzlib-devel软件库;

1.安装nginx所需pcre-devel的库

安装pcre库是为了nginx支持http rewrite模块

#tar -zxvf  pcre-8.02.tar.gz

#cd pcre-8.02

#./configure  #make &&make install

2.开始安装nginx

使用什么模块就开启什么模块;--without-http_ssi_module关闭,如需要http_perl模块;--with-http_perl_module方式安装

# tar -zxvf nginx-0.7.69.tar.gz 

[root@localhost nginx-0.7.69]# ./configure --with-http_stub_status_module --prefix=/opt/nginx

[root@localhost nginx-0.7.69]# make &&make install

3.全局配置文件

user  nobody nobody;

worker_processes  4;

#error_log  logs/error.log ;

#error_log  logs/error.log  notice;

#error_log  logs/error.log  info;

#pid        logs/nginx.pid;

worker_rlimit_nofile 65535

google_perftools_profiles /tmp/tcmalloc;

events {

use epoll

    worker_connections  65536;

}

-------(还有一个模块没配置)

5.httpGzip模块配置

配置nginxhttpGzip这个模块支持在线实时压缩输出数据流。要查看是否安装了此模块,需要使用下面的命令:

[root@localhost nginx]# /opt/nginx/sbin/nginx -V

nginx version: nginx/0.7.69

configure arguments: --with-google_perftools_module --with-http_stub_status_module --prefix=/opt/nginx

下面是HttpGzip模块在Nginx配置中的相关属性设置:

gzip  on;  开启gzip模块

gzip_min_length  1k;  

gzip_buffers     4  16k;  

gzip_http_version  1.1;  

gzip_comp_level  2;  

gzip_types  text/plain application/x-javascript text/css application/xml;  

gzip_vary  on; 

----------(还有三个模块没配置)

7.URL匹配配置

URL地址匹配是Nginx配置中最灵活的部分。 location支持正则表达式匹配,也支持条件判断匹配,用户可以通过location指令实现Nginx对动、静态网页的过滤处理。以下这段设置是通过location指令来对网页URL进行分析处理,所有扩展名为.gif、.jpg、.jpeg、.png、.bmp、.swf的静态文件都交给Nginx处理,而expires用来指定静态文件的过期时间,这里是30天。

location ~ .*\.(gif|jpg|jpeg|png|bmp|swf)$  {  

                   root    /web/wwwroot/

                    expires 30d;  

       } 

 

8.配置与调试nginx

以下这段设置是将upload和html下的所有文件都交给Nginx来处理,当然,upload和html目录包含在/web/wwwroot/目录中。

location ~ ^/(upload|html)/  {  

                root    /web/wwwroot/

                expires 30d;  

在最后这段设置中,location是对此虚拟主机下动态网页的过滤处理,也就是将所有以.jsp为后缀的文件都交给本机的8080端口处理。location ~ .*.jsp$ {  

            index index.jsp;  

            proxy_pass 

          } 

9. StubStatus模块配置

StubStatus模块能够获取Nginx自上次启动以来的工作状态,此模块非核心模块,需要在Nginx编译安装时手工指定才能使用。

以下指令指定启用获取Nginx工作状态的功能。

      location /NginxStatus {  

              stub_status     on;  

    access_log             logs/NginxStatus.log;  

           auth_basic             "NginxStatus";  

         #     auth_basic_user_file    ../htpasswd;  

       } 

 


10.ginx基本信息检查

(1)检查Nginx配置文件的正确性

[root@localhost nginx]# /opt/nginx/sbin/nginx -t -c /opt/nginx/conf/nginx.conf

the configuration file /opt/nginx/conf/nginx.conf syntax is ok

configuration file /opt/nginx/conf/nginx.conf test is successful

说明配置文件正确。

2)显示Nginx的版本以及相关编译信息

在命令行执行以下命令可以显示安装Nginx的版本信息:

/opt/nginx/sbin/nginx -v 

 执行以下命令可显示安装的Nginx版本和相关编译信息:/opt/nginx/sbin/nginx -V 

上述命令不但显示Nginx的版本信息,同时显示Nginx在编译时指定的相关模块信息。

启动nginx

[root@localhost nginx]# /opt/nginx/sbin/nginx 

[emerg]: bind() to 0.0.0.0:80 failed (98: Address already in use)

[emerg]: bind() to 0.0.0.0:80 failed (98: Address already in use)

[root@localhost nginx]# ps -ef |grep nginx

root     22390     1  0 21:45 ?        00:00:00 nginx: master process /opt/nginx/sbin/nginx

nobody   22391 22390  0 21:45 ?        00:00:00 nginx: worker process

nobody   22392 22390  0 21:45 ?        00:00:00 nginx: worker process

nobody   22393 22390  0 21:45 ?        00:00:00 nginx: worker process

nobody   22394 22390  0 21:45 ?        00:00:00 nginx: worker process

pid是Nginx的进程号,可以通过如下两个命令获取:

[root@localhost logs]# ps -ef | grep "nginx: master process" | grep -v "grep" | awk -F ' ' '{print $2}'

22390

[root@localhost logs]# cat /opt/nginx/logs/nginx.pid 

22390

关闭nginx

[root@localhost logs]# /opt/nginx/sbin/nginx -s stop

11.安装libunwind库

[root@localhost home]#tar zxvf libunwind-0.99-alpha.tar.gz  

[root@localhost home]# cd libunwind-0.99-alpha/  

[root@localhost libunwind-0.99-alpha]#CFLAGS=-fPIC ./configure  

[root@localhost libunwind-0.99-alpha]#make CFLAGS=-fPIC  

[root@localhost libunwind-0.99-alpha]#make CFLAGS=-fPIC install 

12.安装google-perftools

[root@localhost home]#tar zxvf google-perftools-1.8.tar.gz  

[root@localhost home]#cd google-perftools-1.8/  

[root@localhost google-perftools-1.8]# ./configure  

[root@localhost google-perftools-1.8]#make && make install  

 [root@localhost google-perftools-1.8]# echo "/usr/local/lib" >/etc/ld.so.conf.d/usr_local_lib.conf 

[root@localhost google-perftools-1.8]# ldconfig 

google-perftools安装完成。

13.重新编译Nginx

为了使Nginx支持google-perftools,需要在安装过程中添加“–with-google_perftools_module”选项重新编译Nginx。\

安装代码如:

[root@localhost nginx-0.7.69]#./configure --prefix=/opt/nginx   --with-google_perftools_module  --with-http_stub_status_module  

14.为google-perftools添加线程目录

创建一个线程目录,这里将文件放在/tmp/tcmalloc下。操作如下:

[root@localhost home]#mkdir /tmp/tcmalloc  

[root@localhost home]#chmod 0777 /tmp/tcmalloc 

15.修改Nginx主配置文件

修改nginx.conf文件,在pid这行的下面添加如下代码:

#pid        logs/nginx.pid;  

google_perftools_profiles /tmp/tcmalloc; 

接着,重启Nginx即可完成google-perftools的加载。

验证:

[root@localhost nginx-0.7.69]# lsof -n |grep tcmalloc

nginx     22814    nobody   10w      REG        8,2        0     680759 /tmp/tcmalloc.22814

nginx     22815    nobody   12w      REG        8,2        0     680763 /tmp/tcmalloc.22815

nginx     22816    nobody   14w      REG        8,2        0     680760 /tmp/tcmalloc.22816

nginx     22817    nobody   16w      REG        8,2        0     680761 /tmp/tcmalloc.22817

 



 
由于在Nginx配置文件中设置worker_processes的值为4,因此开启了4个Nginx线程,每个线程会有一行记录。每个线程文件后面的数字值就是启动的Nginx的pid值。

至此,利用TCMalloc优化Nginx的操作完成。

 

 

阅读(1905) | 评论(0) | 转发(0) |
0

上一篇:没有了

下一篇:Rsync 搭建

给主人留下些什么吧!~~