Nginx介绍

官网:https://tengine.taobao.org

Nginx (engine x)是一个高性能的HTTP和反向代理服务,也是一个IMAP/POP3/SMTP服务。Nginx是由伊戈尔:赛索耶夫为俄罗斯访问量第二的Rambler.u站点(俄文:Paw6nep)开发的,第一个公开版本0.1.0发布于2004年10月4日。

其将源代码以类BSD许可证的形式发布,因它的稳定性、丰富的功能集、示例配置文件和低系统资源的消耗 而闻名.2011年6月1日,nginx 1.0.4发布。

Nginx是一款轻量级的Web 服务器/反向代理服务器及电子邮件(IMAP/POP3)代理服务器,并在一个BSD-like 协议下发行。其特点是占有内存少,并发能力强,事实上nginx的并发能力确实在同类型的网页服务器中表现较好,中国大陆使用nginx网站用户有:百度、京东、新浪、网易、腾讯、淘宝等。

文档:https://tengine.taobao.org/book/

Nginx特点

优点

  • 高并发量:基于 epoll/kqueue 模型开发,支持高并发量,官方说其支持高达 5w 并发连接数的响应
  • 内存消耗少:善于处理静态文件,相较于其他web(比如:apache),占用更少的內存及资源
  • 简单稳定:配置简单(一个conf文件),运行简单(nginx命令),而且运行稳定
  • 模块化程度高:功能模块插件化设计,可以自由配置相应的功能。
  • 支持Rwrite重写规则:能够根据域名、URL等请求关键点,实现定制化的高质量分发。
  • 低成本:Nginx的负载均衡功能很强大而且免费开源,相较于几十万的硬件负载均街器成本相当低,
  • 支持多系统:Nginx代码完全用C语言从头写成,可以在各系统上编译并使用。

缺点

  • 动态处理差:nginx善于处理静态文件,但是处理动态页面相较于Apache之类重量级的web软件能力稍欠缺。
  • rewrite弱:虽然nginx支持rewrite功能多,但是相较于Apache之类童量级的web软件能力稍欠缺。

安装Nginx软件

sudo apt-get install nginx -y

浏览器查看:http://114.55.225.100/

nginx开启(停止)命令

systemctl start | stop | reload ...nginx

nginx相关命令

指令 说明
nginx -V 配置参数
nginx -v 版本信息
nginx -s stop 停止nginx
nginx -s reload 重启nginx
nginx -t 检查默认配置文件
Nginx -t -c file conf 检查指定配置文件

nginx移除相关命令

查看和nginx相关的软件

dpkg --get-selections | grep nginx

移除nginx,包括相关文件

apt-get --purge remove nginx

apt-get --purge remove nginx-common

apt-get --purge remove nginx-core

nginx配置

安装目录介绍

路径 介绍
/etc/nginx/ root家目录
/etc/nginx/nginx.conf nginx主配置文件,启动时会读取nginx.conf文件
/var/log/nginx 日志目录
/var/www/html 默认网站目录

配置信息介绍

echo

我们来看一个示例配置:

user  nobody;
worker_processes  1;
error_log  logs/error.log  info;

events {
    worker_connections  1024;
}

http {
    server {
        listen          80;
        server_name     www.linuxidc.com;
        access_log      logs/linuxidc.access.log main;
        location / {
            index index.html;
            root  /var/www/linuxidc.com/htdocs;
        }
    }

    server {
        listen          80;
        server_name     www.Androidj.com;
        access_log      logs/androidj.access.log main;
        location / {
            index index.html;
            root  /var/www/androidj.com/htdocs;
        }
    }
}

mail {
    auth_http  127.0.0.1:80/auth.php;
    pop3_capabilities  "TOP"  "USER";
    imap_capabilities  "IMAP4rev1"  "UIDPLUS";

    server {
        listen     110;
        protocol   pop3;
        proxy      on;
    }
    server {
        listen      25;
        protocol    smtp;
        proxy       on;
        smtp_auth   login plain;
        xclient     off;
    }
}

全局配置段

主要是全局性的和服务级别的属性配置,常见的主要有以下几种设置

配置选项 说明
user 设置使用用户
worker_processed 进行增大并发连接数的处理 跟cpu保持一致 八核设置八个
error_log nginx的错误日志
pid 服务启动时候的pid
enents 定义事件相关的属性
--------- workerconnections 一个进程允许处理最大连接数
---------- user 定义使用的内核模型

http配置段

配置选项 说明
include mime.types 文件扩展名与文件类型映射表
default type application/octet-stream 默认文件类型
sendfile on 开启目录列表访问,适合下载服务器,默认关闭
tcp_onpush on 防止网络阻塞
tcp_nodelay on 防止网络阻塞
keepalive timeout 120 长连接超时时间,单位是秒
gzip on 开启gzip压维输出
server {
  server_name 192.168.19.130;
  listen 80;
  root /var/www/html
  index index.html 
}

server配置段最重要的属性是listen和server_name。它们都是用于匹配并处理请求的。

listen属性

作用:定义Server监听的ip和port,当ip/port匹配时候才进行下一步匹配

表现形式:

形式 描述 示例 完整示例
IP:Port 地址精确表示样式 listen 10.10.10.10:99 listen 10.10.10.10:99
IP 自动监听IP:80地址 listen 10.10.10.10 listen 10.10.10.10:80
Port 自动监听全地址:Port listen 99或[::]:99 listen 0.0.0.0:99
default_server 自动使用默认地址 listen default_server listen localhost:80

使用原则:

​ 首先将所有样式补全成IP:Port,然后匹配,匹配Server多,那么接着使用Server _name匹配

server_name属性

作用:定义server监听的域名,当域名匹配的时候才进行下一步操作

表现形式:

格式 完整样式 前缀正则样式 后缀正则样式 禁止非法域名或IP
形式 www.example.com *.example.com www.example.* _

使用原则:

优先使用完整样式,然后使用前缀正则样式,最后使用后缀正则样式,如果正则样式相同的时候,匹配最长,否则就走非法现则。

非法域名/IP,表示请求该主机上一个不存在的IP域名

root属性

作用:定义server相应请求的html文件的所在路径

表现形式:

root /var/www/html

index属性

作用:定义响应请求返回的文件名称或格式

表现形式:

index index.html index.htm index.nginx-debian.html;

实例

  1. 在/etc/nginx/conf.d 目录下创建server.conf配置文件

    server {
      # 监听端口
      listen 7000;
      # 匹配域名
      server_name 192.168.19.130;
      # 根路径
      # root /var/www/html;
      # 默认显示页面
       # index index.html index.htm index.nginx-debian.html;
      # 第二种写法
      location / {
        root /var/www/html;
        index index.html index.htm index.nginx-debian.html;
      }
    }
    
  2. 检查nginx配置后重载服务

    nginx -t
    systemctl reload nginx
    
  3. 部署https证书

    # 步骤 1: 安装 Certbot 和 Nginx 插件
    apt update
    apt install certbot python3-certbot-nginx
    # 步骤 2: 获取 SSL 证书
    certbot --nginx -d www.mayanliang.cn
    # 接下来填写邮箱回车键一直点y就可以了
    # 证书保存在:/etc/letsencrypt/live/www.mayanliang.cn/fullchain.pem
    # 密钥保存在:/etc/letsencrypt/live/www.mayanliang.cn/privkey.pem
    

results matching ""

    No results matching ""