设为首页 收藏本站
查看: 764|回复: 0

[经验分享] 搭建高性能web服务器之Nginx安装与配置

[复制链接]
累计签到:1 天
连续签到:1 天
发表于 2016-1-21 08:56:35 | 显示全部楼层 |阅读模式
有时我们需要定义通过相关语法来定义网站的网站路径以及相关其他文件路径,那么我们该如何配置呢,下面我们将讲解到nginx关于文件路径定义的相关配置语法

1.1以root方式设置资源路径

语法:root path;

默认:root html;

配置块:http、server、location、if

例如,定义资源文件相对于HTTP请求的根目录。

location /download/ {  
root /opt/web/html/;  
}

1.2 以alias方式设置资源路径

语法:  alias path;

配置块: location;

  alias也是用来设置文件资源路径的,它与root的不同点主要在于如何解读紧跟location后面的uri参数,这将会致使alias与root以不同的方式将用户请求映射到真正的磁盘文件上。例如,如果有一个请求的URI是/conf/nginx.conf,而用户实际想访问的文件在/usr/local/nginx/conf/nginx.conf

那么想要使用alias来进行设置的话,可以采用如下方法:

location /conf {  
      alias /usr/local/nginx/conf/;      
}

如果用root设置,那么语句如下所示:

location /conf {  
         root /usr/local/nginx/;         
}

  使用alias时,在URI向实际文件路径的映射过程中,已经把location后配置的/conf这部分字符串丢弃掉,因此,/conf/nginx.conf请求将根据alias path映射为path/nginx.conf。root则不然,它会根据完整的URI请求来映射,因此,/conf/nginx.conf请求会根据root path映射为path/conf/nginx.conf。这也是root可以放置到http、server、location或if块中,而alias只能放置到location块中的原因。

  alias后面还可以添加正则表达式,例如:

location ~ ^/test/(\w+)\.(\w+)$ {  
    alias /usr/local/nginx/$2/$1.$2;  
}

这样,请求在访问/test/nginx.conf时,Nginx会返回/usr/local/nginx/conf/nginx.conf文件中的内容。

1.3 设置访问网站首页

语法:index file ...;

默认:index index.html;

配置块:http、server、location

有时,访问站点时的URI是/,这时一般是返回网站的首页,而这与root和alias都不同。这里用ngx_http_index_module模块提供的index配置实现。index后可以跟多个文件参数,Nginx将会按照顺序来访问这些文件,例如:


location / {  
root   path;  
index /index.html /html/index.php /index.php;  
}

接收到请求后,Nginx首先会尝试访问path/index.html文件,如果可以访问,就直接返回文件内容结束请求,否则再试图返回path/html/index.php文件的内容,依此类推。

1.4 设置根据HTTP返回码重定向页面

语法:error_page code [ code... ] [ = | =answer-code ] uri | @named_location

配置块:http、server、location、if

当对于某个请求返回错误码时,如果匹配上了error_page中设置的code,则重定向到新的URI中。例如:

error_page   404          /404.html;  
error_page   502 503 504  /50x.html;  
error_page   403          http://example.com/forbidden.html;  
error_page   404          = @fetch;

注意,虽然重定向了URI,但返回的HTTP错误码还是与原来的相同。用户可以通过“=”来更改返回的错误码,例如:

error_page 404 =200 /empty.gif;  
error_page 404 =403 /forbidden.gif

也可以不指定确切的返回错误码,而是由重定向后实际处理的真实结果来决定,这时,只要把“=”后面的错误码去掉即可,例如:

error_page 404 = /empty.gif;

如果不想修改URI,只是想让这样的请求重定向到另一个location中进行处理,那么可以这样设置:

location / (  
error_page 404 @fallback;  
)  
location @fallback (  
proxy_pass http://backend;  
)

这样,返回404的请求会被反向代理到http://backend上游服务器中处理。

1.5 是否允许递归使用error_page

语法:recursive_error_pages [on | off];

默认:recursive_error_pages off;

配置块:http、server、location

1.6 确定是否允许递归地定义error_page

try_files

语法:try_files path1 [path2] uri;

配置块:server、location

try_files后要跟若干路径,如path1 path2...,而且最后必须要有uri参数,意义如下:尝试按照顺序访问每一个path,如果可以有效地读取,就直接向用户返回这个path对应的文件结束请求,否则继续向下访问。如果所有的path都找不到有效的文件,就重定向到最后的参数uri上。因此,最后这个参数uri必须存在,而且它应该是可以有效重定向的。例如

try_files /system/maintenance.html $uri $uri/index.html $uri.html @other;  location @other {    proxy_pass http://backend;  }

上面这段代码表示如果前面的路径,如/system/maintenance.html等,都找不到,就会反向代理到http://backend服务上。还可以用指定错误码的方式与error_page配合使用,例如:

location / {  
         try_files $uri $uri/ /error.php?c=404 =404;  
}

以上即为nginx对相关文件路径以及对错误代码重定向的相关配置语法,即网站的根目录的配置和错误代码重定向的配置,

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-167290-1-1.html 上篇帖子: nginx log打印自定义头 下篇帖子: nginx安装时报错 ./configure: error: the HTTP gzip module requires the zlib library. web服务器
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表