day 46 Nginx(1)

一、nginx基本简述

nginx是一个开源且高性能、可靠的http web服务、代理服务
开源:直接获取源代码
高性能:支持海量并发
可靠:服务可靠

nginx 功能:

1.web服务器 (http请求 http响应)
2.nginx 负载均衡
3.nginx缓存

三、nginx VS apche

nginx 异步模型 epoll
apche 同步模型 select

四、nginx的yum安装

1.安装Nginx软件所需依赖包

 yum install -y gcc gcc-c++ autoconf pcre pcre-devel make automake wget httpd-tools vim tree

2.配置nginx源:

vim /etc/yum.repos.d/nginx.repo
[nginx]
name=nginx repo
baseurl=http://nginx.org/packages/centos/7/$basearch/
gpgcheck=0
enabled=1
[root 10:37:48 @web01 ~]# yum repolist 
Loaded plugins: fastestmirror
Loading mirror speeds from cached hostfile
 * base: mirrors.aliyun.com
 * extras: mirrors.aliyun.com
 * updates: mirrors.aliyun.com
nginx                                                                              | 2.9 kB  00:00:00     
nginx/x86_64/primary_db                                                            |  46 kB  00:00:00     
repo id                            repo name                                                        status
base/7/x86_64                      CentOS-7 - Base - mirrors.aliyun.com                             10,019
epel/x86_64                        Extra Packages for Enterprise Linux 7 - x86_64                   13,221
extras/7/x86_64                    CentOS-7 - Extras - mirrors.aliyun.com                              409
nginx/x86_64                       nginx repo                                                          152
updates/7/x86_64                   CentOS-7 - Updates - mirrors.aliyun.com                           1,982
repolist: 25,783
[root 10:38:21 @web01 ~]# yum list nginx
Loaded plugins: fastestmirror
Loading mirror speeds from cached hostfile
 * base: mirrors.aliyun.com
 * extras: mirrors.aliyun.com
 * updates: mirrors.aliyun.com
Available Packages
nginx.x86_64                                   1:1.16.0-1.el7.ngx            

3.安装nginx

[root 10:41:03 @web01 ~]# yum install -y nginx

4.查看nginx的相文件

[root 10:41:35 @web01 ~]# rpm -ql nginx
/etc/logrotate.d/nginx      //nginx 日志切割的配置文件
    /etc/nginx
        /etc/nginx/conf.d
        /etc/nginx/conf.d/default.conf  //与nginx.conf 一样
        /etc/nginx/fastcgi_params
        /etc/nginx/koi-utf
        /etc/nginx/koi-win
        /etc/nginx/mime.types           //媒体类型 (http协议中的文件类型)
        /etc/nginx/modules
        /etc/nginx/nginx.conf   //nginx主配置文件
        /etc/nginx/scgi_params
        /etc/nginx/uwsgi_params
        /etc/nginx/win-utf
/etc/sysconfig/nginx                //systemctl 管理 nginx的使用的文件

/etc/sysconfig/nginx-debug
/usr/lib/systemd/system/nginx-debug.service     
/usr/lib/systemd/system/nginx.service       // systemctl 管理nginx(开、关、重启、reload) 配置文件

/usr/lib64/nginx
/usr/lib64/nginx/modules
/usr/libexec/initscripts/legacy-actions/nginx
/usr/libexec/initscripts/legacy-actions/nginx/check-reload
/usr/libexec/initscripts/legacy-actions/nginx/upgrade
/usr/sbin/nginx     //nginx命令
/usr/sbin/nginx-debug
/usr/share/doc/nginx-1.16.0
/usr/share/doc/nginx-1.16.0/COPYRIGHT
/usr/share/man/man8/nginx.8.gz
/usr/share/nginx
/usr/share/nginx/html
/usr/share/nginx/html/50x.html
/usr/share/nginx/html/index.html
/var/cache/nginx
/var/log/nginx

5.nginx -t 检查语法

[root 11:15:26 @web01 html]# nginx -t
nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
nginx: configuration file /etc/nginx/nginx.conf test is successful
[root 11:15:31 @web01 html]# 

6.nginx 配置文件

user  nginx;            //指定nginx进程属于用户nginx
worker_processes  1;        //worker进程数量 所有核心数 或*2

error_log  /var/log/nginx/error.log warn;   //指定错误日志 warn日志格式/只显示警告信息
pid        /var/run/nginx.pid;          //pid文件

events {                                    //events模块(区域)
    worker_connections  1024;       //每个进程最大连接数量
}

http {                                          //http区域
    include       /etc/nginx/mime.types;        //媒体类型  http协议中的文件类型
    default_type  application/octet-stream;
                                                                            //定义nginx访问日志的格式
    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;             //开启高效的传输模式
    #tcp_nopush     on;

    keepalive_timeout  65;      //超时时间

    #gzip  on;

    server {
        listen       80;                //指定监听端口
        server_name  localhost; //域名
    
        #charset koi8-r;
        #access_log  /var/log/nginx/host.access.log  main;
    
        location / {
            root   /usr/share/nginx/html;   //root 指定站点目录
            index  index.html index.htm;        //首页文件(默认展示的文件)
        }
}

6.nginx的其他安装方式

  • yum安装

epel源
nginx官方源 --nginx最新稳定版

  • rpm包
  • 编译安装

./configure
make
make install

五、Nginx核心配置

1.nginx日志格式

        log_format
            指定nginx日志格式
        access_log
            开启日志 指定目录文件
            access_log /var/log/nginx/access_www-gzip.log main gzip buffer=16k flush=5s
            buffer=16k
            flush=5s
            gzip

2.nginx配置文件切割

include文件包含(引用)

3.nginx状态模块及权限控制

状态模块
权限控制

六、虚拟主机的常见类型

1.认识

1个虚拟主机 相当于1个网站
nginx中多个server标签

2.nginx相关错误的解决方法

    ping 域名
    curl 域名(nginx服务)
    nginx配置 及检查语法 与reload

3.虚拟主机

    基于域名的虚拟主机(必备)
        不同的域名访问不同虚拟主机(网站)
    基于端口虚拟主机
        不同的端口访问不同的虚拟主机
        80 443
        网站使用特殊端口
    基于ip虚拟主机
        负载均衡
        不同的ip地址访问不同的虚拟主机
    nginx处理用户请求过程
        http://nginx.org/en/docs/http/request_processing.html
        nginx配置中 指定的端口
        是否有 想要的域名(host)
            如果有 使用这个主机
            如果没有 则使用虚拟的主机(默认第一个)

你可能感兴趣的:(day 46 Nginx(1))