跨域名内容访问代理配置教程: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>
Nginx与Apache
页:
[1]