nginx的三大功能(之一服务器)

nginx的三大功能(之一服务器)php

  1. nginx ("engine x") 是一个高性能的HTTP和反向代理服务器,也是一个IMAP/POP3/SMTP服务器。其主要有三个功能:
  2. (1)服务器(基本)
  3. (2)负载均衡
  4. (3)nginx的缓存功能
  5. 今天先讲述利用nginx如何搭建一个web服务器:
  6. 若是已经作过web开发的,就熟悉如何取搭建一个基本的web服务器而来跑本身的项目,在当前基本上经常使用的IIS(windows)Apache(Linux),nginx是后期之秀,是在最近几年才被企业所使用的服务器,其实在众多服务器中能脱颖而出,是有其自身优势的,据统计Apache使用率61.9%(比较稳定),IIs使用率16.5%,该服务器易用前者比较容易搭建,而nginx如今占用使用率16.1%(后期之秀,效率比较高)。从这三个的比较咱们能看出,nginx的主要特性使效率比较高,也使得成为如今的企业选择之一。
  7. 接下来,首先来看一下nginx和apache之间的区别,也使得咱们在之后选择服务的时候,能根据本身所须要的功能选择本身须要的服务器:
  8. 1.nginx相对于apache的优点:
  9. 首先nginx是轻量级的,若是使用其做为web服务,起来起来时占用的内存资源比较少,他能够支持更多的并发链接,体现更高的效率。其实在高并发的状况,使用nginx要比apache效率高的不少,nginx可以支持高达50000个并发链接数的响应,这主要缘由是nginx选择的epoll and kqueue(可扩展的事件复用技术),感兴趣的能够了解一下epoll and kqueue技术,其实select()和poll()的工做方式很是相似。
  10. (1)抗并发,nginx请求是异步非阻塞的,而apache是阻塞型的,在高并发下,nginx能保持低资源、低消耗高性能。
  11. (2)nginx原本就是一个反向代理服务器,其负载均衡能力比较突出,nginx既能够在内部支持Rails(符合实际高效的web开发框架,其结合了php和java来发的一些优势)和php程序对外部进行服务,能够做为Http服务器对外进行服务。Nginx采用C语言进行开发,不管是在系统开销仍是内存使用率都比Perlbal 要好不少。
  12. 2.apache相对于nginx的优势:
  13. 重写功能apache要比nginx的强大
  14. nginx通常适合作静态和反向代理,而动态代理通常要考apache完成
  15. apache相对于使用时间比较长,bug比较少,而nginx的bug比较多
  16. 3.核心区别
  17. apache是同步多进程模型一个链接对应一个进程,而nginx是异步的,多个链接(万级别)能够对应一个进程。
  18. **_
  19. 继续上面完成内容;

  20. _**
  21. 通常来讲须要具备性能的web服务,最好选择nginx,若是不须要性能只求稳定则最好的选择apache便可,apache的各类功能模块实现的要比nginx好,而且可配置项也多。epoll网络IO模型是nginx处理性能高的根本理由,但并非全部的状况下都是epoll的性能高,若是自己提供静态服务的,则apache的select模型要比nginx的epoll性能高。
  22. Epoll:
  23. 对socket数量不限制
  24. 操做无限制:有活跃socket,内核访问该socket的callback,不须要遍历(nginx效率高的缘由)
  25. select
  26. socket数量限制:该模式可操做的socket数有限,由FD_SETSIZE(C++)中的来决定,内核默认32*32=1024
  27. 操做限制:有活跃的socket,内核访问socket时,无论哪一个活跃的socket都要遍历一遍(apache慢的缘由)

安装nginx 官方最新的是nginx-1.3.16.tsr.gz 官方最新libevent-2.0.21-stable.tar.gz提供时间处理机制,linux5.4自带的也行,默认安装了。 Pcre 以及pcre-devel,默认pcre是安装的 1.安装pcre-devel,以及创建nginx用户 yum install pcre-devel groupadd -r nginx useradd -r -g nginx -M nginx 2.解压缩nginx的源码并安装 tar -zxvf nginx-1.3.16.tar.gz -C /usr/local/src cd /usr/local/src/nginx-1.2.16 ./configure --conf-path=/etc/nginx/bf --error-log-path=/var/log/nginx/error.log

