Nginx安装及配置

  
 <代码> Nginx引擎(x)是一个高性能的HTTP和反向代理web服务器,同时也提供了IMAP/POP3/SMTP服务.Nginx是由伊戈尔·赛索耶夫为俄罗斯访问量第二的Rambler.ru站点(俄文:Рамблер)开发的,第一个公开版本0.1.0发布于2004年10月4日。
  其将源代码以类BSD许可证的形式发布,因它的稳定性,丰富的功能集,示例配置文件和低系统资源的消耗而闻名.2011年6月1日,nginx 1.0.4发布。
  Nginx是一款轻量级的Web服务器/反向代理服务器及电子邮件(IMAP/POP3)代理服务器,在BSD-like协议下发行。其特点是占有内存少,并发能力强,事实上Nginx的并发能力在同类型的网页服务器中表现较好,中国大陆使用Nginx网站用户有:百度,京东,新浪,网,易腾讯,淘宝等。
  
  一,nginx可以实现的功能
  1,可以作为静态资源的web服务器,可以缓存文件的资源描述符——加速
  2、支持对http、stmp pop3等多种协议的反向代理
  3支持实现缓存和负载均衡
  4支持fcgi
  5支持uWSCGI
  6支持模块化
  7支持过滤器,对特定文件进行压缩传输
  8支持ssl
  9支持图像大小调整
  
  二,nginx的特性
  1、模块
  2、高性能
  3,低内存消耗
  4支持热部署
  5支持异步IO
  6支持事件驱动
  7支持内存映射
  
  三、核心模块
  1、标准http模块
  2,拓展http模块
  3、邮件拓展模块
  4、第三方模块
  
  四、安装依赖
  (root@156 ~) #百胜groupinstall - y“开发工具”
  (root@156 ~) # yum安装pcre-devel openssl openssl-devel - y
  
  五、安装nginx
  (1)创建nginx的运行用户
  root@156 ~ # groupadd - r nginx
  (root@156 ~) # useradd - r - s/sbin/nologin - g nginx nginx
  (root@156 ~) # tar xvf nginx-1.6.2.tar.gz
  # cd nginx-1.6.2 root@156 ~
  [root@156 nginx-1.6.2] # ./configure——help |更多
  # ./configure \ [root@156 nginx-1.6.2)
  ——prefix=/usr/地方/nginx \
  ——conf-path=/etc/nginx/nginx。参看\
  ——用户=nginx组=nginx \
  ——error-log-path=/var/log/nginx/错误。日志\
  ——http-log-path=/var/log/nginx/访问。日志\
  ——pid-path=/var/run/nginx/nginx。pid \
  ——lock-path=/var/锁定/nginx。锁\
  ——with-http_ssl_module \
  ——with-http_stub_status_module \
  ——without-http_gzip_module \
  ——with-http_mp4_module \
  ——with-http_flv_module \
  ——http-client-body-temp-path=/var/tmp/nginx/客户端\
  ——http-proxy-temp-path=/var/tmp/nginx/代理\
  ——http-fastcgi-temp-path=/var/tmp/nginx/fcgi \
  [root@156 nginx-1.6.2] #做,,制作安装
  
  (2)创建临时文件的保存目录
  [root@156 nginx-1.6.2] # mkdir/var/tmp/nginx/{客户,代理,fcgi} pv
  mkdir:创建目录/var/tmp/nginxclient”
  mkdir:创建目录/var/tmp/nginxproxy”
  mkdir:创建目录/var/tmp/nginxfcgi”
  
  (3)启动nginx
  #/usr/local/nginx/sbin/nginx root@156 ~
  (root@156 ~) #党卫军-tnl | grep 80
  听0 128 *:80
  (root@156 ~) # lsof我:80
  命令PID用户FD类型设备大?节点名
  nginx 8395根6 u IPv4 20287 0 t0 TCP *: http(听)
  nginx 8396 nginx 6 u IPv4 20287 0 t0 TCP *: http(听)
  (root@156 ~) # ps辅助| grep nginx
  8395 0.0 0.1 44572 1040根?党卫军球队0:00 nginx:主人/usr/local/nginx/sbin/nginx过程
  nginx 8396 0.0 0.1 45000 1620 ?年代球队0:00 nginx:工作进程
  根8513 0.0 - 0.0 103308 848分/0 + 22:39 0:00 grep nginx
  测试:在浏览器上输入服务器的IP地址即可访问nginx界面,例如http://192.168.70.156/nginx配置详解
  六,和nginx正常运行相关的配置
  1,worker_processes 1;
  设置发起几个nginx的工人进程
  
  2,用户用户名(groupName);
  指定nginx以谁的身份来运行
  
  3、pid/道路//文件
  pid文件
  
  4,worker_rlimit_nofile数量;
  设置所有工人进程一共可以打开的文件的最大数量的值
  (linux上默认每个用户可以打开1024个文件,套接字也是一个文件)
  
  七,nginx性能优化相关配置
  5,worker_processes |汽车数量;
  设置发起几个nginx的工人进程
  数量:应该比物理核心少一个
  汽车:让系统自动判断
  
  6,worker_cpu_affinity cpumask……|汽车;
  设置cpu掩码,将职工进程绑定在一个固定的cpu
  举例:
  worker_processes 4;
  worker_cpu_affinity 0001 0010 0100 1000;
  举例:
  worker_processes 2;
  worker_cpu_affinity 0001 0100;
  注意:可以用汽车,但是是1.9.10之后可以用
  
  7,time_resolution间隔;
  降低发起系统调用gettimeofday()次数
  time_resolution 100 ms;
  
  8日worker_priority数量;
  修改工人进程的好值(默认是0)
  
  八、和事件相关的配置
  9日,accept_mutex |关闭
  设置主进程将客户端的请求调度到工人进程的
  调度方式:轮询,随机
  :使用轮询
  默认方式:
  
  10日,accept_mutex_delay时间;默认500毫秒
  设置主延迟多久才将客户端的请求调度到工人进程
  
  11、用户(epoll |调查|选择)
  通常是不需要指定连接的处理方法(起始就是所使用的事件模型)的
  建议让系统自动判断所要使用的方法
  
  12日,worker_connections数量;
  指定每个工人进程可以处理的最大并发连接的数量
  默认是1024
  
  13日,master_process |关闭;
  指定是否使用成为集大成
  默认是:
  
  九、和调试和定位错误相关配置
  14,达蒙|
  指定nginx工作在前台还是后台
  默认是在
  
  15日,error_log文件(水平);
  指定错误日志的保存位置以及日志级别
  总结:经常要修改的参数
  worker_processes
  worker_connections
  worker_cpu_affinity
  worker_priority
  
  十、和http相关的配置
  # vim/etc/profile.d/nginx.sh root@156 ~
  导出路径=$路径:/usr/地方/nginx/sbin
  (root@156 ~) #/etc/profile.d/nginx.sh来源
  root@156 ~ # nginx
  root@156 ~ # nginx - s重载
  (root@156 ~) #党卫军-tnl | grep 80
  上下文:http{指令}
  例子:http {
  全局配置:对所有的虚拟主机都生效的配置
  sendfile;
  keepalive_timeout 10;
  ……
  虚拟主机配置
  服务器{
  听80;指定该虚拟主机所监听的端口
  server_name www.lichao.com;指定虚拟主机的域名
  根/vhost/web1;指定虚拟主机的网站根目录
  位置/{
  
  }
  }
  服务器{
  
  }
  }
  
  16日,server_name
  设定虚拟主机的域名,可以使用正则表达式来表示域名
  适用范围:服务器上下文中
  
  服务器{
  server_name www.zxhk.com;
  
  }
  服务器{
  server_name * .zxhk.com;
  
  }
  服务器{
  server_name www.zxhk。*;
  
  }
  服务器{
  server_name *;
  
  }
  服务器{
  server_name ~ ^。* \ .www.zxhk.com;
  
  }
  
  www.zxhk.com
  
  注意:nginx在进行域名匹配的时候,是有一定的规则,匹配次序如下
  1、做精确匹配,server_name中的内容必须和用户请求的内容完全一样
  2、检查左侧的通配符
  3、检查右侧的通配符
  4、检查通配符
  5、检查正则表达式
  6,通过所有检查都失败,则访问default_server,如果没有指定default_server,
  那么第一个服务器就是default_server
  
  17日,听
  指定所监听的套接字
  例子:
  听127.0.0.1:80;
  听172.0.0.1;
  听80;
  听*:80;
  听localhost: 80;
  
  18日,根
  指定网站根目录
  使用范围:http服务器的位置
  注意:如果将根写在了http部分,则会对全部的服务器都有效
  
  例子:
  # cd/etc/nginx/root@156 ~
  [root@156 nginx] # cp nginx.conf {, . bak}
  # vim nginx.conf root@156 nginx
  (root@156 ~) # mkdir pv/vhost/web1
  root@156 ~ #回声”web1< & lt; h2>测试;/h2>“祝辞vhost//web1/index . html
  [root@156 ~] vhost #猫//web1/index . html
  root@156 ~ # nginx - s重载
  http://192.168.70.156/null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null

Nginx安装及配置