Nginx基础应用详解

Nginx是一款轻量级的Web和反向代理服务器,它的诞生主要是为了解决C10K的问题,它具有较多的特性;
Nginx的特性:

 1、模块化设计,具有较好的扩展性
 2、具有高可靠性
 3、支持热部署:可以在不影响用户使用的情况下,升级老版本;可以不停机更新配置文件、更换日志文件、更换服务器程序版本
 4、低消耗内存:10K个keepalive连接模式下的非活动连接仅消耗2.5M内存
 5、是event-driven事件驱动模型:具有一个主进程,多个子进程,每个子进程响应多个请求
 
Nginx的基本功能:
 1、静态资源的web服务器
 2、可以作为http协议的正反向代理服务器
正向代理:Nginx作为服务器,可直接响应资源给客户端
反向代理:Nginx作为代理器,客户端不直接和服务器交流,而是通过和代理服务器的代理器来交流;通过代理器来读取服务器中的资源,从而响应给客户端
 3、支持pop3/imap4协议反向代理服务器
 4、支持FastCGI、UWSGI等
 5、支持模块化:例如ssl、zip


Nginx的程序架构图:

Master:Master为主进程,主要作用是加载配置文件、管理worker进程、可进行平滑升级
Worker:worker为子进程,由master主进程生成,一个worker进程可以处理多个客户端请求;主要作用是接受客户端请求、http代理、FastCGI代理、Memcache代理、在磁盘内缓存以及管理磁盘内的缓存

准备环境:

虚拟机1:nginx IP:172.18.42.200
虚拟机2:httpd(后端主机) IP:172.18.42.201
虚拟机3:httpd(后端主机) IP:172.18.42.202

一、实现“ngx_http_auth_basic_module”认证机制
1、虚拟机1安装nginx服务
[root@node0 ~]# yum install nginx

2、编辑nginx主配置文件
[root@node0 ~]# vim /etc/nginx/nginx.conf  ##nginx的主配置文件
server {
listen 80;  ##监听的端口
server_name localhost;
root /www/lweim/;  ##指定读取资源路径
location /nginx {
  auth_basic "Show your Information";  ##指定提示页
  auth_basic_user_file /etc/nginx/.ngxpasswd;  ##指定密码文件路径
}
}
[root@node0 nginx]# htpasswd -c -m /etc/nginx/.ngxpasswd lweim  ##创建虚拟用户“lweim”
-c:当.nginxpasswd这个文件不存在时需使用
-m:使用md5算法
[root@node0 ~]# echo "172.18.42.200 Nginx 1" > /www/lweim/nginx/index.html

3、访问web页面

二、实现“ngx_http_stub_status_module”基本状态信息
1、编辑配置文件 
[root@node0 ~]# vim /etc/nginx/nginx.conf
server {
  listen      80;
  server_name  localhost;
  root /www/lweim/;
  location /status {  ##指明状态页面目录
  stub_status on;  ##开启状态页
  }
}
[root@node0 ~]# mkdir /www/lweim/status/  ##创建状态页目录

2、访问web

Active  connections:处于活动状态的客户端连接数量
Accepts:已经接受客户端的总请求数量
Handled:已经处理客户单的总请求数量
Request:客户端发出的总请求数量
Reading:正在读取客户端请求报文首部的连接数量
Writing:正在向客户端发送响应报文的连接数量
Waiting:正在等待客户端发出请求的空闲进程数

更多Nginx相关教程见以下内容

三、实现“ngx_http_ssl_module”https请求
1、在未修改配置文件之前尝试访问“https://172.18.42.200”

2、修改配置文件
server {
  listen  80;
  server_name  localhost;
  root /www/lweim/;
}
 
server {
  listen  443 ssl;  ##https监听在tcp的443端口
  server_name  localhost;
 
  ssl_certificate    /etc/nginx/ssl/ngx.crt;  ##指明ngx.crt的文件路径
  ssl_certificate_key  /etc/nginx/ssl/ngx.key;  ##指明ngx.key的文件路径
 
  ssl_session_cache  shared:SSL:1m;
  ssl_session_timeout    5m;
 
  ssl_ciphers  HIGH:!aNULL:!MD5;
  ssl_prefer_server_ciphers  on;
 
  location /nginx {
  }
}

Ssl  on | off:是否启用当前虚拟主机的ssl功能
Ssl_ certificate  file:当前虚拟主机使用的PEM格式的证书文件
Ssl_certificate_key  file:当前虚拟机使用的证书文件中的公钥配对的私钥文件路径,依然是PEM格式
Ssl_protocols [SSLv2] [SSLv3] [TLSv1] [TLSv1.1] [TLSv1.2]:表示ssl协议的版本;摩恩为后3个
Ssl_session_cache off | none | [ builtin [ : size ] ]  [ shard : name : size ]:指明ssl会话缓存的机制
  builtin:使用openssl内建的缓存机制,对此机制为各worker独有
  shared:在各个worker进程共享的缓存
name:缓存空间的名称
size:缓存空间的大小以字节为单位,每1MB内存可缓存4000个会话
Ssl_session_time  timeout:ssl会话时长,指ssl  session  cache中缓存条目时长

3、再次访问web

猜你喜欢

转载自www.linuxidc.com/Linux/2016-08/134026.htm