侧边栏壁纸
博主头像
逢尔Seyu 博主等级

星光不负赶路人,时光不负追梦人

  • 累计撰写 30 篇文章
  • 累计创建 20 个标签
  • 累计收到 2 条评论

目 录CONTENT

文章目录

Nginx基础使用

逢尔Seyu
2023-12-11 / 0 评论 / 0 点赞 / 98 阅读 / 0 字

Nginx概述

nginx是一个开源且高性能、可靠的Http Web 服务、代理服务。

为什么选择Nginx?

  • Nginx非常轻量

  • 功能模块少

  • 代码模块化(易读,便于二次开发,对于开发人员比较友好)

网络模型

  • Select模型

用户发起一次请求,select模型就会进行一次遍历扫描,从而导致性能低下。

  • Epool模型

当用户发起请求,epool模型会直接进行处理,效率高效,并无连接限制。

★ Nginx使用的网络模型

Nginx默认使用Epool 模型

Nginx的典型应用场景

6E8C90D3-2B43-4070-8BD5-F127ACCDB2DD.jpg

Nginx的三种安装方式

  1. 源码编译安装

特点:版本随意 、安装复杂 、升级繁琐 、规范 、便于管理

  1. epel安装

特点: 版本较低 、安装简单 、配置不易读

  1. 官方仓库

特点: 版本较新、安装简单、配置易读

★ Nginx的安装方式

  1. 安装Nginx的依赖

yum install -y gcc gcc-c++ autoconf pcre pcre-devel make automake wget httpd-tools vim tree
  1. 配置官方的yum源

vim /etc/yum.repos.d/nginx.repo

[nginx]
name=nginx repo
baseurl=http://nginx.org/packages/centos/7/$basearch/
gpgcheck=0
enabled=1
  1. 安装Nginx服务

yum install -y nginx
  1. 启动并设置开机自启

systemctl start nginx
systemctl enable nginx

Nginx的常用命令

#查看nginx的版本
nginx -v

#检查nginx的语法是否存在错误
nginx -t

#启动nginx的两种方式
1.systemctl start nginx
2./usr/sbin/nginx

#停止nginx的两种方式
1.systemctl stop nginx
2./usr/sbin/nginx -s stop

#重启nginx
systemctl restart nginx

#nginx重载的两种方式
1.systemctl rload nginx
2./usr/sbin/nginx -s reload

Nginx的相关文件

1.Nginx的主配置文件

路径

类型

作用

/etc/nginx/nginx.conf

配置文件

nginx的主配置文件

/etc/nginx/conf.d/default.conf

配置文件

默认网站配置文件

2.Nginx的代理相关参数文件

路径

类型

作用

/etc/nginx/fastcg_params

配置文件

Fastcgi代理配置文件

/etc/nginx/scgi_params

配置文件

scgi代理配置文件

/etc/nginx/uwsgi_params

配置文件

uwsgi代理配置文件

3.Ngin'x编码相关配置文件

路径

类型

作用

/etc/nginx/win-utf

配置文件

Nginx编码转换映射文件

/etc/nginx/koi-utf

配置文件

Nginx编码转换映射文件

/etc/nginx/koi-win

配置文件

Nginx编码转换映射文件

/etc/nginx/mime.types

配置文件

Content-Type与扩展名

4.Nginx管理相关命令

路径

类型

作用

/usr/sbin/nginx

命令

Nginx命令行管理终端工具

/usr/sbin/nginx-debug

命令

Nginx命令行与终端调试工具

5.Nginx日志相关目录与文件

路径

类型

作用

/var/log/nginx

目录

Nginx默认存放日志目录

/etc/logrotate.d/nginx

配置文件

Nginx默认的日志切割

Nginx主配置文件说明

文件头部

user www;                       #Nginx进程所使用的用户
worker_processes 1;             #Nginx运行的work进程数量(建议与CPU数量一致或auto)
error_log /log/nginx/error.log  #Nginx错误日志存放路径
pid /var/run/nginx.pid          #Nginx服务运行后产生的pid进程号

EventModule(事件驱动模块)

events {            
    worker_connections 25535;   #每个worker进程支持的最大连接数
    use epoll;                  #事件驱动模型, epoll默认
}

http内核模块(HttpCoreModule)

#http层开始
http {
#包含资源类型文件
    include       /etc/nginx/mime.types;
#默认以下载方式传输给浏览器(前提是该资源在mime.types中无法找到)
    default_type  application/octet-stream;
#日志格式
    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  /var/log/nginx/access.log  main;
#高效文件传输
    sendfile        on;
#搭配sendfile使用
    #tcp_nopush     on;
#长连接超时时间
    keepalive_timeout  65;
#是否开启压缩
    #gzip  on;

    #使用Server配置网站, 每个Server{}代表一个网站(简称虚拟主机)
    'server' {
        listen       80;            #监听端口, 默认80
        server_name  oldboy.com;    #提供的域名
        access_log  access.log;     #该网站的访问日志
        #控制网站访问路径
        'location' / {
            root   /usr/share/nginx/html;   #存放网站源代码的位置
            index  index.html index.htm;    #默认返回网站的文件
        }
    }
    ...
    #第二个虚拟主机配置
    'server' {
    ...
    }

    include /etc/nginx/conf.d/*.conf;  #包含/etc/nginx/conf.d/目录下所有以.conf结尾的文件
} #http结束层

http server location扩展了解项

http{}层下允许有多个**Server{}层,一个Server{}层下又允许有多个**Location
http{} 标签主要用来解决用户的请求与响应。
server{} 标签主要用来响应具体的某一个网站。
location{} 标签主要用于匹配网站具体URL路径

0

评论区