【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 ...
随机推荐
- RDD介绍与执行
repartition 增加或减少分区.会产生shuffle.(多个分区分到一个分区不会产生shuffle) coalesce coalesce常用来减少分区,第二个参数是减少分区的过程中是否产生sh ...
- log4net 入门使用
log4net 是dotnet平台下的一个日记记录组件. 一 NuGet中安装log4net包: 二 配置log4net.config文件 配置文件内容: <?xml version=&quo ...
- Android 画闹钟
1.今天就来模仿一下这个小闹钟的 2.思路: 先画闹钟的圆盘 ,在通过Path来画指针 两个耳朵其实就是用两个圆被一个大圆截取后留下的,并旋转一定度数后生成 3.直接上代码: public class ...
- 关于获取客户端Mac地址
private static string GetClientMAC() { string mac_dest = string.Empty; try { string strClientIP = Ht ...
- 查看SSD寿命
查看SSD寿命 起初买mac book pro的时候挺担心SSD使用寿命的,过保了后,还搞了个移动硬盘,尽可能的把编译什么的都移动到移动硬盘上进行,实际上这样做都是没有必要的. 安装软件smartct ...
- 从hive将数据导出到mysql(转)
从hive将数据导出到mysql http://abloz.com 2012.7.20 author:周海汉 在上一篇文章<用sqoop进行mysql和hdfs系统间的数据互导>中,提到s ...
- django 快捷代码提示
1.右键项目,Mark Directory As Source Root 2.settings配置 3.import包时可忽略app名了
- Android 增量更新研究
Android 增量更新实例(Smart App Updates) http://blog.csdn.net/duguang77/article/details/17676797 Android AP ...
- JComboBox组件的列表实时更新
JComboBox deleteUser = new JComboBox(queryUser()); //queryUser()的返回值为字符串数组 deleteUser.setModel(new D ...
- jquery展开收缩列表
<!DOCTYPE html> <html lang="zh-CN"> <head> <meta charset="UTF-8& ...