-
博文分类专栏
- Jquery基础教程
-
- 文章:(15)篇
- 阅读:46568
- shell命令
-
- 文章:(42)篇
- 阅读:154241
- Git教程
-
- 文章:(36)篇
- 阅读:234882
- leetCode刷题
-
- 文章:(76)篇
- 阅读:131867
-
nginx 学习(一、入门)2017-07-06 14:23 阅读(7306) 评论(0)
环境搭建
为了更全面的学习,我安装了VMware Workstation + centOS 6.5 + Xmanager Enterprise 4
Nginx下载网址:http://nginx.org/en/download.html
然后在 centOS 6.5上面安装了nginx-1.12.0(当前最新、最稳当的版本),下载网址http://nginx.org,关于安装可以参考这里http://blog.csdn.net/hsd2012/article/details/51376674
Nginx服务器控制
开启:
sbin/nginx
关闭
sbin/nginx -s stop
优雅关闭
nginx -s quit #优雅的关闭nginx服务,等待工作进程处理完所有的请求
测试配置
sbin/nginx -t
配置文件nginx.conf简介
文件结构
worker_processes 3; events{ } http{ server { listen 80; server_name localhost; location / { root html; index index.html index.htm; } error_page 500 502 503 504 /50x.html; location = /50x.html { root html; } } }
常见的全局配置
1.指定运行Nginx服务的用户与组
若希望所有的用户都可以启动Nginx进程,可以注释以下一行
user [user] [group];
或是将其改为如下
user nobody nobody;
当然就说制定了user,root用户也是可以启动进程的。
2.配置运行生成的子进程数
worker_processes 3;
3.配置Nginx进程PID存放路径
pid file
4.日志文件
错误日志 :error_log
5.配置文件的引入
include file
虚拟主机的配置
1.基于域名的虚拟主机
通过server中server_name指定域名
在本地host配置如下,
192.168.13.128 www.dqs1.com
在nginx.conf文件的server中,添加如下配置
listen 80; server_name www.dqs1.com; root /home/lidequan/project/findme/www/; access_log /home/lidequan/project/findme/access.log; error_log /home/lidequan/project/findme/error.log;
重启nginx服务,即可生效。
2.基于端口号的虚拟主机
在本地host配置如下,
192.168.13.128 www.dqs1.com
在nginx.conf文件的server中,添加如下配置
server { listen 80; server_name www.dqs1.com; location / { root html; index dqs1.html; } } server { listen 8081; server_name www.dqs1.com; location / { root html; index dqs2.html; } }
测试如下:
关于Location匹配问题
“=” 限制严格匹配,不进行最大前缀匹配
“~”正则匹配,区分大小写
“~*”正则匹配,不区分大小写
“^~”匹配上就不在进行正则匹配
什么是普通location?什么是正则location?
location后面以~开头的,叫正则location,否则叫普通的location
普通的location匹配规则是最大前缀匹配,即“普通 location ”匹配与 location 顺序无关
正则location匹配的规则是“顺序匹配,且只要匹配到第一个就停止后面的匹配”
先匹配普通location、后匹配正则location,且正则location匹配可能会覆盖普通location匹配。
正则location除了以下两种情况外,都会覆盖普通的匹配。
( 1 )当普通 location 前面指定了“ ^~ ”, location 一旦匹配上,则不需要继续正则匹配;
( 2 )当普通location 恰好严格匹配上,不是最大前缀匹配,则不再继续匹配正则。
借用网上很多人总结的一句话:正则 location 匹配让步普通 location 的严格精确匹配结果;但覆盖普通 location 的最大前缀匹配结果。
在普通的location 前面可以添加如下:
"=" 不允许“最大前缀”匹配结果,必须严格等于,严格精确匹配
"^~" 非正则,即不需要继续进行正则匹配
参考:http://www.cnblogs.com/lidabo/p/4169396.html
Nignx两种访问权限控制
1.基于IP地址
Nginx配置在解析过程中,遇到deny指令或者allow指令是按照顺序对当前客户端链接进行权限检查的。如下:
location / { deny 192.168.1.1 allow 192.168.1.0/24 deny all }
若IP为192.168.1.2的用户,在进行访问的时候,发现执行到第三行的时候,已经允许其访问,第四行就不会再执行。再Apache中,多了一个order,可以配置deny和allow的解析顺序。
2.基于密码配置