nginx rewrite解决 jenkins error 404心得笔记

简介:

问题的描述:

报错截图:
nginx rewrite解决 jenkins error 404心得笔记
登录按钮截图:

nginx rewrite解决 jenkins error 404心得笔记

登录链接:

http://jenkins.oceanwing.com/securityRealm/commenceLogin?from=%2FsecurityRealm%2FloggedOut

点击“登录”,浏览器地址栏地址变成:

http://jenkins.oceanwing.com/securityRealm/#

分析问题:

看起来是跳转问题,

思路:

考虑到nginx的rewrite可能可以解决这个问题

nginx配置文件中参数:

正则表达式匹配,其中:
* ~ 为区分大小写匹配
* ~* 为不区分大小写匹配
* !~和!~*分别为区分大小写不匹配及不区分大小写不匹配
文件及目录匹配,其中:
* -f和!-f用来判断是否存在文件
* -d和!-d用来判断是否存在目录
* -e和!-e用来判断是否存在文件或目录
* -x和!-x用来判断文件是否可执行
flag标记有:
* last 相当于Apache里的[L]标记,表示完成rewrite
* break 终止匹配, 不再匹配后面的规则
* redirect 返回302临时重定向 地址栏会显示跳转后的地址
* permanent 返回301永久重定向 地址栏会显示跳转后的地址
一些可用的全局变量有,可以用做条件判断
$args, 请求中的参数;
$content_length, HTTP请求信息里的"Content-Length";
$content_type, 请求信息里的"Content-Type";
$document_root, 针对当前请求的根路径设置值;
$document_uri, 与$uri相同;
$host, 请求信息中的"Host",如果请求中没有Host行,则等于设置的服务器名;
$limit_rate, 对连接速率的限制;
$request_method, 请求的方法,比如"GET""POST"等;
$remote_addr, 客户端地址;
$remote_port, 客户端端口号;
$remote_user, 客户端用户名,认证用;
$request_filename, 当前请求的文件路径名
$request_body_file
$request_uri, 请求的URI,带查询字符串;
$query_string, 与$args相同;
$scheme, 所用的协议,比如http或者是https,比如rewrite  ^(.+)$  $scheme://example.com$1  redirect;
$server_protocol, 请求的协议版本,"HTTP/1.0""HTTP/1.1";
$server_addr, 服务器地址,如果没有用listen指明服务器地址,使用这个变量将发起一次系统调用以取得地址(造成资源浪费);
$server_name, 请求到达的服务器名;
$server_port, 请求到达的服务器端口号;
$uri, 请求的URI,可能和最初的值有不同,比如经过重定向之类的。

nginx rewrite解决 jenkins error 404心得笔记

$args是当前url问号后面的部分,相当于$query_string
$arg_id是id的值,格式为$arg_
rewrite是url重写命令
permanent代表的是返回301永久重定向状态码
$host为当前网站的域名部分
结尾的问号代表不会将url后面的参数一起带过去
^和$是代表的是正则匹配
注意:nginx中if命令不能嵌套,不能有多条件
if条件中的等号只有一个
注意if的空格问题
if条件中可以有多条url重写语句
重定向是基于文件的,示例中是适用于commenceLogin?from=%2FsecurityRealm%2FloggedOut的结构

检查和重载nginx配置

nginx -t
nginx -s reload

点击“登录”,链接重定向:

http://jenkins.oceanwing.com/?from=%2FsecurityRealm%2FloggedOut#

curl检查:

nginx rewrite解决 jenkins error 404心得笔记

问题解决



本文转自 喵来个鱼 51CTO博客,原文链接:http://blog.51cto.com/m51cto/2073204,如需转载请自行联系原作者

相关文章
|
3月前
|
存储 缓存 负载均衡
Nginx入门笔记
Nginx入门笔记
109 0
|
2月前
|
jenkins 应用服务中间件 持续交付
Git + Jenkins 自动化 NGINX 发布简易实现
Git + Jenkins 自动化 NGINX 发布简易实现
|
5月前
|
应用服务中间件 nginx Perl
Nginx系列教程(09) - rewrite
Nginx系列教程(09) - rewrite
60 0
|
7月前
|
应用服务中间件 nginx
Nginx nginx: [error] open() "/usr/local/var/run/nginx.pid"
Nginx nginx: [error] open() "/usr/local/var/run/nginx.pid"
90 0
|
7月前
|
应用服务中间件 nginx
Mac Nginx nginx: [error] open() “/usr/local/var/run/nginx.pid“
Mac Nginx nginx: [error] open() “/usr/local/var/run/nginx.pid“
58 1
|
3月前
|
存储 应用服务中间件 nginx
【各种问题处理】nginx报错nginx: [error] open() “/run/nginx.pid” failed (2: No such file or directory)
【1月更文挑战第13天】【各种问题处理】nginx报错nginx: [error] open() “/run/nginx.pid” failed (2: No such file or directory)
|
3月前
|
JavaScript jenkins 应用服务中间件
Jenkins + Github + Nginx 自动化部署 Vue 项目
Jenkins + Github + Nginx 自动化部署 Vue 项目
148 0
|
4月前
|
负载均衡 网络协议 应用服务中间件
当当网266买来的1399页Nginx笔记,原来我入门都不算
Nginx (engine x) 是一个高性能的HTTP和反向代理web服务器,同时也提供了IMAP/POP3/SMTP服务。Nginx是由伊戈尔·赛索耶夫为俄罗斯访问量第二的Rambler.ru站点(俄文:Рамблер)开发的,第一个公开版本0.1.0发布于2004年10月4日。
当当网266买来的1399页Nginx笔记,原来我入门都不算
|
4月前
|
jenkins Java 持续交付
Jenkins使用入门笔记
Jenkins使用入门笔记
72 0
|
5月前
|
JavaScript 前端开发 Ubuntu
nginx部署vue后显示500 Internal Server Error解决方案
nginx部署vue后显示500 Internal Server Error解决方案
131 0