我们的网站是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重写.这都从测试来看.基本上不存在问题.对于不能转换的.会有注释在转换好的配置...
详细讲解apache/tomcat和nginx的区别,可以充分掌握他们的应用场景
Apache Tomcat JBOSS Nginx区别
prestashop_1.6.0.9 从apache转换nginx服务器的重写规则 text.conf是apache的.htaccess转换成nginx的重写规则 将text.conf这个文件放在nginx的rewrite里 然后在nginx的配置文件中include进来就可以了. 有什么...
实战Nginx取代Apache的高性能Web服务器 文字版本。喜欢请购买纸质版支作者
nginx替代apache,nginx替代方案,nginx代替apache与jbos,nginx+jboss结合
Apache + nginx + resin 详细配置
快速简简单的搭建一个http服务器,提供http服务,对http服务器要求不高; apache简单配置 nginx简单配置
php apache/nginx php apache/nginx
一个开源的Linux下运行的命令行工具,能将Apache的配置文件转换成相应的Nginx的配置文件。本工具能自动将Apache Web服务器的配置文件转化成Nginx的配置文件,减少WEB服务器迁移的工作量。 该工具从Apache Web服务器...
apache+nginx+tomcat+
Nginx+Apache负载均衡
php运行环境搭建(apache+mysql+php / nginx+mysql+php)
cluster+apache+nginx整合集群配置
特别是当我们需要从 Apache 服务器迁移到 NGINX 时,我们需要更加努力地学习 Apache 和 Nginx 中的模块和指令。 根据以上需求,我们开发了apache2nginx工具。 该工具的目标是根据 Apache 的配置文件生成 Nginx 配置...
Nginx开发从入门到精通 中文版,入门到精通 Nginx (engine x) 是一个高性能的HTTP和反向代理web服务器,同时也提供了IMAP/POP3/SMTP服务。Nginx是一款轻量级的Web 服务器/反向代理服务器及电子邮件(IMAP/POP3)代理...
三大WEB服务器对比分析(apache ,lighttpd,nginx) 分析的还不错
而我却多
apache作为服务器https访问协议,换成nginx服务器发布访问原项目正常访问,且可以配置多个域名进行服务发布。