nginx配置文件说明

  • 格式:docx
  • 大小:26.38 KB
  • 文档页数:11

下载文档原格式

  / 11
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

Apache服务器和nginx的优缺点:

我们之前大量使用Apache来作为HTTPServer。

Apache具有很优秀的性能,而且通过模块可以提供各种丰富的功能。

1)首先Apache对客户端的响应是支持并发的,运行httpd这个daemon进程之后,它会同时产生多个孩子进程/线程,每个孩子进程/线程分别对客户端的请求进行响应;

2)另外,Apache可以提供静态和动态的服务,例如对于PHP的解析不是通过性能较差的CGI实现的而是通过支持PHP的模块来实现的(通常为mod_php5,或者叫做apxs2)。

3)缺点:

因此通常称为Apache的这种Server为process-based server ,也就是基于多进程的HTTPServer,因为它需要对每个用户请求创建一个孩子进程/线程进行响应;

这样的缺点是,如果并发的请求非常多(这在大型门户网站是很常见的)就会需要非常多的线程,从而占用极多的系统资源CPU和内存。因此对于并发处理不是Apache的强项。

4)解决方法:

目前来说出现了另一种WebServer,在并发方面表现更加优越,叫做asynchronous servers异步服务器。最有名的为Nginx和Lighttpd。所谓的异步服务器是事件驱动程序模式的event-driven,除了用户的并发请求通常只需要一个单一的或者几个线程。因此占用系统资源就非常少。这几种又被称为lightweight web server。

举例,对于10,000的并发连接请求,nginx可能仅仅使用几M的内存;而Apache 可能需要使用几百M的内存资源。

2. 实际中单一的使用:

1)关于单一使用Apache来作为HTTPServer的情况我们不用再多做介绍,非常常见的应用;

上面我们介绍到Apache对于PHP等服务器端脚本的支持是通过自己的模块来实现的,而且性能优越。

2)我们同样可以单单使用nginx或者lighttpd来作为HTTPServer来使用。nginx和lighttpd和Apache类似都通过各种模块可以对服务器的功能进行丰富的扩展,同样都是通过conf配置文件对各种选项进行配置。

对于PHP等,nginx和lighttpd都没有内置的模块来对PHP进行支持,而是通过FastCGI来支持的。

Lighttpd通过模块可以提供CGI, FastCGI和SCGI等服务,Lighttpd is capable of automatically spawning FastCGIbackends as well as using externally spawned processes.

nginx则没有自己提供处理PHP的功能,需要通过第三方的模块来提供对PHP进行FastCGI方式的集成。

--------------nginx 配置 gzip压缩

一般情况下压缩后的html、css、js、php、jhtml等文件,大小能降至原来的25%,也就是说,原本一个100k的html,压缩后只剩下25k。这无疑能节省很多带宽,也能降低服务器的负载。

在nginx中配置gzip比较简单

一般情况下只要在nginx.conf的http段中加入下面几行配置即可

引用

gzip on;

gzip_min_length 1000;

gzip_buffers 4 8k;

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

text/html application/xml;

重启nginx

可以通过网页gzip检测工具来检测网页是否启用了gzip

/

---------------重定向nginx错误页面的方法

error_page 404 /404.html;

这个404.html保证在nginx主目录下的html目录中即可,如果需要在出现404错误后直接跳转到另外一个地址,可以直接设置如下:

error_page 404 http://www.***.net;

同样的方式可以定义常见的403、500等错误。

特别注意的是404.html文件页面大小要超过512k,不然会被ie浏览器替换为ie默认的错误页面。

------------------------------虚拟主机配置

server {

listen 80;

server_name localhost;

access_log /var/log/nginx/localhost.access.log;

location / {

root /var/www/nginx-default;

index index.php index.html index.htm;

}

location /doc {

root /usr/share;

autoindex on;

allow 127.0.0.1;

deny all;

}

location /images {

root /usr/share;

autoindex on;

}

location ~ \.php$ {

fastcgi_pass 127.0.0.1:9000;

fastcgi_index index.php;

fastcgi_param SCRIPT_FILENAME /var/www/nginx-default$fastcg i_script_name;

include /etc/nginx/fastcgi_params;

}

}

server {

listen 80;

server_name ;

access_log /var/log/nginx/localhost.access.log;

location / {

root /var/www/nginx-default/console;

index index.php index.html index.htm;