Discuz!官方免费开源建站系统

 找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索

[求助] 刚装的DZ NT3.5.2,使用反向代理.后端端口号不是80,结果前台页面中出现了后端的端口号

[复制链接]
duxer 发表于 2011-9-7 18:57:17 | 显示全部楼层 |阅读模式
本帖最后由 duxer 于 2011-9-7 21:05 编辑

比如后端的服务器IP地址:192.168.1.3,端口为8801

对外的服务器IP地址:192.168.1.2,端口为80

现在DZ是装在192.168.1.3这台上面的,因为其它问题不能使用80端口.然后在192.168.1.2这台服务器上使用NGINX反向代理192.168.1.3.

假设论坛域名绑定在192.168.1.2上,域名为http://bbs.mybbs.com/

现在通过
http://bbs.mybbs.com/浏览的时候,其它都正常,就是JS目录不对.JS的地址加上了端口号
如下

  1. <script type="text/javascript" src="http://bbs.mybbs.com:8801/bbs/javascript/common.js"></script>
  2. <script type="text/javascript" src="http://bbs.mybbs.com:8801/bbs/javascript/template_report.js"></script>
  3. <script type="text/javascript" src="http://bbs.mybbs.com:8801/bbs/javascript/template_utils.js"></script>
  4. <script type="text/javascript" src="http://bbs.mybbs.com:8801/bbs/javascript/ajax.js"></script>
复制代码


这明显不对了,bbs.mybbs.com也就是192.168.1.2这台只开放了80端口.

请问这个在哪里设置呢?谢谢了


附NGINX代理配置
  1. location ~*.*\.(aspx|ashx){
  2.         proxy_set_header Accept-Encoding "none";
  3.         proxy_redirect off;
  4.         proxy_set_header Host "bbs.mybbs.com";
  5.         proxy_set_header X-Real_IP $remote_addr;
  6.         proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
  7.         proxy_connect_timeout     120s;
  8.         proxy_read_timeout       120s;
  9.         proxy_send_timeout       120s;
  10.         proxy_pass http://192.168.1.103:8801;
  11. }
复制代码




 楼主| duxer 发表于 2011-9-7 21:18:11 | 显示全部楼层
本帖最后由 duxer 于 2011-9-7 21:18 编辑

没办法了,看了源代码,找来找去,找到源头,只有自己修改源代码了,还要感谢DZ NT开源.
  1. /// <summary>
  2.         /// 获取站点根目录URL
  3.         /// </summary>
  4.         /// <returns></returns>
  5.         public static string GetRootUrl(string forumPath)
  6.         {
  7.             int port = HttpContext.Current.Request.Url.Port;
  8.             return string.Format("{0}://{1}{2}{3}",
  9.                                  HttpContext.Current.Request.Url.Scheme,
  10.                                  HttpContext.Current.Request.Url.Host.ToString(),
  11.                                  "",
  12.                                  forumPath);
  13.         }
复制代码


Discuz.Common项目下Utils.cs文件,第2539行,改成上面的,就不会加上端口号了,但也有一个问题,如果对外的论地址本身就不是80端口,那么就要出错,这个只适合反向代理中后端服务器不是80端口的情况.

自娱自乐了.......
回复

使用道具 举报

§Katim~ 发表于 2011-10-12 17:55:04 | 显示全部楼层
会出现 网站获取的都是内网的IP?
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|Discuz! 官方站 ( 皖ICP备16010102号 )star

GMT+8, 2024-12-25 13:09 , Processed in 0.021455 second(s), 3 queries , Gzip On, Redis On.

Powered by Discuz! X3.4

Copyright © 2001-2023, Tencent Cloud.

快速回复 返回顶部 返回列表