问题1,当访问服务器上的一个目录时,不会自动加上一个/ ,浏览器会给出改页无法打开的错误,此时浏览器去取的地址实际上是upstream中所写的地址和端口或如果没有使用upstream时 当使用localhost做servername时候 浏览器会去访问http://127.0.0.1/dir。
解决办法:
在每个虚拟主机的server定义中加上
注意:
root字段的定义也一定要出现在server中,如果server中没有定义root 错误还将存在。
例子:
问题2,url重写的注意事项:
原有的url支持正则 重写的url不支持正则
rewrite ^/(d+).home$ /index.html?userId=$1 last;
这个重写中 ^/(d+).home$ 这部分支持正则
而/index.html?userId=$1
不要用正则,也不匹配正则 /index.html?*userId=$1 这样就会去找.html?*userId=$1这个url,然后给予一个404 not found。
3,post方式去访问静态文件
Apache、IIS、Nginx等绝大多数web服务器,都不允许静态文件响应POST请求,否则会返回“HTTP/1.1 405 Method not allowed”错误。
(但是之前程序在apache上跑 没问题)
如果有此问题,则按如下配置操作:
把所有405错误重定向成200 然后吧所有405错误的请求全部交给一个代理去执行。
或写上本地路径。
4,防盗链
1.com的需求:不是从本来来的请求给除一个403。
因为在虚拟主机里配置毫无作用,也可能是虚拟机的原因。
直接对目录做的防盗链
在alias中,添加别名配置:
5,动态请求转发
~ ^/login/(.*.do)$ #凡是匹配/login/ 下 .do的都转发到一个upstream池里处理。
此处的$符号并不起多大作用,只要是有.do的他会全部转,并不是以.do结尾的才转。
6,php上传文件大小的问题
除了要修改php中的配置,还要修改nginx的配置:
client_max_body_size 10M;
默认值是1M;
我所知道的注意点,就这几条了,希望可以帮助到有需要的朋友吧。