一.Nginx的特性和一些知识点

1.基本功能服务器

???? 处理静态文件(静态资源的web),支持 反向代理服务器,支持缓存、负载均衡、支持FastCGI

???? 模块化机制,非DOS机制,支持多种过滤器,如gzip,ssl和用来完成图形大小调整的图像模块

???? 支持SSL

2.扩展功能

????基于名称和IP做虚拟主机

支持keepalive

支持平滑配置更新和程序版本升级

定制访问日志,支持使用日志缓存以提高性能

支持URL rewrite

支持路径别名

支持基于IP和用户的认证

支持速率限制,并发数限制等

3.Nginx 的基本框架

????????一个master,生成一个或多个worker

????????事件驱动:kqueue,epoll,/dev/poll

????????????消息通知:select poll

????????支持sendfile,sendfile64

支持mmap

?

?

4.Nginx 的优点:

????1.在高连接并发的情况下,Nginx是Apache服务器不错的替代品。

????2.Nginx 作为负载均衡服务器:Nginx 可以作为HTTP代理服务器对外进行服务。Nginx采用C进行编写,在系统资源开销还是CPU使用率效果比较好;

????3.作为邮件代理服务器: Nginx 同时也是一个非常优秀的邮件代理服务器;

????4.????Nginx 是一个 [#installation 安装] 非常的简单 , 配置文件 非常简洁(还能够支持perl语法), Bugs 非常少的服务器: Nginx 启动特别容易, 并且几乎可以做到7*24不间断运行,即使运行数个月也不需要重新启动. 你还能够 不间断服务的情况下进行软件版本的升级 .

5.Nginx 的事件模型

????Nginx支持如下处理连接的方法(I/O复用方法),这些方法可以通过use指令指定。

????????????Select 标准方法

????????????Poll标准方法

????????????Kqueue 高效方法。

?

二.Nginx 的配置文件简单介绍

????1.正常运行的必备配置

????????a. user username [groupname]

以那个用户身份运行,可以在配置文件中指定,如果没有指定则以编译时的用户为运行用户

b. pid /path/to/pidfile_name

????????????????指定nginx的pid文件

c. worker_rlimit_nofile #

????????????????指定一个worker进程所能打开的最大句柄数

d. worker_rlimit_sigpending #

????????????????设定每个用户能够发往worker进程的信息的数量

?

????2.优化性能相关的配置

????????a. worker_procrsses #

worker进程的个数,通常其数值应该为cpu的物理核心数减1或2

b. worker_cpu_affinity cpumask .....

用来绑定cpu的,比如

????????????????????????????????worker_processes 4;

???????????????????????????????? worker_cpu_affinity 0001 0010 0100 1000;

????????c. ssl_engine device

在存在ssl硬件加速器的服务器上,指定所使用的ssl硬件加速设备

d. timer_resolution t

每次内核事件调用返回时,都会使用gettimeday()来更新nginx缓存时钟,timer_resloution用来定义每隔多久才会由gettimeday()更新一次缓存时钟,x86-64系统上,gettimeday()代价已经很小,可以忽略此配置

c. worker_priority nice

-20到19之间的整数值,数值越小越优先被调用

?

????????????

????3. 跟事件相关的配置

????????a. accept_mutex on | off

????????????????是否打开nginx的负载均衡器,此锁能够让多个worker轮流地、序列化的与新的客户端请求建立连接;

????????b. lock_file /path/to/lock_file

????????????????锁文件的位置

????????c. accept_mutex_delay #ms

????????????????使用accept锁以后,只有一个worker能取得锁 ,一个worker进程为取得accept锁的等待,即用户建立等待的时间,如果某worker进程在某次试图取得锁时失败了,则至少要等#ms才能再一次请求锁

????????d. multi_accept on | off

????????????????是否允许一次性地响应多个用户请求,默认为off

?

????????????????

三. Nginx安装完毕后,会有响应的安装目录,安装目录里nginx.conf为nginx的主配置文件,

????????nginx主配置文件分为4部分,main(全局配置)、server(主机设置)、

????????upstream(负载均衡服务器设)和location(URL匹配特定位置的设置),

????????这四者关系为:server继承main,location继承server,

????????upstream既不会继承其他设置也不会被继承。

????????

????????接下来分析nginx 的主配置文件的各项参数

????????????首先切换到配置文件中

**************************************************************????

Nginx的main(全局配置段)文件

**************************************************************

?

[[email protected] ~]# vim /etc/nginx/nginx.conf

????user nginx nginx; //指定nginx运行的用户及用户组为nginx,默认为nobody

????worker_processes 2; //开启的进程数,一般跟逻辑cpu核数一致

????error_log logs/error.log notice; //定于全局错误日志文件,级别以notice显示。还有debug、info、warn、error、crit模式,debug输出最多,crit输出最少,更加实际环境而定。

????pid logs/nginx.pid; //指定进程id的存储文件位置

????worker_rlimit_nofile 65535; //指定一个nginx进程打开的最多文件描述符数目,受系统进程的最大打开文件数量限制

????events {

????????use epoll; 设置工作模式为epoll,除此之外还有select、poll、kqueue、rtsig和/dev/poll模式

????????worker_connections 65535; //定义每个进程的最大连接数 受系统进程的最大打开文件数量限制

????}

#**********************************************************************************************

????Nginx的HTTP服务器配置段,Gzip配置。

#************************************************************************************************

????

http {

????*****************************以下是http服务器全局配置*********************************

????????

????default_type application/octet-stream; //核心模块指令,这里默认设置为二进制流,也就是当文件类型未定义时使用这种方式

????//下面代码为日志格式的设定,main为日志格式的名称,可自行设置,后面引用。

????????log_format main ‘$remote_addr - $remote_user [$time_local] "$request" ‘

???????????????????????? ‘$status $body_bytes_sent "$http_referer" ‘

???????????????????????? ‘"$http_user_agent" "$http_x_forwarded_for"‘;

????access_log logs/access.log main; //引用日志main

????client_max_body_size 20m; //设置允许客户端请求的最大的单个文件字节数

????client_header_buffer_size 32k; //指定来自客户端请求头的headebuffer大小

????client_body_temp_path /dev/shm/client_body_temp; //指定连接请求试图写入缓存文件的目录路径

????????large_client_header_buffers 4 32k; //指定客户端请求中较大的消息头的缓存最大数量和大小,目前设置为4个32KB

????????sendfile on; //开启高效文件传输模式

????????tcp_nopush on; //开启防止网络阻塞

????????tcp_nodelay on; //开启防止网络阻塞

????????keepalive_timeout 65; //设置客户端连接保存活动的超时时间

????????client_header_timeout 10; //用于设置客户端请求读取超时时间

????????client_body_timeout 10; //用于设置客户端请求主体读取超时时间

????send_timeout 10; //用于设置相应客户端的超时时间

????//以下是httpGzip模块配置

????#httpGzip modules

????????gzip on; //开启gzip压缩

????????gzip_min_length 1k; //设置允许压缩的页面最小字节数

????????gzip_buffers 4 16k; //申请4个单位为16K的内存作为压缩结果流缓存

????????gzip_http_version 1.1; //设置识别http协议的版本,默认是1.1

????????gzip_comp_level 2; //指定gzip压缩比,1-9 数字越小,压缩比越小,速度越快.

????????gzip_types text/plain application/x-javascript text/css application/xml; //指定压缩的类型

????????gzip_vary on; //让前端的缓存服务器存经过gzip压缩的页面

????

????#nginx的server虚拟主机配置

????#两种方式一种是直接在主配置文件中设置server字段配置虚拟主机,另外一种是使用include字段设置虚拟主机,这样可以减少主配置文件的复杂性。

????

????#*****************************以下是server主机设置*********************************

???????? server {

????????????????listen 80; //监听端口为80

????????????????server_name www.stu21.com; //设置主机域名

????????????????charset gb2312; //设置访问的语言编码

????????????????access_log logs/www.rsyslog.org.access.log main; //设置虚拟主机访问日志的存放路径及日志的格式为main

????????????????location / { //设置虚拟主机的基本信息

????????????????????root sites/www; //设置虚拟主机的网站根目录

????????????????????index index.html index.htm; //设置虚拟主机默认访问的网页

????????????????}

????????????????location /status { // 查看nginx当前的状态情况,需要模块 "--with-http_stub_status_module"支持

????????????????????????stub_status on;

????????????????????????access_log /usr/local/nginx/logs/status.log;

????????????????????????auth_basic "NginxStatus"; }

????????}

?

????????server {

???????????? listen 80;

???????????? server_name www.stu21.com;

???????????? location / {

????????????????????root /nginx/htdocs;

????????????????????index index.html index.htm;

????????????????}

????????????}

????

????}

注解:server段是在http段里的,而location段是在server段里的;

?

????????????
?

????????????
?

????????????

????????????

????????????

时间: 2024-11-10 14:39:54

一.Nginx的特性和一些知识点的相关文章

Nginx优点特性、安装配置、安装目录、配置文件

额外知识点 内网IP: 10.x.x.x 172.16.x.x - 172.31.x.x 192.168.x.x Nginx Web服务应用 Nginx优点: 1.占用资源更少.支持更多并发连接 2.web服务.方向代理.负债均衡.缓存服务 3.安装配置简单.方便.灵活 Nginx特色: A.支持高并发:能支持几万并发连接(特别是静态小文件业务环境) B.资源消耗少:在3万并发连接下,开启10个Nginx线程消耗的内存不到200MB C.可以做到HTTP反向代理及缓存加速,即负载均衡功能,内置对

nginx架构特性及编译安装

一.架构特性 nginx会按需同时运行多个进程:一个主进程(master)和几个工作进程(worker),配置了缓存时还会有缓存加速器进程(cache loader)和缓存管理器进程(cache manager)等,所有进程是仅含有一个线程,并主要通过"共享内存"的机制实现进程间通信,主进程以root用户身份运行,而worker.cacher loader和cache manager均应以非特权用户身份运行. 主进程主要完成如下工作: 读取并验证配置信息: 创建.绑定及关闭套接字: 启

nginx基础特性及编译安装

Nginx介绍 Nginx("engine x")是一个高性能的http和反向代理服务,也是一个IMAP/POP3/SMTP代理服务器.由lgorsysoev为俄罗斯访问量第二的Rambler.ru站点开发.Nginx因为它的稳定性,丰富的功能及低内存消耗等特性而闻名,目前国内各大门户网站已经部署了Nginx,如新浪网易,腾讯等. 一.Nginx特性: (1)模块化设计,较好的扩展性 (2)高可靠性 master主控进程-->worker子进程,缓存加载 (3)低内存消耗 (4)

Nginx初次学习三个知识点记录

1.Nginx是用来解决负载均衡问题的,它可以将请求均衡的发放到集群的每一个节点,但是使用者又拥有极大的控制权,通俗来讲就是你既可以让请求均衡发放,也可以指定哪些服务器接收更多的请求.更多的时候是用在集群服务器性能高低不一,希望性能高的服务器接收更多的请求. 2.当我们真正使用到Nginx时,就一定会涉及到集群分布式.而老生常谈的一个问题就是分布式情况下如何解决Session共享问题?我们不可能将其存在集群中的一台服务器上,其他服务器就会出现Session丢失的问题.同时还要保证Session的

编译安装nginx+LNMP+特性

一.安装Nginx: 1.解决依赖关系 # yum groupinstall "Development Tools" "Server Platform Deveopment" -y && yum install openssl-devel pcre-devel -y 2.安装 首先添加用户nginx,实现以之运行nginx服务进程: # groupadd -r nginx # useradd -r -g nginx nginx 3.下载源码包并解压

PHP利用Apache、Nginx的特性实现免杀Webshell

环境 函数 用法 nginx get_defined_vars() 返回由所有已定义变量所组成的数组 apache getallheaders() 获取全部 HTTP 请求头信息 apache环境 1 2 3 <?php eval(next(getallheaders())); ?> apache和nginx环境通用 1 2 3 <?php eval(implode(reset(get_defined_vars()))); ?> 另外一种通过执行伪造的sessionid值,进行任意

1.Nginx的基本特性及编译安装

对于一款应用程序,首先需要了解其功能,要知道这款程序是用来做什么的?然后怎么用? Nginx的功能: 1.静态资源的web服务器 2.支持对于HTTP,SMYP,POP3,IMAP协议的反向代理 3.支持FastCGI,uwSGI等协议与应用程序服务器结合 Nginx的特性(为什么要选择Nginx): 1.基于事件驱动IO模型,支持AIO 2.高可靠性(master派生worker进程响应用户请求) 3.低内存消耗 4.支持热部署(包括配置文件,软件版本升级都可以不停机实现) Nginx的架构:

nginx特性及基本配置

Nginx全称为engine x,由于调用了libevent这个高性能的网络库,使得nginx的性能相对于其他web服务更加强悍.它还支持事件驱动机制.异步I/O.支持内存映射等这些比较高效的功能. Nginx的特性: 扩展性:nginx是模块化设计,有比较好的扩展性,但是nginx中的模块不支持动态装卸载,只能在扩展的时候直接静态编译进nginx中,随着nginx的启动而启动. 高可靠性,这种高可靠性是由于nginx的工作机制所实现的,nginx在工作时首先提供一个主控进程,这个主控进程并负责

Nginx 安装 和 特性介绍

一:nginx 环境搭建 四项确认 确认系统网络可通行 确认yum可用 确认关闭iptables规则 确认停用selinux 查看iptables规则 iptables -L 关闭iptables规则 iptables -F 获得当前selinux状态 getenforce 关闭selinux setenforce 0 两项依赖安装 yum install -y gcc gcc-c++ autoconf pcre pcre-devel make automake yum install -y w