二零CMS 发表于 2025-5-22 17:17:23

跨域名内容访问代理配置教程:Nginx与Apache实现方法

本帖最后由 二零CMS 于 2025-5-22 17:22 编辑

在实际网站运营中,我们经常会遇到需要在B域名下访问A域名内容的需求。这种需求可能源于资源整合、CDN加速或迁移过渡等场景。本教程将详细介绍如何使用Nginx和Apache服务器实现这一功能。
一、Nginx服务器配置方法
在Nginx配置文件中添加以下内容,实现在B域名下访问A域名的特定目录:


location /20cms/ {
    proxy_pass http://你的A域名/source/plugin/erling_filedset/20cms/;
    proxy_set_header Host $host;
    proxy_set_header X-Real-IP $remote_addr;
    proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
    proxy_set_header X-Forwarded-Proto $scheme;
}


更完整的配置示例:
server {
    listen 80;
    server_name 你的B域名;
   
    location /20cms/ {
      proxy_pass http://你的A域名/source/plugin/erling_filedset/20cms/;
      proxy_set_header Host $host;
      proxy_set_header X-Real-IP $remote_addr;
      proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
      proxy_set_header X-Forwarded-Proto $scheme;
      proxy_redirect http://你的A域名/source/plugin/erling_filedset/20cms/ /20cms/;
      
      # 缓存配置
      proxy_cache my_cache;
      proxy_cache_valid 200 302 10m;
      proxy_cache_valid 404 1m;
      
      # 超时设置
      proxy_connect_timeout 60s;
      proxy_read_timeout 60s;
      proxy_send_timeout 60s;
    }
   
    # 其他location配置...
}二、Apache服务器配置方法

确保Apache已启用以下模块:
mod_proxy
mod_proxy_http
mod_headers

在Apache配置文件或.htaccess中添加:
<IfModule mod_proxy.c>
    ProxyRequests Off
    ProxyPreserveHost On
   
    <Location "/20cms/">
      ProxyPass "http://你的A域名/source/plugin/erling_filedset/20cms/"
      ProxyPassReverse "http://你的A域名/source/plugin/erling_filedset/20cms/"
      
      RequestHeader set Host "你的B域名"
      RequestHeader set X-Real-IP "%{REMOTE_ADDR}s"
      RequestHeader set X-Forwarded-For "%{REMOTE_ADDR}s"
      RequestHeader set X-Forwarded-Proto "http"
    </Location>
</IfModule>完整VirtualHost配置示例:

<VirtualHost *:80>
    ServerName 你的B域名
   
    <Proxy *>
      Require all granted
    </Proxy>
   
    ProxyRequests Off
    ProxyPreserveHost On
   
    <Location "/20cms/">
      ProxyPass "http://你的A域名/source/plugin/erling_filedset/20cms/"
      ProxyPassReverse "http://你的A域名/source/plugin/erling_filedset/20cms/"
      
      Header set Host "你的B域名"
      Header set X-Real-IP "%{REMOTE_ADDR}s"
      Header set X-Forwarded-For "%{REMOTE_ADDR}s"
      Header set X-Forwarded-Proto "http"
    </Location>
   
    # 其他配置...
</VirtualHost>


20idc 发表于 2025-5-28 08:25:38

Nginx与Apache
页: [1]
查看完整版本: 跨域名内容访问代理配置教程:Nginx与Apache实现方法