apache升级到了nginx的几个注意点

简介: 【from】www.mlives.cn最近把整站从apache升级到了nginx,客户的站点大概有30台服务器大部分架构位tomcat+apache,只有一个php页面一下是我升级遇到的几个问题的注意点1.

【from】www.mlives.cn
最近把整站从apache升级到了nginx,客户的站点大概有30台服务器大部分架构位tomcat+apache,只有一个php页面
一下是我升级遇到的几个问题的注意点

1.
当我们去访问服务器上的一个目录时候,他不会自动加上一个/ ,浏览器会给出改页无法打开的错误,这个时候浏览器去取的地址实际上是upstream中所写的地址和端口或如果没有使用upstream时 当使用localhost做servername时候 浏览器会去访问http://127.0.0.1/dir
解决办法
在每个虚拟主机的server定义中加上
if (-d $request_filename) {
                           rewrite ^/(.*)([^/])$ http://$host/$1$2/ permanent;
                }
注意 root字段的定义也一定要出现在server中 如果server中没有定义root 错误还将存在
例子:
server {
                listen                800;
                server_name www.1.com;
                root   /opt/1-index;   //这边定义了 就会在目录访问的时候加上/  如果这边没有定义这个 上面的url重写依然不会生效
                include                vhost/alias.conf;
                include                vhost/proxy.conf;
                if (-d $request_filename) {
                           rewrite ^/(.*)([^/])$ http://$host/$1$2/ permanent;
                }
                error_page   405 =200 @405;
                location @405 {
                proxy_pass      http://PROXY_STATIC;
                }
                location / {
                        root   /opt/1-index;        //只在这边定义是没有用的,这边甚至可以不做定义
                        rewrite ^/(/d+)/.home$ /index.html?userId=$1 last;
                        index  index.html index.htm;
                }                       

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上跑 没问题)
如果有这个需求呢 就要做如下配置了
error_page   405 =200 @405;
                location @405 {
                proxy_pass      http://PROXY_STATIC;
        #        root /usr/local/nginx/html;
                }
把所有405错误重定向成200 然后吧所有405错误的请求全部交给一个代理去执行
或者写上本地路径,因为我的路径比较多 所以重定向请求到一台web服务器上了

4.。关于防盗链
1.com的需求是 不是从本来来的请求给除一个403
因为在虚拟主机里配置毫无作用 可能是我们用的是虚拟目录的缘故
所以我们直接对目录做的防盗链
在alias里
别名配置
                location /res/ {
                alias   /opt/Src/;
                valid_referers none blocked server_names *.1.com ;
                if ($invalid_referer) {
        return 403;
                }
        }

5,关于动态请求转发
location  ~ ^/login/(.*/.do)$ {
                proxy_pass      http://login ;
        proxy_set_header  X-Real-IP  $remote_addr;
}
~ ^/login/(.*/.do)$ 这个表示 凡是匹配/login/ 下 .do的都转发到一个upstream池里处理 这里的$符号并不起多大作用 只要是有.do的他会全部转 并不是以.do结尾的才转

6.关于php上传文件大小的问题
只改php里的配置是没有用的
需要更改的地方还有nginx的配置

client_max_body_size 10M;
他的默认值是1M;

以上就是基本的注意

目录
相关文章
|
3月前
|
消息中间件 存储 人工智能
Apache RocketMQ for AI 战略升级,开启 AI MQ 新时代
Apache RocketMQ 顺应AIGC浪潮,针对长时会话、稀缺算力调度及AI Agent协作等挑战,推出专为AI时代打造的消息引擎。通过“会话即主题”的Lite-Topic机制,实现百万级队列动态管理,保障会话连续性与断点续传;结合智能资源调度能力,如定速消费与优先级队列,提升算力利用率与服务公平性;同时构建高效异步通信枢纽,支撑Agent-to-Agent及AI工作流的非阻塞协同。已在阿里集团与阿里云多个AI产品中大规模验证,助力开发者构建稳定、高效、可扩展的AI应用基础设施。
|
2月前
|
SQL 人工智能 API
Apache Flink 2.1.0: 面向实时 Data + AI 全面升级,开启智能流处理新纪元
Apache Flink 2.1.0 正式发布,标志着实时数据处理引擎向统一 Data + AI 平台迈进。新版本强化了实时 AI 能力,支持通过 Flink SQL 和 Table API 创建及调用 AI 模型,新增 Model DDL、ML_PREDICT 表值函数等功能,实现端到端的实时 AI 工作流。同时增强了 Flink SQL 的流处理能力,引入 Process Table Functions(PTFs)、Variant 数据类型,优化流式 Join 及状态管理,显著提升作业稳定性与资源利用率。
214 0
|
21天前
|
存储 自然语言处理 分布式计算
Apache Doris 3.1 正式发布:半结构化分析全面升级,湖仓一体能力再跃新高
Apache Doris 3.1 正式发布!全面升级半结构化分析,支持 VARIANT 稀疏列与模板化 Schema,提升湖仓一体能力,增强 Iceberg/Paimon 集成,优化存储引擎与查询性能,助力高效数据分析。
219 4
Apache Doris 3.1 正式发布:半结构化分析全面升级,湖仓一体能力再跃新高
|
存储 自然语言处理 BI
从 Elasticsearch 到 Apache Doris 腾讯音乐内容库升级,统一搜索分析引擎,成本直降 80%
实现写入性能提升 4 倍、使用成本节省达 80% 的显著成效
398 1
从 Elasticsearch 到 Apache Doris 腾讯音乐内容库升级,统一搜索分析引擎,成本直降 80%
|
存储 SQL 缓存
快手:从 Clickhouse 到 Apache Doris,实现湖仓分离向湖仓一体架构升级
快手 OLAP 系统为内外多个场景提供数据服务,每天承载近 10 亿的查询请求。原有湖仓分离架构,由离线数据湖和实时数仓组成,面临存储冗余、资源抢占、治理复杂、查询调优难等问题。通过引入 Apache Doris 湖仓一体能力,替换了 Clickhouse ,升级为湖仓一体架构,并结合 Doris 的物化视图改写能力和自动物化服务,实现高性能的数据查询以及灵活的数据治理。
534 3
快手:从 Clickhouse 到 Apache Doris,实现湖仓分离向湖仓一体架构升级
|
8月前
|
应用服务中间件 Linux nginx
【Azure App Service】基于Linux创建的App Service是否可以主动升级内置的Nginx版本呢?
基于Linux创建的App Service是否可以主动升级内置的Nginx版本呢?Web App Linux 默认使用的 Nginx 版本是由平台预定义的,无法更改这个版本。
227 77
|
7月前
|
消息中间件 安全 API
Apache RocketMQ ACL 2.0 全新升级
Apache RocketMQ ACL 2.0 全新升级
325 8
|
7月前
|
消息中间件 人工智能 Apache
Apache RocketMQ 中文社区全新升级!
Apache RocketMQ 中文社区全新升级!
151 7
|
7月前
|
存储 消息中间件 人工智能
基于 Apache RocketMQ 的 ApsaraMQ Serverless 架构升级
基于 Apache RocketMQ 的 ApsaraMQ Serverless 架构升级
135 0

推荐镜像

更多