Nginx之基本介绍(一)

这是一篇介绍Nginx基本信息和配置文件详情的文章,适合入门者,如果你想深入了解Nginx请绕道

什么是Nginx?

  Nginx是轻量级,高性能,跨平台的web服务器

Nginx的特点

  • 更快

    • 单个请求的响应速度更快
    • 在高并发时,Nginx比其他的web服务器具有更快的响应速度  
  • 高扩展性

  Nginx是由不同具有低耦合模块组成的,这使得他具备支持大量第三方模块的特点

  • 高可靠性(健壮性)

  依赖于其和新框架代码的优秀设计和模块设计的简单性;当一个worker进程出错时,master管理进程会快速的拉起新的worker子进程提供服务

  • 低内存消耗

  体现在10000个非活跃的http keep-alive的连接在Nginx中紧消耗2.5M

  • 单机支持十万以上并发

  Nginx支持的并发连接上限取决于内存,但是十万原未封顶;能够及时的处理更多的并发请求时业务特点紧密相关的

  实现原理:

  • 热部署

  master管理进程和worker工作进程的分离设计,使得Nginx能够支持热部署,也就是说在不间断的服务的前提下,升级Nginx的可执行文件,更新配置项和更换日志文件

  • 支持bsd协议

  也就是不只是支持免费试用nginx还允许用户在自己的项目中直接使用和修改源码

linux服务器中nginx命令

  • 启动   /usr/local/nginx/sbin/nginx     如果nginx.config不是在默认路径下,请参考:/usr/local/nginx/sbin/nginx  -c /tmp/nginx.conf
  • 停止   
    • /usr/local/nginx/sbin/nginx -s stop    注意.pid文件一定是默认的,如果.pid文件不是默认路径就需要在-s前加上-g"pid /var/nginx/test.pid"
    • /usr/local/nginx/sbin/nginx -s quit   这种方式会等到Nginx正常处理完所有的请求后在停止服务
  • 测试配置文件  
    • /usr/local/nginx/sbin/nginx -t
    • 使用-v显示Nginx的版本信息
    • 使用-V展示的版本信息更多
  • 重启  /usr/local/nginx/sbin/nginx -s reload
  • 日志文件回滚  /usr/local/nginx/sbin/nginx -s reopen

Nginx进程之间的关系

  Nginx支持单进程。使用master-worker方式配置同时启动多个线程 ,但是master进程不会对用户的请求提供服务,只用于管理worker进程,而 worker进程才会真正处理用户的请求。

  worker简称基本介绍:

    • worker进程的数量和服务器的cpu核心数相等
    • worker进程之间通过共享内存和原子操作等一些进程间的通信机制来实现 负载均衡
    • 多个worker同时提供服务不但能够提高服务的健壮性,而且可以充分利用smp多核框架实现多核并发处理

Nginx的nginx.config文件介绍

以下是nginx.config文件的基本内容:

########### 每个指令必须有分号结束。#################
#user administrator administrators;    #配置用户或者组,默认为nobody nobody。
#worker_processes 2;    #允许生成的进程数,默认为1
#pid /nginx/pid/nginx.pid;    #指定nginx进程运行文件存放地址

error_log logs/error.log debug;    #制定日志路径,级别。这个设置可以放入全局块,http块,server块,级别以此为:debug|info|notice|warn|error|crit|alert|emerg

events {
  accept_mutex on;    #设置网路连接序列化,防止惊群现象发生,默认为on
  multi_accept on;    #设置一个进程是否同时接受多个网络连接,默认为off
  #use epoll;   #事件驱动模型,select|poll|kqueue|epoll|resig|/dev/poll|eventport
  worker_connections 1024;    #最大连接数,默认为512
}

http {
  include mime.types; #文件扩展名与文件类型映射表
  default_type application/octet-stream;   #默认文件类型,默认为text/plain
  #access_log off;   #取消服务日志
  log_format myFormat ‘$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 myFormat;    #combined为日志格式的默认值
  sendfile on;    #允许sendfile方式传输文件,默认为off,可以在http块,server块,location块。
  sendfile_max_chunk 100k;    #每个进程每次调用传输数量不能大于设定的值,默认为0,即不设上限。
  keepalive_timeout 65;    #连接超时时间,默认为75s,可以在http,server,location块。

upstream web-test {
  server 127.0.0.1:8080;
  # server 192.168.10.121:3333 backup;       #热备
}

error_page 404 https://www.baidu.com;      #错误页

server {
  keepalive_requests 120;   #单连接请求上限次数。
  listen 80;    #监听端口
  server_name web.test.com;   #监听地址
  location ~*^.+$ {   #请求的url过滤,正则匹配,~为区分大小写,~*为不区分大小写。
    #root /;   #根目录
    #index vv.txt;    #设置默认页
    proxy_pass http://web-test;   #请求转向mysvr 定义的服务器列表
    #deny 127.0.0.1;    #拒绝的ip
    #allow 172.18.5.54;   #允许的ip
  }
}

#访问本地文件
server {
  listen 80;
  server_name babaike.kuangxiang.com;
  default_type ‘text/html‘;
  autoindex on;
  charset utf-8;
  index index.html index.htm;
  location / {
    root D:/babaike;
    rewrite ^(.*)\.(.*)!(.*)$ $1_$3.$2 break;
  }
  error_page 500 502 503 504 /50x.html;
  location = /50x.html {
    root D:/dev/git/static/uxuexi/error;
  }
}

#动静分离时使用
server {
  listen 80;
  server_name static.uxuexi.com;
  charset utf-8;
  index index.html;
  location / {
    root D:/dev/git/static/uxuexi;
    rewrite ^(.*)\.(.*)!(.*)$ $1_$3.$2 break;
  }
  error_page 500 502 503 504 /50x.html;
  location = /50x.html {
    root D:/dev/git/static/uxuexi/error;
  }
}

}

