Linux/Mac OS X安装Nginx替代Apache

2010-07-03 09:22:43 by sand, 1875 visits, Tags: Nginx, HTTP, 性能优化, Apache, Linux, Mac OS X,
操作系统:Linux Cent OS 5 / Max OS X 10.6 snow leopard
安装版本:Nginx 0.8.43
 
Nginx ("engine x") 是一个高性能的 HTTP 和 反向代理 服务器,由俄罗斯人Igor Sysoev开发,它主要优势在于资源占用情况比apache强了太多,高并发情况下对内存的占用也很少,现在也被很多大型网站还是采用,下面记录一下安装配置过程:
  1. 下载:请到官方网站http://nginx.org/或者直接点击链接http://nginx.org/download/nginx-0.8.43.tar.gz
  2. 解压:tar jxvf nginx-*
  3. 进入文件目录,运行以下命令:
    1)./configure
    2)make
    3)sudo make install
    命令1为安装程序自动配置环境,命令2为编译源程序,命令3为安装
  4. 完成后  Nginx基本就安装好了,默认安装在/usr/local/nginx,可以在.configure --prefix=设置安装目录中。
    注(mac):这个是隐藏目录,Finder中是直接看不到的,要在Finder中点击前往-前往文件夹,然后输入/usr才能进入。
  5. 输入以下命令启动Nginx,然后浏览器输入地址http://localhost进行测试,看到很大的字体的Welcome to nginx!就代表安装成功了
    /usr/local/nginx/sbin/nginx

注:默认./configure后的配置结果为:

Configuration summary
  + using system PCRE library
  + OpenSSL library is not used
  + md5: using system crypto library
  + sha1 library is not used
  + using system zlib library

  nginx path prefix: "/usr/local/nginx"
  nginx binary file: "/usr/local/nginx/sbin/nginx"
  nginx configuration prefix: "/usr/local/nginx/conf"
  nginx configuration file: "/usr/local/nginx/conf/nginx.conf"
  nginx pid file: "/usr/local/nginx/logs/nginx.pid"
  nginx error log file: "/usr/local/nginx/logs/error.log"
  nginx http access log file: "/usr/local/nginx/logs/access.log"
  nginx http client request body temporary files: "client_body_temp"
  nginx http proxy temporary files: "proxy_temp"
  nginx http fastcgi temporary files: "fastcgi_temp"
  nginx http uwsgi temporary files: "uwsgi_temp"
  nginx http scgi temporary files: "scgi_temp"
如有问题请留言,我一定尽力解答,Good Luck! 
 
可能碰到的问题:
  1. ./configure: error: the HTTP rewrite module requires the PCRE library.
    解释:http rewrite模块需要PCRE资源库支持
    解决:安装pcre-devel
    yum install pcre-devel
  2. ./configure: error: the HTTP cache module requires md5 functions from OpenSSL library.
    解释:http缓存模块需要OpenSSL资源库内的md5方法支持
    解决:安装openssl openssl-devel
    yum install openssl openssl-devel

 

评论 (1)        

Apache httpd服务下Django全局变量

2010-04-23 14:34:23 by sand, 758 visits, Tags: Python, Apache, Django,

最近开发中碰到的一个问题,关于django中的全局变量

在本地开发环境中django是可以用全局变量的,声明在类和方法外面,大家可以共用这个变量

但是部署到服务器上的apache就发现一个问题,apache是多进程模式运行的,每个请求在不同的进程,导致进程间数据不能共享,全局变量也就失去了意义

网上查了一些,但还没确定哪种方法最好,备忘一下,以后有时间专门研究下,或者谁有好方法请分享下,谢谢。

评论 (4)        

安装mod_deflate启用apache的GZIP压缩

2010-04-09 23:35:35 by sand, 2191 visits, Tags: HTTP, 性能优化, Apache,
操作系统:Linux Cent OS 5 / Max OS X 10.6 snow leopard
相关环境:Apache httpd 2.2.15 
安装版本:apache httpd 2.2.15内置mod_deflate
 
gzip原本是文件压缩格式,扩展名为.gz,HTTP协议用它来改进WEB应用程序性能,加快HTTP请求返回内容的下载速度,增加用户体验,降低网络带宽占用
 
