由于公司站点速度的需要,在托管的机房的双线路基础上(电信、联通[网通和联通已合并为一家])又增加了移动线路,因为两者之间在不同的机房。所以在移动机房的web上并未进行安装直接的应用,只是通过apahce做了一个转发。不过后来通过绿盟的安全扫描,发现了apache下的很多漏洞,于是决定换成nginx(nginx在静态页面上的处理经强些,而且对后端的另外的跑的tomcat 就用做连接更容易实现)。
我的原来的apache的配置内容如下:
<VirtualHost *:80>
ServerName 361way.com
RewriteEngine on
RewriteRule ^(.*) https://www.361way.com/ [R=permanent,L]
#以上语句和RewriteRule ^(.*)$ https://www.361way.com$1 [R=301,L]等效
#<Location />
# MaxConnPerIP 5
#</Location>
</VirtualHost>
<VirtualHost *:80>
ServerName www.361way.com
ProxyRequests On
#ProxyPreserveHost On
ProxyPass / https://www.361way.com/
ProxyPassReverse / https://www.361way.com/
<Proxy *>
Order Deny,Allow
Allow from all
</Proxy>
#<Location />
# MaxConnPerIP 5
#</Location>
</VirtualHost>
出于对公司信息的保密,我这里全换了自己的域名了,呵呵!上面配置的关于加不加www的重定向的语名,在nginx上应该写成:
rewrite ^(.*)$ https://www.361way.com permanent;
注:其实上面的配置是有问题的,如果是移动的线路访问的话,直接又指向了本身对应的域名,这样会陷入一个死循环,所以还需要在hosts文件中做url重定向解决这个问题。
hosts文件中做添加重定向,电信公网IP www.361way.com。 然后,我在本机的windows xp上安装nginx做实验,发现了一个奇怪的问题。我按下面的配置正常:
server {
listen 80;
server_name localhost;
#charset koi8-r;
#access_log logs/host.access.log main;
location / {
proxy_pass https://www.361way.com;
}
}
但是如果增加proxy.conf内容以后,就会出现403无法访问的错误(之前在linux下的测试都是正常的), proxy.conf内容如下:
proxy_redirect off;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr; #获取真实IP
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; #获取代理者的真实ip
client_max_body_size 10m;
client_body_buffer_size 128k;
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;
不过,因为通过移动线路的访问日志直接就记在移动机房的服务器上,后端指的电信服务器上不需要再记录通过移动线路访问的真实IP,所以也没再研究。向做个记录,以待以后再研究。