配置Nginx反向代理

一、最简单的反向代理脚本

server
       {
       listen          80;
       server_name     t.2dan.cc;

       location / {
       proxy_pass              http://twitter.com/;
       proxy_redirect          off;
       proxy_set_header        X-Real-IP       $remote_addr;
       proxy_set_header        X-Forwarded-For $proxy_add_x_forwarded_for;
                     }
       }

添加好后,先执行:

/usr/local/nginx/sbin/nginx -t

检查配置是否正常,如果显示:

the configuration file /usr/local/nginx/conf/nginx.conf syntax is ok
configuration file /usr/local/nginx/conf/nginx.conf test is successful

则正常,否则按错误提示修改配置。
再执行

/etc/init.d/nginx reload

使配置生效,域名解析生效后就可以通过t.2dan.cc 访问twitter了。

二、最简单的前端全缓存,反向代理脚本
首先新建2个目录,放置缓存文件:

mkdir /home/cache/path -p
mkdir /home/cache/temp -p

修改 /usr/local/nginx/conf/nginx.conf 新增以下代码,主要是缓存相关设置,请放置于 http{ ##这里 } 中

include       mime.types;
default_type  application/octet-stream;
sendfile        on;
tcp_nopush      on;
client_max_body_size 10m;
client_body_buffer_size 128k;
proxy_connect_timeout    300;
proxy_read_timeout       300;
proxy_send_timeout       300;
proxy_buffer_size        64k;
proxy_buffers            4 512k;
proxy_busy_buffers_size 512k;
proxy_temp_file_write_size 512k;
proxy_temp_path   /home/cache/temp;
proxy_cache_path  /home/cache/path levels=1:2 keys_zone=cache_one:500m inactive=3d max_size=50g;
#500m是内存占用,3d是3天无访问删除,50g是缓存占具硬盘空间

gzip  on;
gzip_min_length 1k;
gzip_buffers 4 16k;
gzip_http_version 1.1;
gzip_comp_level 2;
gzip_types text/plain application/x-javascript text/css application/xml;
gzip_vary on;

upstream 2dan {
    server t.2dan.cc:80 weight=4;
}

以下为虚拟主机配置文件,可另存成 .conf 放置于 vhost 下面:

server
{
listen          80;
server_name     www.2dan.cc; #主机名
location / {
proxy_cache cache_one;
proxy_cache_valid  200 304 3d;
proxy_cache_key $host$uri$is_args$args;
proxy_pass http://2dan;
proxy_redirect off;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
expires 1d;
access_log off;
error_log /var/log/nginx/2dan.error.log error;
}
}

访问几下网站,用 df -sh 命令,查看 /home/cache 目录大小,即可测试是否缓存成功。此脚本为前端全缓存,后端动态更新后,前端不会自动修改。可手动清理cache目录下文件。

标签:Nginx, 反向代理

添加新评论