首页 > 代码库 > CentOS 6.5 Nginx 的编译安装、以及让nginx 支持 SSI 相对路径写法

CentOS 6.5 Nginx 的编译安装、以及让nginx 支持 SSI 相对路径写法

1. nginx 下载

进入 http://nginx.org/en/download.html 下载,我是选择的 "Stable version" 稳定版本的下载

# wget http://nginx.org/download/nginx-1.6.2.tar.gz

2. 解压编译安装

# tar -zxvf nginx-1.6.2.tar.gz # cd nginx-1.6.2安装一些nginx用到的依赖软件,如果不开启ssl可以不用安装openssl,回头用到时可以返回这里重新编译安装一遍即可# yum -y install pcre-devel# yum -y install openssl openssl-devel下面这一步我是选择了  两个编译模块的选项--with-http_stub_status_module 是用于监控自上次启动以来的工作状态--with-http_ssl_module 是用于开启ssl支持https的选项--prefix=/opt/nginx 这个是我的个人安装习惯,指定软件的安装目录# ./configure --with-http_stub_status_module --with-http_ssl_module --prefix=/opt/nginx# make# make install

3. 关于SSI支持 相对路径的问题(如果没有ssi需求的,这一步就不需要再操作了)

  由于项目在本地开发用的是Apache/tomcat 的SSI支持,对于.shtml 中的 <!--#include virtual="../testr.shtml"--> 是支持 ../这种相对路径的,然而部署的时候采用的是nginx 的ssi,网上搜索了下 采取了一下的方法来解决:

从nginx的源文件中找到要修改的文件ngx_http_ssi_filter_module.c

# locate ngx_http_ssi_filter_module.c# vim /home/test/nginx-1.6.2/src/http/modules/ngx_http_ssi_filter_module.c
文件中找到内容"ngx_http_parse_unsafe_uri" ,将这个注释掉,如下:

/**
if (ngx_http_parse_unsafe_uri(r, uri, &args, &flags) != NGX_OK) {
return NGX_HTTP_SSI_ERROR;
}
**/
# 然后按照第二步中的编译选项重新配置、编译、安装
# ./configure --with-http_stub_status_module --with-http_ssl_module --prefix=/opt/nginx# make# make install

 

CentOS 6.5 Nginx 的编译安装、以及让nginx 支持 SSI 相对路径写法