首页 >后端开发 >php教程 >关于Nginx的基础内容

关于Nginx的基础内容

不言
不言原创
2018-05-07 10:57:351423浏览

这篇文章主要介绍了关于Nginx的基础内容,有着一定的参考价值,现在分享给大家,有需要的朋友可以参考一下

Nginx-基础篇

一、环境:

  • 系统硬件:CPU>=2Core,内存>=256M

  • 操作系统:CentOS 7.2 x64


二、环境调试确认:

1、四个确认

  1. 确认系统网络

  • ping www.baidu.com

  • 确认yum可用

    • yum list

  • 确认关闭iptables规则

    • iptables -L(查看是否有iptables规则)

    • iptables -F(关闭规则)

    • iptables -t nat -L(查看net表里有没有规则)

    • 如果net表中有规则可以执行:iptables -t nat -F

  • 确认停用selinux

    • getenforce(查看selinux是否开启)

    • setenforce 0 (关闭selinux)

    2、两项安装

    • 安装gcc等:

      • yum -y install gcc gcc-c++ autoconf pcre pcre-devel make automake

    • 安装基本工具:

      • yum -y install wget httpd-tools vim

    3、一次初始化

    • cd /opt;mkdir app download logs work backup

      • app:代码目录

      • download:网上下载的源码包

      • logs:自定义日志

      • work:shell脚本

      • backup:备份


    三、什么是Nginx:

    Nginx是一个开源且高性能、可靠的HTTP中间件、代理服务。

    四、Nginx优势:

    1. IO多路复用epoll

    2. 轻量级

    • 功能模块少

    • 代码模块少

  • CPU亲和(affinity)

    • 把CPU核心和Nginx工作进程绑定,把每个worker进程固定在一个cpu上执行,减少切换cpu的cache miss,获得更好的性能。

  • sendfile

    • 把文件的传输只通过 kernel space传输给用户,不经过 user space


    五、Nginx的快速安装

    1. 进入官网 http://nginx.org/

    2. 点击 download

    3. 点击 Linux packages for stable version

    4. 修改/etc/yum.repos.d/nginx.repo,并添加官网指定内容

    注意:baseurl需要修改OS和OSRELEASE为你对应的服务器版本
    1. 直接 yum install nginx

    2. nginx -v 出现nginx的版本信息说明安装成功!


    六、Nginx的目录和配置语法

    • rpm -ql nginx:可以查询nginx安装的文件

    • 目录

      • /etc/logrotate.d/nginx:配置文件,Nginx日志轮转,用于logrotate服务的日志切割

      • /etc/nginx、/etc/nginx/nginx.conf、/etc/nginx/conf.d、/etc/nginx/conf.d/default.conf:目录、配置文件,Nginx主配置文件

      • /etc/nginx/fastcgi_params、/etc/nginx/uwsgi_params、/etc/nginx/scgi_params:配置文件,cgi配置相关,fastcgi配置

      • /etc/nginx/koi-utf、/etc/nginx/koi-win、/etc/nginx/win-utf:配置文件,编码转换映射转化文件

      • /etc/nginx/mime.types:配置文件,设置http协议的Content-Type与扩展名对应关系

      • /usr/lib/systemd/system/nginx-debug.service、/usr/lib/systemd/system/nginx.service、/etc/sysconfig/negix、/etc/sysconfig/negix-debug:配置文件,配置守护进程管理器的管理方式

      • /usr/lib64/nginx/modules、/etc/nginx/modules:目录,Nginx模块目录

      • /usr/sbin/nginx、/usr/sbin/nginx-debug:命令,Nginx服务的启动管理的终端命令

      • /var/cache/nginx:目录,Nginx的缓存目录

      • /var/log/nginx:目录,Nginx的日志目录

    • nginx -V:

    • 编译参数

      • --with-http_stub_status_module

      • --with-http_sub_module

      • --with-http_random_index_module

      • --with-ld-opt=parameters

      • --with-cc-opt=parameters

      • --user=nginx

      • --group=nginx

      • --http-client-body-temp-path=/var/cache/nginx/client_temp

      • --http-proxy-temp-path=/var/cache/nginx/proxy_temp

      • --http-fastcgi-temp-path=/var/cache/nginx/fastcgi_temp

      • --http-uwsgi-temp-path=/var/cache/nginx/uwsgi_temp

      • --http-scgi-temp-path=/var/cache/nginx/scgi_temp

      • --prefix=/etc/nginx

      • --sbin-path=/usr/sbin/nginx

      • --modules-path=/usr/lib64/nginx/modules

      • --conf-path=/etc/nginx/nginx.conf

      • --error-log-path=/var/log/nginx/error.log

      • --http-log-path=/var/log/nginx/access.log

      • --pid-path=/var/run/nginx.pid

      • --lock-path=/var/run/nginx.lock

      • 安装目的目录或路径

      • 执行对应模块时,nginx所保留的临时性文件

      • 设定nginx进程启动的用户和用户组

      • 设置额外的参数将被添加到CFLAGS变量

      • 设置附加的参数,链接系统库

      • 目录中随机选择一个主页

      • HTTP内容替换

      • Nginx的客户端状态

    • Nginx默认配置语法

      • worker_connections:每个进程允许最大连接数

      • use:工作进程数

      • user:设置nginx服务的系统使用用户

      • worker_processes:工作进程数(最好跟cpu的数量保持一致)

      • error_log:nginx的错误日志

      • pid:nginx服务启动的pid

      • events:


    七、Nginx日志类型

    1. 包括了:error.log和access.log

    2. 通过nginx.conf配置文件中log_format来定义要记录的变量格式来记录日志

    3. 可以被记录到日志中的变量

    • Nginx内置

    • arg_PARAMETER:request请求的参数

    • http_HEADER:request请求的header

    • sent_http_HEADER:服务端返回的header

    • HTTP请求变量

    • 内置变量

    • 自定义变量


    八、Nginx模块

    nginx -tc /etc/nginx/nginx.conf:查询配置文件语法是否正确
    nginx -s reload -c /etc/nginx/conf:重启
    1. http_stub_status_module(展示Nginx相关信息)

    • 配置语法:stub_status

    • 默认:无

    • Context:server,location

  • random_index_module

    • 配置语法:random_index on|off

    • 默认:random_index off

    • Context:location

  • http_sub_module

    • default:sub_filter_once on

    • on:只匹配第一个,off:全局匹配

    • default:sub_filter_last_modified off

    • default:无

    • string:需要被替换的字符串

    • replacement:替换的字符串

    • sub_filter string replacement

    • sub_filter_last_modified on|off

    • sub_filter_once on|off

    注意:上述的Context:http,server,location
    1. limit_conn_module(连接频率限制)

    • 配置语法:limit_conn zone number

    • 默认:无

    • Context:http,server,location

    • 配置语法:limit_conn_zone key zone=name:size

    • 默认:无

    • Context:http

    • limit_conn_zone

    • limit_conn

  • limit_req_module(请求频率限制)

    • 配置语法:limit_req zone=name [brust=number] [nodelay]

    • 默认:无

    • Context:http,server,location

    • 配置语法:limit_req_zone key zone=name:size rate=rate

    • 默认:无

    • Context:http

    • limit_req_zone

    • limit_req

  • http_access_module(基于IP的访问控制)

    • 配置语法:deny address|CIDR(网段)|unix:|all;

    • 默认:无

    • Context:http,server,location,limit_except

    • 配置语法:allow address|CIDR(网段)|unix:|all;

    • 默认:无

    • Context:http,server,location,limit_except

    • allow

    • deny

    局限性:通过代理访问会失效

    • 可以使用http_x_forwarded_for

    • 结合geo模块

    • 通过http自定义变量传递

    1. http_auth_basic_module(基于用户的信任登录)

    • 配置语法:auth_basic_user_file filePath

    • 默认:无

    • Context:http,server,location,limit_except

    • 配置语法:auth_basic string | off;

    • 默认:无

    • Context:http,server,location,limit_except

    • auth_basic

    • auth_basic_user_file

    注意:file的格式是指定的,生成密码可以使用httpd-tools
    命令htpasswd -c filePath username


    以上是关于Nginx的基础内容的详细内容。更多信息请关注PHP中文网其他相关文章!

    声明:
    本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn