centos安装nginx配置cdn全过程
Posted by admin; tagged with centos , nginx , cdn
全部使用编译安装
已上线生产环境:sns.shnu.edu.cn
两台Nginx的CDN同时给一台Apache加速
Nginx 安装环境搭建
1.安装编译工具:yum install wget make gcc gcc-c++ zlib-devel openssl openssl-devel pcre-devel gd kernel keyutils patch perl
2.开放防火墙端口:
-A INPUT -m state --state NEW -m tcp -p tcp --dport 80 -j ACCEPT
具体端口视情况修改、后台防火墙注意使用-s -sport 来允许CDN服务器访问(推荐)
3.系统约定:
软件包下载位置:/usr/local/src
软件安装位置:/usr/local/软件名
安装默认不报错
4.下载软件
Nginx 1.2.0 稳定版:wget http://nginx.org/download/nginx-1.2.0.tar.gz
pcre(用于实现Nginx伪静态):wget ftp://ftp.csx.cam.ac.uk/pub/software/programming/pcre/pcre-8.21.tar.gz
purge(清楚指定URL缓存):wget http://labs.frickle.com/files/ngx_cache_purge-1.5.tar.gz
分别解压并安装
tar zxvf nginx-1.2.0.tar.gz
tar zxvf pcre-8.21.tar.gz
tar zxvf ngx_cache_purge-1.5.tar.gz
安装Nginx
1.安装PCRE
cd /usr/local/src
mkdir /usr/local/pcre #创建安装目录
tar zxvf pcre-8.21.tar.gz
cd pcre-8.21
./configure --prefix=/usr/local/pcre && make && make install
2.安装Nginx及purge模块
groupadd nginx
添加nginx组
useradd -g nginx nginx -s /sbin/nologin
创建nginx运行账户nginx并加入到nginx组,不允许nginx用户直接登录系统
cd /usr/local/src
tar zxvf ngx_cache_purge-1.5.tar.gz
tar zxvf nginx-1.2.0.tar.gz
cd nginx-1.2.0
./configure --prefix=/usr/local/nginx --user=nginx --group=nginx --with-http_stub_status_module --with-openssl=/usr/ --with-pcre=/usr/local/src/pcre-8.21 --add-module=../ngx_cache_purge-1.5
注意:--with-pcre=/usr/local/src/pcre-8.21指向的是源码包解压的路径,而不是安装的路径
make #编译
make install #安装
/usr/local/nginx/sbin/nginx #启动nginx
chown nginx. nginx -R /usr/local/nginx/html #设置目录所有者
chmod 700 -R /usr/local/nginx/html #设置目录权限
服务脚本不发了 自己网上找 注意pid nginx.conf sbin/nginx的位置
配置Nginx
1.文件及文件夹约定
Nginx 配置文件在 /usr/local/nginx/conf 此后所有操作默认在该目录下操作
需要修改及添加的文件和文件夹分别是
新建目录:vhost
用于存放虚拟机配置文件 mkdir vhost
新建文件:upstream.conf
用于配置反向代理服务器组 touch upstream.conf
新建文件:proxy.conf
用于配置反向代理的缓存等设置 touch proxy.conf
修改文件:nginx.conf
用于配置nginx
1.配置upsteam.conf
vim upstream.conf #用于管理反向代理的服务器组
upstream example {
server 192.168.21.129:80 weight=1 max_fails=2 fail_timeout=30s;
#server为服务器IP
#weight为权重,即N次总的访问中有x次是链接到该服务器
#ip_hash;
#会话保持(解决Session)
}
:wq
2.配置proxy.conf
mkdir –p /home/proxy_temp_dir
proxy_temp_dir与proxy_cache_dir这两个文件夹必须在同一个分区
mkdir –p /home/proxy_cache_dir
proxy_cache_dir与proxy_temp_dir这两个文件夹必须在同一个分区
chown nginx.nginx –R /home/proxy_temp_dir /home/proxy_cache_dir
设置目录所有者
chmod -R 777 /home/proxy_temp_dir /home/proxy_cache_dir
设置目录权限
vim proxy.conf
proxy_temp_path /home/proxy_temp_dir; #指定临时文件目录
proxy_cache_path /home/proxy_cache_dir levels=1:2 keys_zone=cache_one:50m inactive=1d max_size=1g;
设置Web缓存区名称为cache_one,内存缓存为50MB,自动清除1天内没有被访问的文件,硬盘缓存为1GB。
client_body_buffer_size 512k;
增加缓冲区代理缓冲客户端请求的最大字节数
proxy_connect_timeout 60; #增加连接后端服务器超时时间
proxy_read_timeout 60; #增加后端服务器响应请求超时时间
proxy_send_timeout 60; #增加后端服务器发送数据超时时间
proxy_buffer_size 32k; #增加代理请求缓存区大小
proxy_buffers 4 64k; #增加
proxy_busy_buffers_size 128k; #增加系统繁忙时可申请的proxy_buffers大小
proxy_temp_file_write_size 128k; #增加proxy缓存临时文件的大小
proxy_next_upstream error timeout invalid_header