一、Nginx介绍

  火了半边天的Nginx和Apache一样也是Web服务器,专为性能优化而开发,也可以像Squid一样做反向代理,或者邮件代理等许多用途,并有windows的移植版,其最知名的优点是它的稳定性和低系统资源消耗,以及对HTTP并发连接的高处理能力,单台物理服务器可支持30000~50000个并发请求,apache理论上只支持3000~5000个并发请求,但是apache对动态网站的支持要比Nginx好。正因为如此,大量提供社交网站,新闻资讯,电子商务及虚拟主机等服务的企业纷纷选择Nginx来提供Web服务。

二、Nginx VS Apache

Nginx优点
  (1)轻量级,同样一架web服务,比apache占用更少的内存及资源
  (2)高并发,nginx处理请求是异步非阻塞的,而apache则是阻塞型的,在高并发下nginx能保持低资源低消耗高性能
  (3)高低模块化的设计,编写模块相对简单
  (4)可作为负载均衡服务器,支持7层负载均衡
  (5)静态处理性能比Apache高3倍以上,但动态处理不足,需要通过后端服务器支持,如Apache

三、Nginx的安装

 #1、安装依赖包 pcre-devel (为了支持网页重写机制)和 zlib-devel(一般系统自带)和 pcre(一般系统自带)和 openssl-devel 和 openssl(一般自带)
yum -y install pcre-devel openssl-devel
#2、创建运行用户和组
useradd -M -s /sbin/nologin nginx
#3、安装 wget -q http://nginx.org/download/nginx-1.6.0.tar.gz
tar zxvf nginx-1.6.0.tar.gz -C /usr/src
cd /usr/src/nginx-1.6.0/
./configure --prefix=/application/nginx-1.6.0 \
--user=nginx --group=nginx \
--with-http_stub_status_module (加模块:网页访问的状态记录服务器也就是日志统计模块)--with-http_ssl_module
make && make install
#4、创建链接文件
ln -s /application/nginx-1.6.0/sbin/nginx /usr/local/sbin/
14 ln -s /applicationnginx-1.6.0 /application/nginx

四、Nginx运行控制方法

~]#nginx -t     #检测配置文件语法
~]#nginx   #启动nginx,可以使用elinks ,curl 127.0.0.1,wget 127.0.0.1检查实际开启效果

重新加载nginx

~]#netstat -anpt | grep nginx
xxx
~]#kill -s HUP xxx 或 kill -1 xxx 或 killall -s HUP nginx

关闭nginx

~]#kill -s QUIT  xxx  或  kill -3 xxx 或 killall -s QUIT nginx

分割日志

~]#kill -s USER1 xxx

平滑升级nginx服务

~]#kill -s USER2 xxx

下面提供一段名为nginx的服务控制脚本:

 #chkconfig: 2345 21 90
#description: nginx server control script
PROG="/usr/local/sbin/nginx"
PIDF="usr/local/nginx/logs/nginx.pid" # 注意:当nginx安装完毕后并没有生成pid文件,需要在配置文档中开启pid功能,才能出现,这个文件里包含了一个pid进程数字
case "$1" in
start)
$PROG
;;
stop)
kill -3 $(cat $PIDF)
;;
restart)
$0 stop #$0代表本文件,这个文件加上可执行权限后,便可这么用
$0 start
;;
reload)
kill -1 $(cat $PIDF)
;;
*)
echo "Usage: $0 (start|stop|restart|reload)"
exit 1
esac
exit 0

然后设置权限添加为系统服务

~]#chmod +x nginx
~]#chkconfig --add nginx

五、Nginx配置文件分析

  /usr/local/nginx/conf/nginx.conf文件包含全局配置、I/O事件配置和HTTP配置这三大块内容,前10行是全局配置,12-14行是I/O事件配置,余下的为HTTP配置;配置语句的格式为 “关键字 值;”

(1)全局配置

  由各种配置语句组成,不适用特定的界定标记、可设置Nginx服务的运行用户、工作进程数、错误日志、PID存放位置等,如果配置项注释掉,表示采用默认设置

具体配置:

