set number
[root@Nginx nginx]# cp nginx.conf{,.bak}
1,虚拟主机配置!80行
[root@Nginx sbin]# vim /etc/nginx/nginx.conf 80 server { 81 listen 8080; 82 server_name www.linuxea.com; 83 root "/vhost/linuxea/"; 84 } [root@Nginx nginx]# mkdir /vhost/linuxea/ -p[root@Nginx nginx]# cd /vhost/linuxea/[root@Nginx linuxea]# echo www.linuxea.com > index.html[root@Nginx sbin]# /usr/local/nginx/sbin/nginx -s reload
2,listen指定监听的地址和端口; listen address[:prot]; listen port;
3,server_name NAME server_name只能用于server中 server_name 后可跟多个主机,名称还可以使用正规表达式(~)或通配符
4,root path; 设置资源路径映射:用于指明请求的url所对应的资源所在的文件系统上的起始路径
5,location [ = | ~* |^~ ] url {...} location @name {...} 功能:允许根据用户请求的url来匹配定义的各location:匹配到时,此请求将被相应的location配置块中的配置所处理,例如做访问控制等功能;
server { listen 8080; server_name www.linuxea.com; location / { root "/vhost/linuxea/"; } location /images/ { root "/vhost/images" } location ~* .php$ { fcgipass } }
=:精确匹配检查~:正则表达式模式匹配检查,区分字符大小写~*:正则表达式模块匹配检查,不区分字符大小写^~:uri的前半部分匹配,不检查正则表达式
匹配优先级:精确匹配(=), ^~,~,~* 不带任何符号的location;
如:
80 server { 81 listen 8080; 82 server_name www.linuxea.com; 83 location / { 84 root "/vhost/linuxea/"; 85 } 86 location /images/ { 87 root "/vhost/images"; 88 } 89 location ~* . (txt|text)$ { 90 root "/vhost/txt"; 91 } 92 } [root@Nginx sbin]# mkdir -pv /vhost/{images,txt} mkdir: created directory `/vhost/images' mkdir: created directory `/vhost/txt' [root@Nginx sbin]# echo "<h2>/vhost/txt/a.txt<h2>" > /vhost/txt/a.txt [root@Nginx sbin]# /usr/local/nginx/sbin/nginx -s reload
当我们访问a.txt是匹配的回事 location ~* . (txt|text)$ 这段!
6,alias path;用户location配置段,实现路径别名定义!注意:root已经可以定义,root表示指明路径为对于的location “/" URL;alias表示路径映射,即location指令后定义的url是相对于alias所指明的路径而言
如: location /images/ { root "/vhoast/web1";}访问httpd://www.linuxea.com/images/1.jpg ,相当于访问/vhost/web1/images/1.jpg location /images/ { alias "/www/pictures";}访问httpd://www.linuxea.com/images/1.jpg ,相当于访问/www/pictures/1.jpg如果使用的是alias是相对于location /images/右侧/路径而言的如果使用的是root是相对于location /images/左侧/路径而言的