我们的网站是lvs
->apache->tomcat
架构
的 现在已经全面转换成lvs->nginx
->tomcat架构
以下是我在迁移中遇到的几个问题
欢迎大家指正
1. 访问目录不能自动加上/
当我们去访问服务器上的一个目录时候,他不会自动加上一个/ ,浏览器会给出改页无法打开的错误,这个时候浏览器去取的地址实际上是upstream中所写的地址和端口或如果没有使用
upstream时 他就会去访问servername中设置的内容 比如 我设置的是localhost 浏览器会去访问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.d1xn.com
;
root /opt/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/index; //只在这边定义是没有用的
rewrite ^/(\d+)\.home$ /ZONE/index.html?userId=$1 last;
index index.html index.htm;
}
2.URL重写的注意事项:
原有的url支持正则 重写的url不支持正则
rewrite ^/(\d+)\.home$ /ZONE/index.html?userId=$1 last;
这个重写中 ^/(\d+)\.home$ 这部分支持正则
而/ZONE/index.html?userId=$1
不要用正则 也不匹配正则 /ZONE/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. 关于防盗链
第一虚拟网的需求是 不是从本地来的请求给除一个403
因为在虚拟主机里配置毫无作用 可能是我们用的是虚拟目录的缘故
所以我们直接对目录做的防盗链
在alias里
别名配置
location /res/ {
alias /opt/src/;
valid_referers none blocked server_names *.d1xn.com *.woniu.com;
if ($invalid_referer) {
return 403;
}
}
5,关于动态请求转发
location ~ ^/log
in/(.*\.do)$ {
proxy_pass http://login
;
proxy_set_header X-Real-IP $remote_addr;
}
~ ^/login/(.*\.do)$ 这个表示 凡是匹配/login/ 下 .do的都转发到一个upstream池里处理 这里的$符号并不起多大作用 只要是有.do的他会全部转 并不是以.do结尾的才转
以上就是我遇到的问题及其解决办法
分享到:
相关推荐
一个开源的Linux下运行的命令行工具,能将Apache的配置文件转换成相应的Nginx的配置文件。本工具能自动将Apache Web服务器的配置文件转化成Nginx的配置文件,减少WEB服务器迁移的工作量。 该工具从Apache Web服务器...
Apache2Nginx是一个开源的linux下运行的命令行工具.它可以把apache 配置文件转换成对应的nginx 配置文件.对于一般的功能. 比如目录 url重写.这都从测试来看.基本上不存在问题.对于不能转换的.会有注释在转换好的配置...
1. 配置文件结构:Nginx的主配置文件通常为`nginx.conf`,其中包含多个server块,每个server块可以配置不同的虚拟主机。 2. 监听端口:通过`listen`指令指定Nginx监听的端口。 3. 虚拟主机:使用`server_name`指令...
Apache Tomcat JBOSS Nginx区别 Apache Tomcat 和 JBOSS 是两种不同的服务器软件,而 Nginx 是一种高性能的 HTTP 服务器。下面我们来详细比较它们的区别: 一、Apache 和 Tomcat Apache 是一个 Web 服务器,...
4. **热备模式**:通过设置多个Apache服务器,Nginx可以将流量分配到活动服务器,当主服务器故障时,可以迅速切换到备份服务器,确保服务的连续性。 文件名"cluster+apache2.2+nginx0.8"暗示了这可能是一个关于...
根据测试结果,Nginx能够轻松支持超过50,000个并发连接,而Apache在此方面的表现相对较弱。 - **资源占用**:Nginx由于其轻量级的设计,在内存占用方面远低于Apache。这意味着Nginx能够在有限的硬件资源下提供更好的...
总结,Apache+nginx+resin的配置涉及到多层服务器的协同工作,这种架构可以充分利用每个组件的优势,提供高效且可扩展的Web服务。正确配置和理解这些组件的交互是实现这一目标的关键。在实际部署中,还需要考虑负载...
一个基本的Nginx配置示例,用于代理到本地运行的Node.js应用: ``` server { listen 80; server_name example.com; location / { proxy_pass http://localhost:3000; proxy_set_header Host $host; proxy_...
prestashop_1.6.0.9 从apache转换nginx服务器的重写规则 text.conf是apache的.htaccess转换成nginx的重写规则 将text.conf这个文件放在nginx的rewrite里 然后在nginx的配置文件中include进来就可以了. 有什么...
Nginx以其高性能和低内存占用而受到欢迎,特别是在高并发场景下。搭建Nginx环境涉及以下步骤: 1. **安装Nginx**: 使用包管理器安装Nginx,并确保服务启动并设置为开机自启。 2. **安装PHP-FPM**: PHP-FastCGI进程...
一个开源的Linux下运行的命令行工具,能将Apache的配置文件转换成相应的Nginx的配置文件。本工具能自动将Apache Web服务器的配置文件转化成Nginx的配置文件,减少WEB服务器迁移的工作量。 该工具从Apache Web服务器...
Apache、Nginx 和 Tomcat 是在 Web 服务器领域中常用的三个组件,它们各自承担着不同的职责,并且经常被组合使用以实现高效、稳定的网站部署和应用服务。 Apache HTTP Server 是世界上最广泛使用的开源 Web 服务器...
### Nginx 作为 Apache 和 JBoss 的替代方案 #### 背景介绍 随着互联网技术的不断发展,网站流量的增长对服务器性能提出了更高要求。Apache 和 JBoss 是两种广泛使用的 Web 服务器和应用服务器,但在高并发场景下,...
这个工具旨在简化迁移过程,使得在性能优化、负载均衡或资源管理等方面有更高需求的开发者和系统管理员能够轻松地从Apache web服务器过渡到Nginx web服务器。Nginx以其高效的反向代理、负载均衡和静态文件处理能力而...
11. `virtual`:执行一个Apache子请求,可以用来代理到其他URL或内部重定向。 关于Apache和PHP的集成,有几种方法,如使用PHP作为Apache模块(mod_php),FastCGI,或者通过PHP-FPM(FastCGI Process Manager)。每...
- **高性能负载均衡**:Nginx+Apache 组合提供了一个高性能、低成本的负载均衡解决方案,能够显著提高网站性能和服务可用性。 - **易于配置与管理**:相比昂贵的商用硬件负载均衡器,Nginx 的配置更加简单直观。 - *...
在多台服务器环境下,Nginx还可以配置为负载均衡器,通过轮询、最少连接数等方式将请求分发到多个Apache实例上,从而提高系统的可用性和响应速度。 ### 结论 通过合理配置Nginx和Apache,不仅可以显著提升网站的...
IIS(Internet Information Services)、Apache、Tomcat、Nginx和CDN(内容分发网络)是IT领域中常见的几个技术名词,它们各有各的用途和特点。 IIS是微软公司开发的一个Web服务器软件,它是Windows操作系统的一个...
当我们决定使用Nginx来取代Apache时,需要注意的是如何迁移现有的Apache服务器配置到Nginx。需要关注的关键配置包括虚拟主机的设置、SSL/TLS加密、URL重写规则等。Nginx的配置文件语法虽然与Apache的httpd.conf有所...