至于怎么安装nginx我很少说,你们看网上的资料应该就没问题了。
首先aaa.com是浏览者访问的域名,web.aaa.com:88是指被访问的真实网站所在域名。
1.来看看大多数状况:
server{
listen 80;
server_name aaa.com;
location / {
proxy_pass http://web.aaa.com:88;
proxy_redirect off;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
}
}
这种状况的实用范围很广但也有它的局限性,通常用来创建镜像站点,固然这没有任何意义。
2.高级一点的,为何说高级呢?由于网上这种方法介绍的不多:
server{
listen 80;
server_name aaa.com;
location / {
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header Host aaa.com; #定义主机头,若是目标站点已经绑定供浏览的域名则使用$host
proxy_pass http://web.aaa.com:88; #被代理网站的IP地址
proxy_set_header Accept-Encoding "";
}
}
这样设置与第一种有什么区别呢?第一种方法返回给后端服务器的是web.aaa.com的主机头地址,而这种方法返回给服务器的是aaa.com的主机头。均可以用来实现端口转换或web端口穿透。
3.假如我国外有一个网站ip:1.1.1.1用域名www.aaa.com访问,我在国内有一台服务器ip:2.2.2.2想用来缓存这个网站,加上智能dns实现简单的cdn效果如何设置呢?
首先设置智能dns国外线路解析到国外的网站ip:1.1.1.1,国内线路解析到国内缓存服务器ip:2.2.2.2,那么配置代码是:
server{
listen 80;
server_name www.aaa.com;
location / {
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header Host www.aaa.com; #定义主机头,若是目标站点已经绑定供浏览的域名则使用$host
proxy_pass http://2.2.2.2; #被代理网站的IP地址
proxy_set_header Accept-Encoding "";
}
}
但以上配置还没开启缓存功能,如下是开缓存,在配置文件中加入以下所示的内容:
http {
proxy_cache_path /data/nginx/cache levels=1:2 keys_zone=STATIC:10m inactive=24h max_size=1g;
#设置缓存目录,缓存周期,缓存大小等。
server {
location / {
proxy_pass http://1.1.1.1; #被缓存服务器ip
proxy_set_header Host $host; #定义主机头,可用实际网址替换$host
proxy_cache STATIC;
proxy_cache_valid 200 1d; #缓存状态200 时间1天
proxy_cache_use_stale error timeout invalid_header updating http_500 http_502 http_503 http_504;
}
}
}nginx