user  nginx  nginx;  #运行用户改为我们之前建立的nginx用户及其组
worker_processes 1 #工作进程数量为1,若服务器有多块CPU或者使用多核处理器,可参考CPU核心总数来制定工作进程数,比如两块2核的就写4,或者是2倍,8。

  以下三项我们一起看:

  对于Nginx来说,错误日志分为6级,从严重性由低到高分为debug\info\notice\warn\error\crit;如果下面三个选项我开启 info的话,意味着\info\notice\warn\error\crit这几个级别要做记录,如果写成notice ,那么notice\warn\error\crit要做记录,如果是warn,那么warn\error\crit要做记录依次类推,一般我们开启info那一项。

#error_log  logs/error.log
#error_log logs/error.log notice;
#error_log logs/error.log info;

(2)I/O事件配置

  用“events{}” 界定,指定Nginx进程I/O响应模型、每个进程的连接数等

具体配置:

events  {
      use epoll; #2.6及以上版本的内核(查询方法uname -r),建议使用epoll模型以提高性能;它的工作模式有很多种,如果不写的话这里默认是select/poll工作模式;kequeue/epoll是高效功能模式,2.6以上的版本可以用这种模式;kequeue模式用在BSD系统中(一种开源的UNIX)。
  worker_connections 1024; #每个进程的连接数应根据实际需要来定,一般在10000以下,默认为1024,意思是1个进程可以同时有1024个人访问进来,Nginx很强悍的,之前我们提到它可以同时响应30000到50000之间的数,所以根据需要改大。
}

注:小知识,最大并发用户数算法  worker_processes的值乘以worker_connections的值,当然具体多少还要看服务器硬件、网络带宽等物理条件的性能表现

(3)HTTP配置

  用"http {}"界定,这只访问日志、HTTP端口、网页目录、默认字符集、连接保持,虚拟Web主机、PHP解析等,server{}配置段设置特定的网站(说白了就是配置虚拟主机)。

具体配置:

 include   mine.types                   #表示支持多媒体
log_format main #紧随其后有三行,意思都是定义日志格式的,这个格式的名字叫main
access_log logs/access.log main; #一般启用这个访问日志路径,它的格式就是上面我们提到的名为main的格式
sendfile        on       #是否支持文件发送(下载)
keepalive_timeout   65      #连接保持超时(访问页面后,如果不做任何操作65秒后将断开连接)
listen 80               #监听地址及端口
server_name   www.benet.com     #设置网络名称(FQDN)
charset utf-8 ;           #网站默认字符集,默认是俄语,我们改为utf-8
location / {            #根目录配置
   root  html ;      #网站根目录的位置,这是个相对路径,其实是/usr/local/nginx/html/
  index  index.html index.htm;  #默认首页
}
error_page  404 /404.html; #404报错页是由404.html来调用启动的
error_page 500 502 503 504 /50x.html; #这些报错页都是由50x.html来调用启动的

六、构建静态网站

步骤:(和apahe验证是一样的http://www.cnblogs.com/mangood/p/5947110.html

  1、修改主配置文件、新建www.benet.com网站

  2、准备网站目录与测试网页

  3、配置本地解析或DNS解析

  4、启动并检测服务是否正常

七、查看统计日志

  (1)Nginx内置了HTTP_STUB_STATUS状态统计模块,修改nginx.conf配置文件,指定访问位置/status并打开stub_status配置

 ~]#vim /usr/local/nginx/conf/nginx.conf
添加
location ~ /status {
      stub_status on; #由stub_status来统计日志
      access_log off; #关闭系统自身的日志功能
    }
~]#service nginx reload

 (2)在浏览器中访问/status,看到统计信息

  输入地址http://www.benet.com/status