--pid-path=/var/run/nginx/nginx.pid --lock-path=/var/lock/nginx.lock --user=nginx --group=nginx --with-http_ssl_module --with-http_flv_nodule --with-http_stub_ststatus_module --with-http_gzip_static_module --http-client-body-temp-path=/var/tmp/nginx/client --http-proxy-temp-path=/vat/tmp/nginx/proxy/ --http-fastcgi-temp-path=/var/tmp/nginx/fcgi --with-pcre #make && make install #mkdir -p /var/tmp/nginx/client 3.启动nginx服务器并在客户端作测试 /usr/local/nginx/sbin/nginx &html

查询nginx的启动状态 netstat -tupln |grep nginx 下面显示: tcp 0 0 0.0.0.0:80 0.0.0.0:* LISTEN 6965/nginxjava

客户端浏览器输入http://本机IP地址 至此,nginx安装完成 3.实现虚拟主机(比较经常使用的功能) nginx的配置文件比较简单 基于IP的虚拟主机 (1)准备工做 增长一个网卡地址(原有的是192.168.17.33) ipconfig eth0:0 192.168.17.34 创建两个站点目录 mkdir /website1 mkdir /website2linux

创建两个存放日志的目录 mkdir /var/log/nginx/website1 mkdir /var/log/nginx/website2 建立两个测试htmlnginx

(2)修改配置文件 原有的配置文件中有一个默认server节点,而后在添加一个server节点 server {web

  listen 192.168.17.33:80;apache

  server_name localhost;windows

  #charset koi8-r;浏览器

  access_log /var/log/nginx/website1/access.log;缓存

  error_log /var/log/nginx/website1/error.log;

  location / {

  root /website1;

  index inde;

  }

  error_page 404 /l;

  # redirect server error pages to the static page /l

  #

  error_page 500 502 503 504 /l;

  location = /l {

  root html;

  }

  }

server {

  listen 192.168.17.34:80;

  server_name localhost;

  #charset koi8-r;

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

  error_log /var/log/nginx/website2/error.log;

  location / {

  root /website2;

  index inde;

  }

  error_page 404 /l;

  # redirect server error pages to the static page /l

  #

  error_page 500 502 503 504 /l;

  location = /l {

  root html;

  }

  }

(3)停掉原有的apache服务 service httpd stop /usr/local/nginx/sbin/nginx &

(4)在客户机分别访问 http://192.168.17.33 http://192.168.17.34 若是有该测试html内容显示,则证实配置成功。 4.配置建立证书的配置文件,以及建立证书 vi /etc/pki/tls/f 45行dir=/etc/pki/CA 根据配置文件的需求建立此昂观点额文件夹和文件 mkdir certs crl newcerts touch index.txt serial echo 01>> serial //初始化文件 建立私钥

openssl genrsa 1024?private/cakey.pem chmod 600privat/cakey.pem //受权 (2)创建nginx的安全目录,并生成相关的私钥和证书文件 mkdir /usr/local/nginx/certs cd /usr/local/nginx/certs openssl genrsa 1024>nginx.key chmod 600 nginx.key (3)修改nginx配置问阿金,添加用于安全访问的站点 server {

  listen 192.168.17.33:443;

  server_name ;

  ssl on;

  ssl_certificate /usr/local/nginx/certs/nginx.cert;

  ssl_certificate_key /usr/local/nginx/certs/nginx.key;

  ssl_session_timeout 5m;

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

  error_log /var/log/nginx/error.log;

  ssl_protocols SSLv2 SSLv3 TLSv1;

  ssl_ciphers HIGH:!aNULL:!MD5;

  ssl_prefer_server_ciphers on;

  location / {

  root html;

  index inde;

  }

  } (4)重启nginx服务,访问 首次访问的时候会提示风险,选择继续浏览 (5)修改web证书 cp /etc/pki/CA/cacert.pem /usr/local/nginx/certs cd /usr/local/nginx/certs cat cacert.pem>>nginx.cert 重启nginx,访问,安装正式便可。

相关文章
相关标签/搜索