nginx入门基础(内附教学视频)

百度云视频链接
链接: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注意事项

nginx入门基础(内附教学视频)_第1张图片
1.每行配置完成后,必须带英文封号。“;”否则会报错。
2.Location /{} 这个斜杠表示根路径。也就是nginx的根路径。
3.Location /{root } 这个root的意思就是根目录的路径。
4.Location/{} error_page: 指的是指定报错页面

Service iptables status;//linux查看防火墙的状态命令
三、设置火狐浏览器的http请求清除缓存:
nginx入门基础(内附教学视频)_第2张图片
1.第一步:
nginx入门基础(内附教学视频)_第3张图片

2.browser.cache.check_doc_frequency
nginx入门基础(内附教学视频)_第4张图片
3.值可以设置为1,2,3.分别代表不同的含义。其中1代表是每次访问清除缓存。
四、nginx日志管理

Nginx.conf文件中的:
access_log off; //表示日志文件关闭
下图是日志的类型,定义为“main”
nginx入门基础(内附教学视频)_第5张图片

日志类型的用法如下:
nginx入门基础(内附教学视频)_第6张图片

其中access_log是nginx的属性变量,不可更改
Logs/bhz.com.access.log //日志的相对路径和日志文件名。
Main //日志类型。

Tail -n 100 -f access.log //监控access.log这个日志文件的内容
总结:通过上述在nginx.conf文件中对每个server配置生成不同的日志文件,即可对每个服务有不同的日志。
nginx入门基础(内附教学视频)_第7张图片

五、日志切分处理

Crontab -e 是linux定时器。下面的是定时语句。每分钟执行一次。
nginx入门基础(内附教学视频)_第8张图片
六、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(第三方)。

你可能感兴趣的:(nginx)