百度云视频链接
链接:https://pan.baidu.com/s/1tg_XQaRHDEDqLUIbQAFg3A
提取码:k0aj
以下是针对视频的自我学习总结,有兴趣的童鞋可以参考,如有错误,请指正
Nginx笔记
一、简明nginx常用命令
1.1. 启动 Nginx
poechant@ubuntu:sudo ./sbin/nginx
1.2. 停止 Nginx
poechant@ubuntu:sudo ./sbin/nginx -s stop
poechant@ubuntu:sudo ./sbin/nginx -s quit
-s都是采用向 Nginx 发送信号的方式。
1.3. Nginx 重载配置
poechant@ubuntu:sudo ./sbin/nginx -s reload
或者
poechant@ubuntu:service nginx reload
1.4. 指定配置文件
poechant@ubuntu:sudo ./sbin/nginx -c /usr/local/nginx/conf/nginx.conf
-c表示configuration,指定配置文件。
1.5. 查看 Nginx 版本
有两种可以查看 Nginx 的版本信息的参数。第一种如下:
poechant@ubuntu:/usr/local/nginx$ ./sbin/nginx -v
1.6. 检查配置文件是否正确
poechant@ubuntu:/usr/local/nginx$ ./sbin/nginx -t
1.7. 显示帮助信息
poechant@ubuntu:/user/local/nginx$ ./sbin/nginx -h
或者:
poechant@ubuntu:/user/local/nginx$ ./sbin/nginx -?
二、nginx.conf注意事项
1.每行配置完成后,必须带英文封号。“;”否则会报错。
2.Location /{} 这个斜杠表示根路径。也就是nginx的根路径。
3.Location /{root } 这个root的意思就是根目录的路径。
4.Location/{} error_page: 指的是指定报错页面
Service iptables status;//linux查看防火墙的状态命令
三、设置火狐浏览器的http请求清除缓存:
1.第一步:
2.browser.cache.check_doc_frequency
3.值可以设置为1,2,3.分别代表不同的含义。其中1代表是每次访问清除缓存。
四、nginx日志管理
Nginx.conf文件中的:
access_log off; //表示日志文件关闭
下图是日志的类型,定义为“main”
其中access_log是nginx的属性变量,不可更改
Logs/bhz.com.access.log //日志的相对路径和日志文件名。
Main //日志类型。
Tail -n 100 -f access.log //监控access.log这个日志文件的内容
总结:通过上述在nginx.conf文件中对每个server配置生成不同的日志文件,即可对每个服务有不同的日志。
五、日志切分处理
Crontab -e 是linux定时器。下面的是定时语句。每分钟执行一次。
六、Linux定时任务:
crontab -e
选择编辑器,编辑定时任务(这里假设是编辑器是vi)
按i进入编辑模式
0 1 * * * /root/test.sh
按esc退出编辑模式进入普通模式,输入:x或:wq保存退出
查看刚刚输入的定时任务
crontab -l 或 cat /var/spool/cron/root
根用户以外的用户可以使用 crontab 工具来配置 cron 任务。所有用户定义的 crontab 都被保存在 /var/spool/cron 目录中,并使用创建它们的用户身份来执行。要以某用户身份创建一个 crontab 项目,登录为该用户,然后键入 crontab -e 命令,使用由 VISUAL 或 EDITOR 环境变量指定的编辑器来编辑该用户的 crontab。该文件使用的格式和 /etc/crontab 相同。当对 crontab 所做的改变被保存后,该 crontab 文件就会根据该用户名被保存,并写入文件 /var/spool/cron/username 中。
cron 守护进程每分钟都检查 /etc/crontab 文件、etc/cron.d/ 目录、以及 /var/spool/cron 目录中的改变。如果发现了改变,它们就会被载入内存。这样,当某个 crontab 文件改变后就不必重新启动守护进程了。
重启crond:
/sbin/service crond restart
查看cron服务是否起作用:
如果我们要查看定时任务是否准时调用了可以/var/log/cron中的运行信息
或者看定时执行的test.sh脚本
七、nginx配置语法
Pattern指代的字符串。
7.1 正则匹配举例如下:
server {
listen 1234;
server_name bhz.com;
#正则表达式匹配uri方式:在/usr/local/nginx/bhz.com下 建立一个test123.html 然后使用正则匹配
location ~ test {
root bhz.com;
index index.html;
}
上述nginx.conf文件的location ~ test{}指的是在root指定的路径下,也就是 bhz.com目录下,匹配testXX.html文件。这里没有模糊匹配的概念!
比如:我们在 bhz.com目录下,新建一个testaa.html文件。
当我们在浏览器输入:http://bhz.com:1234/testaa.html是正常显示testaa.html文件的内容。
如果我们访问的http://bhz.com:1234/testbb.html 会报404错(bhz.com目录下没有testbb.html )
如果我们访问的http://bhz.com:1234/test.html 会报404错(bhz.com目录下没有test.html ).
也就是访问bhz.com目录下的哪个文件,就必须在该目录下创建改文件。
7.2 if表达式
#location ~ test {
## 重写语法:if return (条件 = ~ ~*)
//表示如果请求的ip是 192.168.1.200,就返回401
#if ($remote_addr = 192.168.1.200) {
# return 401;
#}
//表示如果请求是火狐浏览器,就转发到firefox.html;
//其中if括号中的~是正则,*号表示忽略大小写
#if ($http_user_agent ~* firefox) {
# rewrite ^.*$ /firefox.html;
# break;//这里的break必须写,否则就会重复循环。
#}
//表示如果请求中有/goods,就转发到"goods-(\d{1,5})\.html" /goods-ctrl.html;
比如:http:// bhz.com:1234/goods-1.html就会被转发到 bhz.com/goods-ctrl.html;
// (\d{1,5})\.html指的是1-5个数字
#location /goods {
# rewrite "goods-(\d{1,5})\.html" /goods-ctrl.html;
# root bhz.com;
# index index.html;
#}
root bhz.com;
八、nginx的反向代理
#配置反向代理tomcat服务器:拦截.jsp结尾的请求转向到tomcat。\.是对.的转义。^起始,$结尾。
#location ~ \.jsp$ {
#设置客户端真实ip地址
#proxy_set_header X-real-ip $remote_addr;
# proxy_pass http://192.168.1.171:8080;
#}
上述的proxy_set_header X-real-ip $remote_addr;
proxy_set_header 是naginx内置变量。
X-real-ip 是自定义变量,用来存放 $remote_addr的值。
整句话意思就是:定义了 X-real-ip来存放对端真实ip地址。
九、负载均衡
upstream和server是平级的。
定义了myapp的负载均衡的变量,并指定了两个节点,权重分别为1,最大连接失败为2次,每次超时时间为30s.
upstream myapp {
# server 192.168.1.171:8080 weight=1 max_fails=2 fail_timeout=30s;
# server 192.168.1.172:8080 weight=1 max_fails=2 fail_timeout=30s;
#}
Server{
......
location / {
#设置客户端真实ip地址
#proxy_set_header X-real-ip $remote_addr;
#负载均衡反向代理
#proxy_pass http://myapp;
}
}
Nginx负载均衡配置的策略比较多,常见的就是:轮询(默认)、权重(weight)、IP绑定 ip_hash、fair(第三方)、url_hash(第三方)。