Nginx vs Apache

这是在网上看到的一篇对比Nginx和Apache的文章,感觉很不错,就收藏到博客来了。

以下是原文:

什么是Nginx代理代理服务器,它和Apache相比又有什么区别呢?你又该如何选择使用呢,用其中一个还是两者都用?

我们将会在这里探索一下这些问题的答案。

Apache服务器从1995年就开始使用了。相比其他产品,Apache服务器是使用最多的,其次是微软的IIS服务器。

由于开源的Apache服务器已经被使用多年,并且有众多的用户,人们开发出了很多的模块来扩展它的功能,其中的大多数模块也是开源的。举例来说,一个比较常见的配置是使用Apache来为静态页面提供服务,并使用mod_jk模块来运行Tomcat上的Java和JSP代码,以便使程序具有交互功能。另一个例子是使用mod_php模块来执行php代码,而不用去使用cgi。

但是,Apache在高负载的情况下表现的差强人意,原因是它需要去运行新的进程,因此要消耗更多的内存。同时,他还要产生新的线程来与其他的线程竞争内存和CPU。当进程的流量达到了管理员设置的上限时,Apache会拒绝新的连接。

Nginx 是一个开源的服务器,用来解决一些Apache在性能和扩展性方面的问题的。Nginx是开源并且免费的,但是如果你购买了它的Nginx Plus版本的话是可以享受到服务支持的。

Nginx 声称它的服务器是用来解决C10K问题(出自Daniel Kegel发表的一篇关于如何使一个服务器处理10000个连接——假设的操作系统的上限的论文)的。在他的论文中,他引用了另一篇由Dean Gaudet写的论文,其中写到“你们为什么不使用一个像Zeus那样的选择/事件(select/event)为基础的模型呢?很明显那是最快的”。

Nginx 确实是以事件为基础的(event-based)。他们把他们的架构称为“事件驱动且异步”(event-driven and asynchronous)。Apache 依赖于进程和线程。那么,区别是什么呢?

阅读剩余部分 ...

Ubuntu上,构建Java运行服务器

本来在学校学的是java,只是种种原因,后来工作中倒是专职于PHP了,但是java也没荒废。


JDK的安装和配置


1)首先去官网http://www.oracle.com/technetwork/java/javase/downloads/index.html 下载最新版的jdk。注意32和64位的版本。


2)然后将.tar.gz压缩包移动到指定的文件夹,如指定为/opt下面,命令为sudo mv jdk-7u5-linux-i586.tar.gz /opt。

当然目录不存在,可以自己创建,用sudo mkdir  /opt/jdk就能创建。

然后就是用tar -xzvf jdk-7u5-linux-i586.tar.gz来解压缩。


3)解压好了之后就是环境变量的配置了,用sudo gedit /etc/profile来打开profile文件。

在文件末尾增加如下语句:

#set java environment
export JAVA_HOME=/opt/jdk
export JRE_HOME=/opt/jdk/jre
export CLASSPATH=.:$JAVA_HOME/lib:$JRE_HOME/lib:$CLASSPATH
export PATH=.:$JAVA_HOME/bin:$JRE_HOME/bin:$JAVA_HOME:$PATH

    

保存并且关闭profile文件。

 然后用source /etc/profile来重新执行刚修改的初始化文件(profile),使之立即生效而不必注销并重新登录。

 

4)之后就可以用java -version来查看java的版本了。 


TOMCAT的安装


1)直接下载对应的版本,解压到对应的目录。

2)用sh命令运行bin下的./startup.sh文件启动(此处需要JDK已安装)。

3)浏览器输入:localhost:8080测试。 


Ubuntu上,构建PHP运行服务器

支持PHP的服务器,比较常用的有Apache和Nginx,工作中,我用Nginx的比较多。

先说LNMP的配置步骤:


1).安装nginx

sudo apt-get install nginx 

Ubuntu安装之后的文件结构大致为:

所有的配置文件都在/etc/nginx下,并且每个虚拟主机已经安排在了/etc/nginx/sites-available下

程序文件在/usr/sbin/nginx

并已经在/etc/init.d/下创建了启动脚本nginx

默认的虚拟主机的目录设置在了/var/www/nginx-default

启动nginx

sudo /etc/init.d/nginx start 

然后就可以访问了,http://localhost/ , 一切正常!如果不能访问,先不要继续,看看是什么原因,解决之后再继续。

2).安装php和MySQL

sudo apt-get install php5-cli php5-cgi mysql-server php5-mysql

3).安装FastCgi

/usr/bin/spawn-fcgi这个文件来管理 FastCgi,它原属于lighttpd这个包里面,但 9.10 后,spawn-fcgi 被分离出来单独成包:

sudo apt-get install spawn-fcgi 

4).配置 nginx

修改nginx的配置文件:/etc/nginx/sites-available/default

server {
    listen   80; ## 监听端口
    root /usr/share/nginx/www;#网页摆放地址
    index index.php index.html index.htm;
    server_name 121.188.23.198;#供访问的公网IP或者配为localhost
    location ~ \.php$ {
        fastcgi_pass 127.0.0.1:9000;
        fastcgi_index index.php;
        fastcgi_param SCRIPT_FILENAME /usr/share/nginx/www$fastcgi_script_name;
        include /etc/nginx/fastcgi_params;
    }
}

重新启动nginx

/etc/init.d/nginx stop #停止

/etc/init.d/nginx start #启动 

启动fastcgi

spawn-fcgi -a 127.0.0.1 -p 9000 -C 10 -u www-data -f /usr/bin/php-cgi  

关闭fastcgi

pkill -9 php-cgi

 

参考地址:http://wiki.ubuntu.org.cn/Nginx

阅读剩余部分 ...