Nginx反向代理并替换原网址

林继 VPS 知识 2,168 共写了420个字 (2012-12-30 13:30:41) 没有评论 打印 扫描二维码 百度未收录

安装好Nginx一些预备软件,完毕站点配置:

前端全缓存,反向代理脚本

#新建2个目录,放置缓存文件:

  1. mkdir /home/cache/path -p
  2. mkdir /home/cache/temp -p

修改 nginx.conf 新增以下代码,主要是缓存相关设置,请放置于 http{ ##这里 } 中,一般加在 log_format 上面或下面均可:

  1. client_body_buffer_size 512k;
  2. proxy_connect_timeout 5;
  3. proxy_read_timeout 60;
  4. proxy_send_timeout 5;
  5. proxy_buffer_size 16k;
  6. proxy_buffers 4 64k;
  7. proxy_busy_buffers_size 128k;
  8. proxy_temp_file_write_size 128k;
  9. proxy_temp_path /home/cache/temp;
  10. proxy_cache_path /home/cache/path levels=1:2 keys_zone=cache_one:500m inactive=7d max_size=30g;
  11. #500m是内存占用,7d是7天无访问删除,30g是缓存占具硬盘空间

最简单的反向代理脚本(只要修改2个网址,存成conf文件放置于vhost下):

  1. server
  2. {
  3. listen 80;
  4. server_name www.li.cm;
  5. location / {
  6. proxy_pass 地址/;
  7. proxy_redirect off;
  8. proxy_set_header X-Real-IP $remote_addr;
  9. proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
  10. }
  11. }

反向代理并替换原网址:

  1. server {
  2. listen 80;
  3. server_name www.li.cm; #绑定的域名
  4. access_log off; #关闭日志
  5. location / {
  6. subs_filter ‘www.baidu.com’ ‘www.li.cm’ gi;#替换链接
  7. subs_filter ‘百度’ ‘度娘’ gi;#替换文本
  8. proxy_set_header referer http://www.baidu.com;#如果网站有验证码,可以解决验证码不显示问题
  9. proxy_set_header X-Real-IP $remote_addr;
  10. proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
  11. proxy_set_header Host www.baidu.com; #定义主机头,如果目标站点绑定的域名个server_name项的吻合则使用$host
  12. proxy_pass http://www.baidu.com; #指定目标,建议使用IP或者nginx自定义池
  13. proxy_set_header Accept-Encoding “”; #清除编码
  14. }
  15. }

(记住subs_filter 命令的格式,你想替换设么就随你了。)

使配置生效

另外, 反向代理的个数是不限制的。只要你掌握了规则,一个网站下可以包含n多个网站的镜像。 一个
nginx 上也可以跑 n多个网站。就看你自己怎么运用了。

唯一的已知缺陷是登陆后会自动跳转回原网址,以后解决了再更新

如果觉得我的文章对您有用,请随意赞赏。您的支持将鼓励我继续创作!

发表评论

电子邮件地址不会被公开。 必填项已用*标注

< >