在实际项目过程中,由于网站要用到一个在线编辑器(个性化的在线编辑软件),需要跨域进行通信!由于跨域通信较多,所以当时就想到在网站服务器上代理编辑软件的请求! 这就是“反向代理”的实际需求! 一、Nginx上配置反向代理
location /edit/ {
proxy_pass http://edit.host.net/;
#Proxy Settings
proxy_redirect off;
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 Accept-Encoding "";
proxy_set_header X-NginX-Proxy true;
proxy_http_version 1.1;
proxy_next_upstream error timeout invalid_header http_500 http_502 http_503 http_504;
proxy_max_temp_file_size 0;
proxy_connect_timeout 90;
proxy_send_timeout 90;
proxy_read_timeout 90;
proxy_buffering off;
proxy_buffer_size 4k;
proxy_buffers 4 32k;
proxy_busy_buffers_size 64k;
}
在实际配置过程中,发现在线编辑软件的静态资源文件加载不进来(比如css、js、图片等),后来发现编辑器静态资源的链接都是用的相对路径!当时认为是路径问题,就在 proxy_pass 的域名后面加了“/”,目的是从根路径下引用资源文件!但是测试后发现还是存在一样的问题!最后各种尝试后,发现是以下几行配置文件:
location ~ .*\.(gif|jpg|jpeg|png|bmp|swf)$
{
expires 30d;
}
location ~ .*\.(js|css)?$
{
expires 1h;
}
就是上面的几行配置影响了静态资源的代理路径,导致静态资源加载不到(404错误)!
二、Apache上配置反向代理 在Apache配置反向代理相对比较简单了,直接贴配置代码:
<VirtualHost *:80>
DocumentRoot "D:\phpStudy\WWW\git ecshop"
ServerName http://local.www.zuimoban.com
ServerAlias
ProxyRequests On
RewriteEngine off
<Proxy *>
Order deny,allow
Allow from all
</Proxy>
ProxyPass /edit http://edit.host.net/
ProxyPassReverse /edit http://edit.host.net/
<Directory "D:\phpStudy\WWW\git ecshop">
Options FollowSymLinks ExecCGI
AllowOverride All
Order allow,deny
Allow from all
Require all granted
</Directory>
</VirtualHost>
当然,对应服务器支持反向代理的模块需要开启哦!这个一定不要忘记了! (责任编辑:最模板) |

ecshop 批量购买插件
人气:1637
丽人坊化妆品ecshop模板
人气:539
织梦dedecms金融投资管理公
人气:2199
ecshop仿优优康保健品商城
人气:433
韩国夏日风格ECSHOP服装模
人气:1067
shopex衣服网服装模板
人气:430