【Nginx】关于域名转发proxy_pass
在配置nginx的时候,有一个需求,访问m.XXX.com的时候,需要实际访问www.YYY.com/m,并且域名不能发生变化。
达成这个需求有两种做法:
第一种就是301跳转,使用rewrite来跳转域名,不过这样域名就会发生变化,与需求不符。
第二种就是用proxy_pass跳转,只要指定跳转目的域名,就可以在访问的时候自动跳转访问目的域名,而且域名也不会发生变化。所以这里需要使用第二种方法。
首先在/etc/nginx/conf.d/建立一个m.XXX.com.conf文件,内容为:
server
{
listen 80;
server_name m.XXX.com; location /
{
proxy_pass http://www.YYY.com/m/;
}
}
这里要注意proxy_pass后面域名最后的"/",如果不添加,会跳转失败。
然后在/etc/nginx/nginx.conf的http块内添加一行:
include /etc/nginx/conf.d/m.XXX.com.conf;
然后就是重启nginx:
sudo /usr/nginx/nginx -s reload
这样就可以在访问m.XXX.com的时候自动跳转到访问www.YYY.com/m了,而且域名不会发生改变。
这里又出现了一个问题,静态资源访问不了,所以我们在m.XXX.com.conf里添加静态资源访问设置:
server
{
listen 80;
server_name m.XXX.com; location /
{
proxy_pass http://www.YYY.com/m/;
} location ~ .*\.(gif|jpg|jpeg|png|bmp|swf|js|css|html)$
{
root /home/YYY/java/apache-tomcat-6.0.41/webapps/ROOT/;
expires 30d;
}
}
当指定了静态资源的访问目录后,就能够访问到静态文件了。
至此,需求已经解决!
在测试后,还出现了一个问题,后台需要获取用户的信息,所以需要在m.XXX.com.conf的location内添加上下面的两行,用以修改请求头:
proxy_set_header Host $http_host;
proxy_set_header X-Forward-For $remote_addr;
按理说这样就可以了,可是却出现了"502 Bad Gateway"错误,如果将第一行给删去,则可以恢复正常访问页面,如果除去注释,错误又出现了。查询了很多办法,均无法解决这个问题,兹将次问题记下,待解决了补齐!
【Nginx】关于域名转发proxy_pass的更多相关文章
- Nginx配置域名转发实例
域名:cps.45wan.com 所在阿里云主机:123.35.9.12 45wan没有在阿里云备案 67wan已经在阿里云备案 阿里云主机(假如123.35.9.12)上原来的nginx配置: ...
- nginx设置域名转发到指定端口
1.修改nginx.conf文件,将worker_processes 1 修改为 worker_processes auto 2.创建端口代理配置文件(域名地址如:xx.baidu.com , ...
- 利用Nginx实现域名转发 不修改主机头
在conf下 新建一个 文件 格式 : 域名.conf 例如:www.test.com.conf 文件里配置: server{ listen 80; server_name www.test.com ...
- nginx 配置域名转发
自己测试环境,配置下载目录和一个jenkins的地址: 域名跳转,反向代理 # cat ../nginx.conf user www www; worker_processes ; error_log ...
- Linux JDK Tomcat Nginx MariaDB 安装,Nginx 多域名转发配置
安装JDK rpm包下载地址(jdk-7u17 ): http://www.oracle.com/technetwork/java/javase/downloads/java-archive-down ...
- nginx分区域名转发 tp5域名分目录配置
需求 本来我们一般情况下都是域名abc.com解析到网站的根目录/root/public这种.但是客户突然提出了一个奇葩的需求,客户要求以后可能网站会增多,需要增加分区的功能,比如abc.com/wh ...
- 关于域名转发proxy_pass
在配置nginx的时候,有一个需求,访问m.XXX.com的时候,需要实际访问www.YYY.com/m,并且域名不能发生变化. 达成这个需求有两种做法: 第一种就是301跳转,使用rewrite来跳 ...
- Nginx配置以及域名转发
工程中的nginx配置 #user nobody; worker_processes 24; error_log /home/xxx/opt/nginx/logs/error.log; pid /ho ...
- nginx安装配置域名转发
1.安装pcre 1.[root@localhost home]# tar zxvf pcre-8.10.tar.gz //解压缩 2.[root@localhost home]# cd pcre-8 ...
随机推荐
- elasticsearch(0.90.10)安装配置+超多插件!!
一)安装elasticsearch 1)下载elasticsearch-0.90.10,解压,运行\bin\elasticsearch.bat (windwos) 2)进入http://localho ...
- mysql用户增删改
MySql中添加用户,新建数据库,用户授权,删除用户,修改密码(注意每行后边都跟个;表示一个命令语句结束): 1.新建用户 1.1 登录MYSQL: @>mysql -u root -p @&g ...
- Major Performance Impacts
- Default opaque flags (3s) - Filter size (3s) - ??? (4s) - Image refresh performance (1s)
- 24. 两两交换链表中的节点 leetcode
题目: 给定一个链表,两两交换其中相邻的节点,并返回交换后的链表. 你不能只是单纯的改变节点内部的值,而是需要实际的进行节点交换. 示例: 给定 1->2->3->4, 你应该返回 ...
- WEB新手之serialize’s revenge
最后一道题. 这道题提示比较少,一点也不友好.F12也没有什么线索.无奈之下用御剑扫下后台,发现了一个叫robots的txt文件. 打开robots.txt文件,可以得到一段代码,如下图所示. 审查代 ...
- react-route简明学习
- 洛谷P2495 [SDOI2011]消耗战(虚树)
题面 传送门 题解 为啥一直莫名其妙\(90\)分啊--重构了一下代码才\(A\)掉-- 先考虑直接\(dp\)怎么做 树形\(dp\)的时候,记一下断开某个节点的最小值,就是从根节点到它的路径上最短 ...
- Ehcache和MemCached区别及应用
ehcache是纯Java编写的,通信是通过RMI方式,适用于基于java技术的项目.memcached服务器端是c编写的,客户端有多个语言的实现,如c,PHP(淘宝,sina等各大门户网站),Pyt ...
- scrollto 到指定位置
goTo = function(target){ var scrollT = document.body.scrollTop|| document.documentElement.scrollTop ...
- unity里的c#
类方法:start只进行一次,update每一帧都会进行调用 拖动脚步到对应物体就可以将其关联 定义变量与c++相似 F2修改文件名 脚本的类名要与文件名保持一致 数组的定义:1.类型[] 数组名={ ...