将Apache修改为nginx的注意点
最近把整站从apache升级到了nginx,客户的站点大概有30台服务器大部分架构位tomcat+apache,只有一个php页面
一下是我升级遇到的几个问题的注意点
1.URL重定向
当我们去访问服务器上的一个目录时候,他不会自动加上一个/ ,浏览器会给出改页无法打开的错误,这个时候浏览器去取的地址实际上是upstream中所写的地址和端口或如果没有使用upstream时 当使用localhost做servername时候 浏览器会去访问 http://127.0.0.1/dir
解决办法:在每个虚拟主机的server定义中加上
1if (-d $request_filename) {
2 rewrite ^/(.*)([^/])$ http://$host/$1$2/ permanent;
3}
注意 root字段的定义也一定要出现在server中 如果server中没有定义root 错误还将存在 。例子:
1server {
2
3 listen 80;
4 server_name www.1.com;
5 root /opt/1-index; //这边定义了 就会在目录访问的时候加上/ 如果这边没有定义这个 上面的url重写依然不会生效
6 include vhost/alias.conf;
7 include vhost/proxy.conf;
8
9 if (-d request_filename) {
10 rewrite ^/(._)([^/]) http://host/12/ permanent;
11 }
12
13 error_page 405 =200 @405;
14
15 location @405 {
16 proxy_pass http://PROXY_STATIC;
17 }
18
19 location / {
20
21 root /opt/1-index; //只在这边定义是没有用的,这边甚至可以不做定义
22 rewrite ^/(d+).home /index.html?userId=1 last;
23 index index.html index.htm;
24
25 }
26}
2.url重写的注意事项:
1原有的url支持正则 重写的url不支持正则
2rewrite ^/(d+).home /index.html?userId=1 last;
3
4这个重写中 ^/(d+).home 这部分支持正则
5而/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上跑 没问题)如果有这个需求呢 就要做如下配置了
1error_page 405 =200 @405;
2location @405 {
3proxy_pass http://PROXY_STATIC;
4
5# root /usr/local/nginx/html;
6}
把所有405错误重定向成200 然后吧所有405错误的请求全部交给一个代理去执行或者写上本地路径,因为我的路径比较多 所以重定向请求到一台web服务器上了
4.关于防盗链
1.com的需求是:不是从本来来的请求给除一个403,在虚拟主机里配置毫无作用 可能是我们用的是虚拟目录的缘故。所以我们直接对目录做的防盗链,在alias里别名配置
1location /res/ {
2 alias /opt/src/;
3 valid_referers none blocked server_names .1.com ;
4 if (invalid_referer) {
5 return 403;
6 }
7}
5.关于动态请求转发
1location ~ ^/login/(..do) {
2 proxy_pass http://login ;
3 proxy_set_header X-Real-IP remote_addr;
4}
~ ^/login/(.*.do) 这个表示 凡是匹配/login/ 下 .do的都转发到一个upstream池里处理 这里的符号并不起多大作用 只要是有.do的他会全部转 并不是以.do结尾的才转
6.关于php上传文件大小的问题
只改php里的配置是没有用的,需要更改的地方还有nginx的配置 client_max_body_size 10M;
,他的默认值是1M;
捐赠本站(Donate)
如您感觉文章有用,可扫码捐赠本站!(If the article useful, you can scan the QR code to donate))
- Author: shisekong
- Link: https://blog.361way.com/apachetonginx/356.html
- License: This work is under a 知识共享署名-非商业性使用-禁止演绎 4.0 国际许可协议. Kindly fulfill the requirements of the aforementioned License when adapting or creating a derivative of this work.