给电子科大教务处做了个反代,以后外网也可以看通知了

电子科大的教务处通知一般都很重要,而且很恶心的设置了IP限制,只有校内的IP才能查看新闻,用外网只能看到这个坑爹的界面:UESTC-JWC

最开始一直用着一个临时的解决办法,用寝室的路由和VPS做了一个端口转发,勉强算是可以用。今天觉得端口转发的URL太丑了,看着域名后面的端口号就不爽。。。于是就申请了个域名用Apache做了个反代。结果惊奇的发现反代之后又因为IP被限制了。。。但是直接访问端口号却可以访问,折腾了一会儿发现似乎是因为Apache的反代会在Header里面留下 x-forward-from这个信息,暴露了真实的IP,但是找了很久没发现有什么办法可以去掉。。。Nginx似乎很容易就可以去掉但是因为某些原因80端口只能用Apache。。。而且用Nginx还有一个问题就是不能过滤Cookie,不能过滤Cookie的话还得清空Cookie或者换隐身模式才行,也很麻烦。稍微想了一下,就用了一个猥琐的办法:Apache把域名反代给Nginx顺便吧Cookie清空了,然后Nginx再修改Header隐藏真实的IP信息,然后再反代到用路由做的端口映射上。。。试验了之后果然成功了~撒花~

成功之后仔细想了想,似乎那里不大对劲的样子。。。用Nginx修改了Header就可以访问内网内容,那何必还要路由做端口映射呢。。。于是取消了端口映射,直接Nginx反代到教务处网站,修改Header的IP为127.0.0.1,发现居然可以访问。。。唉,我还是太高估学校的教务系统了。。。不过无论如何吧,能用就好啦~嘻嘻

申请的域名是uestc.ga  所以以后如果有校友在外网看不了教务处通知的时候,吧域名里面的.EDU.CN改成.GA就可以啦~也就是从www.jwc.uestc.edu.cn改成www.jwc.uestc.ga~别的不用动就可以了~

贴一下Apache和Nginx用得代码。。。

Apache的

<VirtualHost *:80>
ServerAdmin LazyCat@iLazyCat.com
ServerName www.jwc.uestc.ga
<Proxy *>
Order deny,allow
Allow from all
</Proxy>
ProxyRequests Off
ProxyPass / http://localhost:8080/
ProxyPassReverse / http://localhost:8080/
ProxyPassReverseCookiePath /Null /   #这一句是为了吧Cookie去掉
# CustomLog /etc/httpd/logs/Test.Custom.log combined
# ErrorLog /etc/httpd/logs/Test.Error.log
</VirtualHost>

Nginx的


upstream jwc {
server www.jwc.uestc.edu.cn;
}
server {
listen 8080;
server_name www.jwc.uestc.ga;

root html;
index index.html index.htm index.php;

location / {
proxy_pass http://jwc;

#Proxy Settings
proxy_redirect off;
proxy_set_header Host 127.0.0.1;
proxy_set_header X-Real-IP 127.0.0.1;
proxy_set_header X-Forwarded-For 127.0.0.1;  #上面的三句去掉了Header里面的真实IP信息,改成了127.0.0.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_buffer_size 4k;
proxy_buffers 4 32k;
proxy_busy_buffers_size 64k;
proxy_temp_file_write_size 64k;
}
}