今天配置nginx反向代理的时候,发现无法加载验证码和安全问答问题
经过研究和谷歌搜索,发现原来discuz会在头部判断用户来源
所以解决办法是在nginx的虚拟主机配置中加入:
proxy_pass_header User-Agent;
proxy_set_header Host $host;
这样才能正确加载discuz中的验证码和安全问题
如果你也遇到了在nginx中无法加载discuz中的验证码,请使用上方同样的方法,我列举一个虚拟主机的配置例子:
server {
listen 80;
server_name bbs.aaa.com;
location / {
proxy_pass http://bbs.aaa.com:82;
proxy_redirect http://bbs.aaa.com:82/ /;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_pass_header User-Agent;
proxy_set_header Host $host;
}
access_log logs/bbs.aaa.com.access.log;
}
今天将最后的几个网址转移使用nginx反向代理技术
但是在转移过程中发生了乱码的问题
情况如下:
1,要转移的网站是asp做的
2,nginx监听的是80端口
3,iis监听的是81端口
用域名:81端口访问,可以正常访问,无乱码,但是直接通过nginx反向之后出现乱码,查看网站源文件,的确发现一个问题,编写在代码里面的编码是gb2312,但是很明显浏览器却识别为utf-8
不知道为什么,反正可以肯定的是nginx反向的过程中出现了问题,要不然怎么直接通过端口号访问是正确的呢?
所以考虑可能是以下2个原因:
1,nginx反向代理配置中的编码问题
2,nginx反向代理中gzip压缩的问题
通过查看和排除,原来nginx默认的编码为utf-8,而我的asp编码是gb2312,结果我修改如下,保存并重启,搞定:
charset gb2312;
那么完整的nginx反向代理出现乱码的解决方法到此结束
在配置nginx配置反向代理的时候,也许大家会遇到这样的问题,就是发现目录名称后面不加斜杠的话会自动跳转至原网址
比方说:
我将aaa.com反向到bbb.com的82端口
那么配置代码如下:
server {
listen 80;
server_name aaa.com;
location / {
proxy_pass http://bbb.com:82;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_pass_header User-Agent;
proxy_set_header Host $host;
}
access_log logs/bbb.com.access.log;
}
这样配置确实可以,但是如果你输入aaa.com/123
123是一个目录,而不是输入aaa.com/123/
那么nginx会自动原型输出为:bbb.com:82/123/
这样是很讨厌的不是吗,因为既然是反向代理,怎么可以把被代理的潜在域名显示出来呢?
解决方法如下:
加入:proxy_redirect http://bbb.com:82/ /;
这样可以完整解决关于目录结尾加斜杠和不加斜杠的跳转问题
今天配置nginx反向代理的时候,发现无法加载验证码和安全问答问题
经过研究和谷歌搜索,发现原来discuz会在头部判断用户来源
所以解决办法是在nginx的虚拟主机配置中加入:
proxy_pass_header User-Agent;
proxy_set_header Host $host;
这样才能正确加载discuz中的验证码和安全问题
如果你也遇到了在nginx中无法加载discuz中的验证码,请使用上方同样的方法,我列举一个虚拟主机的配置例子:
server {
listen 80;
server_name bbs.aaa.com;
location / {
proxy_pass http://bbs.aaa.com:82;
proxy_redirect http://bbs.aaa.com:82/ /;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_pass_header User-Agent;
proxy_set_header Host $host;
}
access_log logs/bbs.aaa.com.access.log;
}
———————-
1,公司服务器上的二级域名,如:baidu.com.hao123.com,下面都应该加上空的robos.txt,内容如下:
User-agent: *
Disallow: /
2,所有二级域名上线做优化的,必须使用干净的404,内容如下:
403 Forbidden
Forbidden
You don’t have permission to access /
on this server.
3,香港VPS上必须单独配置robots.txt的指向到www.baidu.com/robots_none.txt
(只要反向到国内服务器,反向到自身服务器81/82端口不需要)
————————————————————————————————
近期评论