转载的 ,
http://storysky.blog.51cto.com/628458/486338
前几天搭了一个论坛服务器并放到了公司的局域网里面,论坛用的是9066端口并在路由器上面做了个端口转发,而且把bbs.xxx.com这个域名也指向了公司的公网IP,因为想让用户在访问的时候不用输入端口号于是就想在公司的web服务器上面做个跳转,将访问bbs.xxx.com的请求都转到他的服务器上面去。我第一个想法就是 用 nginx的rewrite,过程很简单 配置如下:
server {
listen 80;
server_name bbs.xxx.com;
rewrite "^/(.*)$" http://bbs.xxx.com:9066/$1 break;
}
于是访问bbs.xxx.com检查了一下,注册,登录发帖等等操作都正常,本以为这样就ok了,结果随后问题出现了,虽然能正常的跳转但是 用户浏览器的域名栏上的地址后面一直跟着 9066 这个端口号,这让领导很不满意,于是我找了下nginx的文档, 问了下别的朋友,没有什么好办法。于是就改用了 proxy_pass,这个配置也很简单:
server {
listen 80;
server_name bbs.xxx.com;
location /
{
proxy_pass http://bbs.xxx.com:9066/;
}
}
然后再访问 bbs.xxx.com 后面的端口号就不在了,注册、登录、发帖都正常,可是不一会儿又出问题了,用户反映论坛无法注册,提示说“单一ip一天内只能注册5次”,这是怎么回事,通过检查日志后发现 所有公网发过来的请求竟然都是 网关的ip地址 ,这下我明白了简单的加了proxy以后如果不进一步设置的话 nginx是不会去判断真正的客户端ip的,而是直接把路由的地址作为请求ip,所以会出现上述情况,分析后查了下 nginx的wiki 于是就在上面又加了几条:
server {
listen 80;
server_name bbs.xxx.com;
location /
{
proxy_set_header Host $host;
proxy_set_header X-Real-Ip $remote_addr;
proxy_set_header X-Forwarded-For $remote_addr;
proxy_pass http://bbs.xxx.com:9066/;
}
}
改完以后 reload 了一下nginx,发现日志里面的源ip已经是真实的客户端地址了,重新注册,登录,发帖,都正常,重复了多次后没有发现问题,客户那里也都正常了。
下面是从网上找的一篇文章,分析的很详细 http://www.beijus.info/?p=730&cpage=1 ,同时也感谢这篇文章的作者 “蛋蛋面”
分享到:
相关推荐
nginx 域名跳转 Nginx跳转自动到带www域名规则配置、nginx多域名向主域名跳转
2.在D:\nginx\目录下用记事本新建一个文本文档改名为 proxy.conf。 proxy.conf里面的内容格式如下: server { listen 80; server_name www.*****.com; location / { proxy_pass http://192.168.45.1:8045; ...
开源电子书:Nginx 开发手册文档.pdf
Nginx在vhost里的配置站点,通过proxy转发到动态域名的具体配置。 反向代理,动态域名 ,Proxy
实验三:Nginx权限配置 实验目的 熟悉nignx并配置访问权限 实验内容 查看nginx配置文件 修改访问权限 重启nginx 查看结果 实验环境 kali系统 实验步骤 查看nginx配置文件 Nginx的主配置文件为“/etc/nginx/nginx....
所以在这里用到了nginx的proxy_redirect指定修改被代理服务器返回的响应头中的location头域跟refresh头域数值 以下是截取nginx的一小段配置文档 server { listen 80; server_name www.boke.com; l
实验一:Nginx日志配置 实验目的 熟悉nginx并进行nginx日志配置 实验内容 查看配置文件信息 打开nginx主配置文件 配置nginx日志 实验环境 kali系统 实验步骤 1.查看nginx版本情况 在kali中输入“nginx -t”来查看...
此文比较详细讲述了Nginx与proxy共同搭建反向代理服务的配置方法
催米技术部研发团队技术分享:nginx技术分享 内容概要: nginx架构;nginx学习分享PPT;ngnix讲解的需求;ngnix配置示例图;
RHEL6之10:Nginx、rsync、lvs+haRHEL6之10:Nginx、rsync、lvs+ha
Web应用安全:Nginx禁止目录列出配置实验.doc
Nginx中rewrite实现二级域名、三级域名、泛域名、路径的重写[文].pdf
1、最新版 nginx-http-flv-module(windows_x64程序)-(程序版本:nginx1.23.2 & http-flv-module1.2.10) 2、内含说明文档,请下载查看。 3、请勿放置于中文路径下,否则无法启动
本文是关于 nginx rewrite常用示例。
分布式限流面试专题系列:Nginx+zookeeper.zip
1、最新版 nginx-http-flv-module(linux程序)-(程序版本:nginx1.21.6 & http-flv-module1.2.10) 2、内含说明文档,请下载查看。 3、请勿放置于中文路径下,否则无法启动
test-nginx, 面向 Nginx C 模块和 OpenResty Lua库开发的数据驱动测试 电子邮件名称Test::Nginx - Nginx MODULE 和 Nginx/openresty库和应用程序的数据驱动测试脚手架 table-内容NAME描述用户指南使用 Test::Nginx ...
nginx1.25.4的docker镜像 + Server:Nginx 的去除资源 部分易密码改造配置
cacti模板三:nginx监控模板 非常好用nginx模板,保证你满意