Nginx 301跳转泄露内部端口?理解Nginx重定向构造逻辑
访问 https://host/xxx 时,后端返回的 301 跳转竟然变成了 https://host:[内部端口]/xxx/。看起来像是Nginx“泄漏”了内部端口,但其实这是Nginx的默认行为导致的。本文将解释为什么会出现这种情况,以及如何解决。
呐、「我们」还会再见面吗?
访问 https://host/xxx 时,后端返回的 301 跳转竟然变成了 https://host:[内部端口]/xxx/。看起来像是Nginx“泄漏”了内部端口,但其实这是Nginx的默认行为导致的。本文将解释为什么会出现这种情况,以及如何解决。
用系统自带的包管理工具安装的Nginx一般都是阉割版,缺乏诸如stream、webdav等模块。这里就带你用源码编译出满血版Nginx。除通过yum安装的Nginx已有的功能外,还包含Stream转发、WebDAV服务器、OpenSSL 3.3.1……
本文介绍Nginx如何处理location定义的URI,用rewrite改变Nginx对location的处理,以及不同location写法对Nginx动作的影响。和直觉不同,Nginx并不会将HTTP请求转发到 http://127.0.0.1:8000…
在使用Nginx反向代理WordPress后台时,访问/wp-admin页面出现502错误。这类错误经常出现在WordPress登录后台或插件较多的站点,尤其是开启缓存、多站点、多Cookie或SSO插件时。增加Nginx的缓冲区大小可以解决问题。
用Nginx反向代理的WordPress,登录后台、查看文章没有问题,投稿一开始也没问题,但在进行了多次投稿(或保存草稿)操作后出现“500 Internal Server Error”,并且错误持续存在。日志中出现了Permission denied,意味着文件权出了问题。
在给HTTP服务器(这里使用的是Nginx)配置证书时还是遇到了些问题,因此在这里总结一下配置过程以及问题的解决方法。其中最重要的就是证书的subjectAltName属性,错误配置或忽略会导致浏览器一直显示不安全,导入了证书也没用。
重启Nginx,你可能会注意到系统中出现了名为“nginx: worker process is shutting down”的奇怪进程。即使结束Nginx主进程,这些进程也不会消失。解决办法就是给worker process添加一个超时时间。
笔者用Nginx搭建WebDAV服务器,但在用浏览器测试时服务器出现了错误500。查看错误日志,发现在访问WebDAV服务器时出现如下错误,判断为权限问题。即使是用root用户启动的Nginx,其生成的worker process依然是以nobody用户运行。
本文列举了Nginx常用的反向代理转发配置案例,包括WebSocket、WordPress、ownCloud等。当有类似需求时无需四处查找资料,实现开袋即食。
Cloudflare代理提供了免费的、强大的缓存+WAF+防DDoS等功能。然而上述功能成立的前提是,用户正常访问了你设置的用Cloudflare代理的域名。假如你的服务器IP已经暴露,有人直接用修改hosts文件的方式强行访问你的服务器IP,阁下又该如何应对?