关于Nginx的基础内容
Nginx-基础篇
一、环境:
系统硬件:CPU>=2Core,内存>=256M
操作系统:CentOS 7.2 x64
二、环境调试确认:
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优势:
IO多路复用epoll
轻量级
功能模块少
代码模块少
CPU亲和(affinity)
把CPU核心和Nginx工作进程绑定,把每个worker进程固定在一个cpu上执行,减少切换cpu的cache miss,获得更好的性能。
sendfile
把文件的传输只通过 kernel space传输给用户,不经过 user space
五、Nginx的快速安装
进入官网 http://nginx.org/
点击 download
点击 Linux packages for stable version
修改/etc/yum.repos.d/nginx.repo,并添加官网指定内容
注意:baseurl需要修改OS和OSRELEASE为你对应的服务器版本
直接 yum install nginx
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日志类型
包括了:error.log和access.log
通过nginx.conf配置文件中log_format来定义要记录的变量格式来记录日志
可以被记录到日志中的变量
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:重启
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
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自定义变量传递
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的基础内容的详细内容,更多请关注其它相关文章!