nginx教程


highlight: a11y-dark

一、简介

什么是nginx?

Nginx是一款自由的、开源的、高性能的HTTP服务器和 反向代理 服务器;同时也是一个IMAP、POP3、SMTP代理服务器;Nginx可以作为一个HTTP服务器进行网站的发布处理,另外Nginx可以作为反向代理进行负载均衡的实现。

  • Nginx使用基于事件驱动架构,使得其可以支持数以百万级别的TCP连接
  • 高度的模块化和自由软件许可证使得第三方模块层出不穷(开源)
  • Nginx是一个跨平台服务器,可以运行在Linux,Windows,FreeBSD,Solaris,AIX,Mac OS等操作系统上
  • 稳定性极高
  • nginx解决高并发

nginx解决高并发:
nginx利用多进程+epoll实现高并发,在启动后,会有一个master进程和多个相互独立的worker进程。每个子进程只有一个线程,采用IO的多路复用米星epoll,实现高并发

nginx其他优点:
nginx相比其他web服务器,量级更轻。抗并发,处理请求是异步非阻塞的。编写的模块简单,社区活跃。

二、nginx安装

请参考:https://editor.csdn.net/md/?articleId=126915323

三、nginx配置文件详解

nginx配置文件主要分为三个部分:全局块、events块、http块

  • 全局块:从配置文件开始到events块之间的内容,主要设置一些影响nginx的服务器整体运行的配置,包,括配置运行nginx服务器的用户(组)、运行生成worker procss数,进程pid存放路径、日志存放路径和类型以及配置文件的引入等。
  • events块:events块主要影响nginx服务器与用户的网络连接。比如 worker connections 1024;表示nginx支持的最大连接数。
  • http块:是nginx配置最频繁的部分,代理、缓存和日志定义等绝大部分功能和第三方模块配置都在这里。http块也分为http全局块和server块。http块下面又包含了http全局块和server块。server基本是配置最频繁的地方。

结构图:

...              #全局块
events {
            #events块
   ...
}

http      #http块
{
   
    ...   #http全局块
    server        #server块
    {
    
        ...       #server全局块
        location [PATTERN]   #location块
        {
   
            ...
        }
        location [PATTERN] 
        {
   
            ...
        }
    }
    server
    {
   
      ...
    }
    ...     #http全局块
}

详解详情:

#定义Nginx运行的用户和用户组
user www www;
#
#nginx进程数,建议设置为等于CPU总核心数.
worker_processes 8;
#
#全局错误日志定义类型,[ debug | info | notice | warn | error | crit ]
error_log /var/log/nginx/error.log info;
#
#进程文件
pid /var/run/nginx.pid;
#
#一个nginx进程打开的最多文件描述符数目,理论值应该是最多打开文件数(系统的值ulimit -n)与nginx进程数相除,但是nginx分配请求并不均匀,所以建议与ulimit -n的值保持一致.
worker_rlimit_nofile 65535;
#
#工作模式与连接数上限
events
{
   
    #参考事件模型,use [ kqueue | rtsig | epoll | /dev/poll | select | poll ]; epoll模型是Linux 2.6以上版本内核中的高性能网络I/O模型,如果跑在FreeBSD上面,就用kqueue模型.
    use epoll;
    #单个进程最大连接数(最大连接数=连接数*进程数)
    worker_connections 1024;    #最大连接数,默认为512
}
#
#设定http服务器
http
{
   
    include mime.types; #文件扩展名与文件类型映射表
    default_type application/octet-stream; #默认文件类型
    #charset utf-8; #默认编码
    server_names_hash_bucket_size 128; #服务器名字的hash表大小
    client_header_buffer_size 32k; #上传文件大小限制
    large_client_header_buffers 4 64
  • 1
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值