时间: 2024-12-26 00:36:16

Nginx之基本介绍(一)的相关文章

nginx web日志介绍和分析

nginx web日志介绍和分析 Nginx访问日志打印的格式可以自定义,例如Nginx日志打印格式配置如下,Log_format 用来设置日志格式,Name(模块名) Type(日志类型),可以配置多个日志模块,分别供不同的虚拟主机日志记录所调用: log_format log_format  main  '$remote_addr - $remote_user [$time_local] "$request" '                   '$status $body_b

LNMP架构应用实战——Nginx服务配置文件介绍

LNMP架构应用实战--Nginx服务配置文件介绍 nginx的配置文件比较简单,但功能相当强大,可以自由灵活的进行相关配置,因此,还是了解下其配置文件的一此信息 1.Nginx服务目录结构介绍 安装完成后,在安装路径下就会有Nginx目录信息 [[email protected] application]# tree nginx nginx +-- client_body_temp +-- conf          #nginx服务配置文件目录 |   +-- fastcgi.conf  

Nginx的一些介绍

Apache服务器:http://httpd.apache.org,世界上用的最多的服务器,开放源代码,支持跨平台,可移植性,模块支持丰富,虽速度和性能及内存消耗不及其他轻量级Web服务器,但是属于重量级产品. Lighttpd服务器:http://www.lighttpd.net,德国人写的开源软件,内存开销低,CPU占用率低,效能好,模块丰富,与Nginx同属轻量级Web服务器,是Nginx竞争对手之一. IBM WebSphere服务器:http://www.ibm.com/develop

一、Nginx的基础介绍

nginx简介 1.常用来提供静态Web服务的软件有如下三种: Apache:  这是中小型Web服务的主流,Web服务器中的老大哥. Nginx:    大型网站Web服务的主流,曾经Web服务器中的初生牛犊,现已长大. Nginx的分支Tengine(http://tengine.taobao.org/)目前也在飞速发展. Lighttpd: 这是一个不温不火的优秀Web软件,社区不活跃,静态解析效率很高. 在Nginx流行前,它是大并发静态业务的首选,国内百度贴吧.豆瓣等众多网站都有Lig

Nginx常用命令介绍

Nginx常用命令 Nginx PID位置 /var/run/nginx.pid Nginx关闭 Nginx支持以下几种信号控制: - TERM, INT 快速关闭 - QUIT 从容关闭 - HUP 平滑重启 - USR1 重新打开日志文件,在切割文件时用处大 - USR2 平滑升级 - WINCH 从容关闭工作进程 #从容停止Nginx ? kill -QUIT master进程号 ? #快速停止Nginx ? kill -TERM master进程号 ? #强制停止Nginx ? kill

Nginx编译配置介绍

源码包 nginx-1.6.2.tar.gz --help 使用帮助 --prefix=PATH Nginx安装路径,如果没有指定,默认为/usr/local/nginx. --sbin-path=PATH Nginx可实行文件安装路径.只能安装时指定,如果没有指定,默认为<prefix>/sbin/nginx. --conf-path=PATH Nginx主配置文件nginx.conf的路径,如果没有指定,默认为<prefix>/conf/nginx.conf. --error-

实战Nginx:Nginx的一些介绍

------------------------------------------------------------------------------------------------ 首先列一些常用的Web服务器=> Apache服务器:http://httpd.apache.org,世界上用的最多的服务器,开放源代码,支持跨平台,可移植性,模块支持丰富,虽速度和性能及内存消耗不及其他轻量级Web服务器,但是属于重量级产品. Lighttpd服务器:http://www.lighttp

nginx + iis 使用介绍

1.下载 nginx 2.配置nginx 文件 1)配置该目录下E:\nginx\nginx-1.9.3\conf: #user nobody; worker_processes 1; #error_log logs/error.log; #error_log logs/error.log notice; #error_log logs/error.log info; #pid logs/nginx.pid; events { worker_connections 1024; } http {

Nginx的配置介绍

配置文件分两部分: main主配置段 http基本配置段 语法格式,配置指令要以分号结尾: directive value1 [value2..]; 支持使用变量: 模块内置变量 自定义变量 set var_name value 主配置段的指令的类别: 用于调试,定位问题 正常运行必备的配置 优化性能的配置 事件相关的配置   用于调试,定位问题的指令: 1,daemon [off|on] 是否以守护进程方式启动nginx,默认为on 2,master_process on |off 是否以ma