apache内置有mod_deflate模块来启用gzip功能,但假如安装apache的时候没有编译相关模块,就需要你手动安装一次,以启用它:
  1. 首先到你的apache源码目录,查找到mod_deflate.c文件
    Mac及Linux下都可用locate mod_deflate.c
    通常位置:apachehttpd源码目录/modules/filters/mod_deflate.c
     
  2. 进入上面找到的目录运行下面的命令:
    /usr/local/apache/bin/apxs -i -c -a mod_deflate.c
    注:apxs目录请参照您自己的机器,通常在apache安装目录的bin目录下
     
  3. 安装完成,到apache的modules目录看看是不是有了mod_deflates.so,如果有了这个文件,请编辑apache安装目录的conf/httpd.conf配置文件:
    LoadModule deflate_module modules/mod_deflate.so
    加载mod_deflate.so模块
     
  4. 在httpd.conf里面的站点配置里增加如下内容:
    AddOutputFilterByType DEFLATE text/html text/plain text/css text/xml text/javascript
    DeflateCompressionLevel 9
    SetOutputFilter DEFLATE
    第一行代表对什么样的内容启用GZIP压缩,第二行代表压缩级别,第三行代表启用deflate模块对本站点的输出进行GZIP压缩(就是对所有输出启用压缩)

OK,完成拉,重启apache httpd后可以查找一些gzip检测站点进行一下效果,通常压缩率都超过%50,可以有效增加访问速度及站点带宽利用率,Good Luck!

可能碰到的问题:

  1. 问题:apache启动后问题,日志里出现mod_deflate.so:undefined symbol:inflateEnd
    解决:在LoadModule deflate_module modules/mod_deflate.so之前增加LoadFile /usr/local/lib/libz.so或LoadFile /usr/lib/libz.so
    注:具体libz.so位置自己找一下

评论 (2)        

Linux/Mac OS X安装配置mod_python

2010-04-01 23:08:47 by sand, 738 visits, Tags: Python, Apache, Linux, Mac OS X,
操作系统:Linux Cent OS 5 / Max OS X 10.6 snow leopard
相关环境:Apache httpd 2.2.15 ; Python 2.6.4
安装版本:mod_python 3.3.1
 
mod_python是apache组织的一个项目,通过它,可以让python开发的web应用跑在apache上,下面介绍安装步骤:
  1. 下载:请到官方网站http://www.modpython.org/或者直接点击链接http://www.apache.org/dist/httpd/modpython/mod_python-3.3.1.tgz
  2. 解压:tar zxvf mod_python-*
  3. 进入文件目录,运行以下命令:
    1)./configure --with-apxs=/usr/local/apache/bin/apxs
    2)make
    3)sudo make install
    命令1为安装程序自动配置环境,命令2为编译源程序,命令3为安装
    注:因为mod_python现在没有对应python2.6版本的,所以要修改一下源码,编辑src/connobject.c第142行
    !(b == APR_BRIGADE_SENTINEL(b) ||改为!(b == APR_BRIGADE_SENTINEL(bb) ||
     
  4. 安装完成,到/usr/local/apache/modules中检查一下看是不是已经有了mod_python.so

  5. 配置apache启动mod_python
    修改apache配置文件httpd.conf,添加
    LoadModule python_module modules/mod_python.so

  6. 测试方法
    1)修改apache配置文件httpd.conf,添加
    alias /py /http/py/test
    <Directory /http/py/test>
        AddHandler mod_python .py PythonHandler pytest
        PythonDebug On Allow from all
    </Directory>
    2)添加文件/http/py/test/pytest.py代码如下
    from mod_python import apache
    def handler(req): req.write("Hello World!")
        return apache.OK
    3)运行命令service httpd restart重新启动apache httpd服务,浏览器输入http://localhost/py/pytest.py进行测试一下吧,看到Hello World!代表成功,Good Luck!
如有问题请留言,我一定尽力解答
 
可能碰到的问题:
  1. /usr/bin/install -c -d /usr/local/apache/modules
    /usr/bin/install -c src/mod_python.so /usr/local/apache/modules
    /usr/bin/install: stat‘src/mod_python.so’失败: 没有那个文件或目录
    解决办法:链接最新的libtool
    mv /usr/local/apache/build/libtool /usr/local/apache/build/libtool.old
    ln -s /usr/bin/libtool /usr/local/apache/build/libtool

 

评论 (1)        

Older Posts »