The server of Nginx(一)——Nginx基础及静态网站的构建的更多相关文章

  1. Nginx静态网站的部署

    静态网站的部署 首先先看一下nginx/conf/nginx.conf 配置文件内的信息: #user nobody; worker_processes 1; #error_log logs/erro ...

  2. Nginx概念及基础安装--详细讲解

    1.主要内容: Nginx的基础           特性           配置部署           优化(了解) 2.Nginx 是什么? Nginx是一个开源的,支持高性能,高并发的www ...

  3. Nginx入门篇-基础知识与linux下安装操作

    我们要深刻理解学习NG的原理与安装方法,要切合实际结合业务需求,应用场景进行灵活使用. 一.Nginx知识简述Nginx是一个高性能的HTTP服务器和反向代理服务器,也是一个 IMAP/POP3/SM ...

  4. Nginx记录-Nginx基础(转载)

    1.Nginx常用功能 1.Http代理,反向代理:作为web服务器最常用的功能之一,尤其是反向代理. Nginx在做反向代理时,提供性能稳定,并且能够提供配置灵活的转发功能.Nginx可以根据不同的 ...

  5. 【URLOS应用开发基础】10分钟制作一个nginx静态网站环境应用

    URLOS开发者功能已上线有一段时间了,目前通过部分开发者的使用体验来看,不得不说URLOS在服务器软件开发效率方面确实有着得天独厚的优势,凭借docker容器技术与其良好的应用生态环境,URLOS必 ...

  6. nginx安装及基础配置(含jdk安装及配置)

    0.jdk安装配置 #下载相应的jdk软件包,然后解压安装,我这里包名称为:jdk-7u25-linux-x64.tar.gz tar -xzf jdk-7u25-linux-x64.tar.gz m ...

  7. nginx架构与基础概念

    1       Nginx架构 Nginx 高性能,与其架构有关. Nginx架构: nginx运行时,在unix系统中以daemon形式在后台运行,后台进程包含一个master进程和多个worker ...

  8. Setting up Django and your web server with uWSGI and nginx

    https://uwsgi.readthedocs.io/en/latest/tutorials/Django_and_nginx.html Setting up Django and your we ...

  9. 【nginx运维基础(4)】Nginx的日志管理(日志格式与定时分割日志)

    Nginx日志主要分为两种:访问日志和错误日志.日志开关在Nginx配置文件(一般在server段来配置)中设置,两种日志都可以选择性关闭,默认都是打开的. 访问日志access_log #日志格式设 ...

随机推荐

  1. MIS系统部署方案

  2. Java微信公众平台开发(十)--微信自定义菜单的创建实现

    转自:http://www.cuiyongzhi.com/post/48.html 自定义菜单这个功能在我们普通的编辑模式下是可以直接在后台编辑的,但是一旦我们进入开发模式之后我们的自定义菜单就需要自 ...

  3. PHP 取网页变量

    $_POST["test"]; $_GET["test"];isset();  if(isset($_GET["yyuid"]))

  4. NUnit属性

    TestFixture:它标记一个类包含测试,申明该类是用来测试的.一般用在class的定义之前: Test一般是放在method之前,表示对该方法的测试:如前一篇文章所示的class. SetUp/ ...

  5. xcode添加build phase

    [xcode添加build phase] xcode版本:5.0.2,找了半天,终于找到add build phase的方法,如下图.

  6. zookeeper介绍及集群的搭建(利用虚拟机)

    ZooKeeper ​ ZooKeeper是一个分布式的,开放源码(apache)的分布式应用程序协调服务,是Google的Chubby一个开源的实现,是Hadoop和Hbase.dubbox.kaf ...

  7. Android 创建项目出现No resource found that matches the given name Theme.AppCompat.Light

    关于为何出现No resource found that matches the given name ‘Theme.AppCompat.Light’的原因 这边博客已经写的很清楚了 大家可以参考一下 ...

  8. InvocationtargetException 类型转换异常

    日期类型转换不了json格式数据 json转换数据的时候可以设置某个字段不需要转换 jsonconfig=new JsonConfig() //{} 内传入不需要转换的字段 jsonconfig.se ...

  9. Spring 实例化bean的三种方式

    第一种方法:直接配置Bean <bena id="所需要实例化的一个实例名称" class="包名.类名"/> 例如: 配置文件中的bean.XML ...

  10. Cunit编译安装

    1.  Examples/Makefile.am:26: to 'configure.ac' and run 'autoconf' again. configure.ac:211: error: re ...