深入理解nginx

linux下载安装参考链接: https://www.cnblogs.com/dennisit/p/4069521.html

注:nginx还需要其他依赖

nginx几种常用命令

cd /usr/local/nginx/sbin  nginx默认路径/usr/local

./nginx -t 测试nginx是否安装正确

./nginx -s stop 停止nginx

./nginx -s quit 优雅停止停止nginx

./nginx  启动nginx

./nginx -s reload 重启nginx

Nginx核心配置分析

nginx的核心配置文件,主要包括三个段

Main、 Event  Http

虚拟主机配置

基于域名的虚拟主机

修改windows/system32/drivers/etc/hosts

修改nginx.conf文件,在http段中增加如下内容

基于端口的虚拟主机

基于ip的虚拟主机Nginx的日志配置

通过access_log进行日志记录

nginx中有两条是配置日志的:一条是log_format 来设置日志格式 另外一条是access_log

#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  格式

#error_log  logs/error.log  notice;

logo声明   路径及文件名 日志标识

nginx日志切割

crontab

mv access.log access.log.20171206

kill -USR1 Nginx 主进程号  nginx重新生成一个日志文件access.log

location的语法和匹配规则

location [~|=|^~|~*] /uri {

}

location的匹配规则

精准匹配

location=/uri{}

优先级最高的匹配规则

一般匹配

location /uri{

}

普通匹配的优先级要高于正则匹配

如果存在多个相同的前缀的一般匹配,那么最终会按照最大长度来做匹配

正则匹配


负载均衡

upstreamNginx的HTTP Upstream模块,这个模块通过一个简单的调度算法来实现客户端IP到后端服务器的负载均衡

Upstream常用参数介绍

 语法:server address [parameters]

其中关键字server必选。
address也必选,可以是主机名、域名、ip或unix socket,也可以指定端口号。
parameters是可选参数,可以是如下参数:

down:表示当前server已停用

backup:表示当前server是备用服务器,只有其它非backup后端服务器都挂掉了或者很忙才会分配到请求

weight:表示当前server负载权重,权重越大被请求几率越大。默认是1

max_failsfail_timeout一般会关联使用,如果某台server在fail_timeout时间内出现了max_fails次连接失败,那么Nginx会认为其已经挂掉了,从而在fail_timeout时间内不再去请求它,fail_timeout默认是10s,max_fails默认是1,即默认情况是只要发生错误就认为服务器挂掉了,如果将max_fails设置为0,则表示取消这项检查。

ups支持的调度算法

ip_hash  根据ip的hash值来做转发

默认是轮询机制

权重 weight=x

fair 根据服务器的响应时间来分配请求

url_hash


猜你喜欢

转载自blog.csdn.net/qq_36349129/article/details/79825765