nginx不放在html文件夹,怎么配置

html-css010

nginx不放在html文件夹,怎么配置,第1张

1、修改配置文件,判断是否用域名访问。

2、修改配置文件,配置2个server,一个配置域名,一个处理不使用域名时的结果。

3、浏览器或者系统访问网页都会有自己的一套缓存机制,这样nginx就可以不放在html文件夹里了。

、nginx

配置都在nginx.conf文件中

server{}块定义了虚拟主机,listener监听端口,server_name监听域名,location{}是用来为匹配的 URI 进行配置,URI 即语法中的"/uri/"。location / { }匹配任何查询,因为所有请求都以 / 开头。root指定对应uri的资源查找路径,这里html为相对路径,完整路径为/opt/ opt/nginx-1.7.7/html/,index指定首页index文件的名称,可以配置多个,以空格分开。如有多个,按配置顺序查找。

上图从配置可以看出,nginx监听了80端口、域名为localhost、跟路径为html文件夹(我的安装路径为/opt/nginx-1.7.7,所以/opt/nginx-1.7.7/html)、默认index文件为index.html, index.htm、服务器错误重定向到50x.html页面。

2、网关及相关知识

①我们的项目连接服务器流程:最上面是本地连接先是mstsc远程连上一个windows,然后在windows里使用工具连接上服务器,因为服务器在内网中。

首先nginx安装好之后的缺省配置文件:nginx/conf/nginx.conf

这里定义的root地址是相对于nginx的根路径的;那么当用户通过浏览器访问根地址: http://<hostname>:<port>时,nginx试图返回的页面就是:nginx/html/index.html。

当然这里root也可以写全路径,例如 /home/<username>/tools/nginx/html,效果是一样的。

这里我们要讨论如何把一个静态页面配置到nginx里面。

假设静态页面内容放在文件夹 /app/testapp/www下面(同时假设/app/testapp/www/index.html也存在),我们如何配置nginx使得 http://<hostname>:<port>/testapp 能够访问到这些静态页面内容呢。

结果:404 Not Found

查看nginx日志(nginx/logs/error.log):

原来nginx试图访问的文件路径是: /app/testapp/www/testapp ,这个路径是”root“的内容再拼上location的值组成的;那我们给修改location和root的值:

然后通过地址 http://<hostname>:<port>/www 就可以访问了;但是这里location必须用”www“不能用”testapp“,这就非常不可接受了,解决的办法可以是修改静态页面的地址,再加一层testapp路径,例如:"/app/testapp/www/testapp",然后再配置:

这样是可以的。另一个方法是采用alias取代root。

保留今天页面的地址"/app/testapp/www",配置nginx的配置文件:

关于alias和root的区别,请查阅nginx文档或者自行google,这里不再重复贴了。