WDlinux官方论坛's Archiver

HanYec 发表于 2015-7-24 22:49

利用反向代理使后台绑定域名并使用80端口和443端口安全连接

近日突发奇想,想要通过本地反向代理,将WDCP后台绑定到域名并使用80端口和SSL安全证书,下面是教程:

[b]由于这里是使用的nginx反向代理,使用下面方法要求WDCP的“web服务引擎”中必须含有nginx才能生效。[/b]

假设要绑定的域名为 cp.example.com 本机后台端口为 8080

1. cd到nginx的站点配置目录
[code]cd /www/wdlinux/nginx/conf/vhost[/code]


2. 新建配置文件
[code]vim cp.example.com.conf[/code]


3.输入反向代理的配置信息
[code]server {
  listen 80;
  server_name        cp.sample.com;
  location / {
    proxy_pass 127.0.0.1:8080;
    proxy_redirect off;
    proxy_hide_header Vary;
    proxy_set_header Accept-Encoding '';
    proxy_set_header Referer $http_referer;
    proxy_set_header Cookie $http_cookie;
    proxy_set_header Host $host;
    proxy_set_header X-Real-IP $remote_addr;
    proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;            
  }
}[/code]
注意替换配置中的[b]域名[/b]和[b]端口[/b]。

4.重启nginx服务
[code]/www/wdlinux/nginx/sbin/nginx -s reload[/code]

[b]现在开始就已经可以正常的访问功能,但是由于是反向代理,后台显示的IP全都是127.0.0.1,这样会造成很多问题,于是我们应该借助后台使用的Apache的MOD解决这个问题[/b]

5.下载并安装 mod_rpaf

由于网上流畅的mod_rpaf下载地址已经失效,我吧文件就放在 http://pan.baidu.com/s/1gdq6FFP 了,下载并上传到服务器,运行下面命令安装
[code]tar xvfz mod_rpaf-0.6.tar.gz
cd mod_rpaf-0.6
/www/wdlinux/wdapache/bin/apxs -i -c -n mod_rpaf-2.0.so mod_rpaf-2.0.c[/code]

6.配置wdapache
[code]vim /www/wdlinux/wdapache/conf/httpd.conf[/code]
并在最下方添加:
[code]LoadModule rpaf_module        modules/mod_rpaf-2.0.so
<IfModule mod_rpaf.c>
RPAFenable On
RPAFsethostname On
RPAFproxy_ips 127.0.0.1  #注意再加上服务器内外网ip用空格分隔
RPAFheader X-Fo[/code]

7.重启wdapache
运行下列命令,温和重启后台服务器
[code]/www/wdlinux/wdapache/bin/apachectl -k graceful[/code]


[b]至此一切完成[/b]

如果你想用后台的https安全连接

就将第三部的配置文件更改为
[code]server {
  listen 80;
  server_name cp.example.com;
  rewrite ^/(.*)$ https://cp.example.com/$1
  permanent;
}


server
{
  listen 443;
  server_name cp.example.com;

  ssl on;
  ssl_certificate /www/wdlinux/ssl.crt;
  ssl_certificate_key /www/wdlinux/ssl.key;

  location / {
    proxy_pass 127.0.0.1:8080;
    proxy_redirect off;
    proxy_hide_header Vary;
    proxy_set_header Accept-Encoding '';
    proxy_set_header Referer $http_referer;
    proxy_set_header Cookie $http_cookie;
    proxy_set_header Host $host;
    proxy_set_header X-Real-IP $remote_addr;
    proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;            
  }
}[/code]

并 [b]上传证书文件和密钥到相应的位置[/b] 就一切完成了。

HanYec 发表于 2015-7-24 22:50

[b]另外还有一个问题 就是phpmyadmin无法访问,会跳转到127.0.0.1的原始地址,不知道是不是phpmyadmin的安全机制问题,希望路过的大神解决一下[/b]

HanYec 发表于 2015-7-24 23:44

[b]重要失误:[/b]第六步添加那里丢了点东西,全文是[code]LoadModule rpaf_module        modules/mod_rpaf-2.0.so
<IfModule mod_rpaf.c>
RPAFenable On
RPAFsethostname On
RPAFproxy_ips 127.0.0.1  #注意再加上服务器内外网ip,用空格分隔
RPAFheader X-Forwarded-For
</IfModule>[/code]管理员看到帮忙编辑一下 自己不能编辑了

yueyanwen 发表于 2015-7-28 23:02

楼主是好人啊。  我想请教一下啊。  能不能给我推荐几个教程啊 基础的 让我理解理解反向代理。  可不可以隐藏我的传奇SF的IP地址啊?

cnbjx 发表于 2015-8-9 13:32

[b]回复 [url=http://www.wdlinux.cn/bbs/redirect.php?goto=findpost&pid=70766&ptid=39836]1#[/url] [i]HanYec[/i] [/b]


我使用的是hyper-v, 物理机用nginx 反向到虚拟机。==========================================================

郁闷死,弄了半天IP还是反向的IP . 查看PHPINFO  X-Real-IP X-Forwarded-For 都已经显示成真实的IP了。
这个配置难道有错误? 后台登录IP还是全部显示 192.168.188.1

LoadModule rpaf_module modules/mod_rpaf-2.0.so
<IfModule mod_rpaf.c>

RPAFenable On

RPAFsethostname On

RPAFproxy_ips 192.168.188.1

RPAFheader X-Forwarded-For
</IfModule>




关于 phpmyadmin , 以前测试过,反代后使用 http://wdcp.test.com/phpmyadmin 访问不了,加上 / 即 test.com/phpmyadmin/ 就可以正常访问。

我是加一条rewrite 解决。

server {

listen       80;

server_name  wdcp.test.com ;

[color=#ff0000]rewrite ^/phpmyadmin$ /phpmyadmin/ permanent;[/color]

location / {

proxy_pass http://192.168.188.32:9090;

}
}

cnbjx 发表于 2015-8-9 15:51

可以了,注释掉去掉 IF

LoadModule rpaf_module modules/mod_rpaf-2.0.so
#<IfModule mod_rpaf.c>
        RPAFenable On
        RPAFsethostname On
        RPAFproxy_ips 127.0.0.1 192.168.188.1
        RPAFheader X-Forwarded-For
#</IfModule>

页: [1]

Powered by Discuz! Archiver 7.2  © 2001-2009 Comsenz Inc.