之前一直用lnmp一键包,但胡子说那个包太老、编译的时间过长,于生产还是自用都点不划算,不如用dotdeb。dotdeb是一个编译好了的LAMP源,简单几个命令就可以直接安装,快速便捷。

关于如何使用dotdeb,这里就不作详述,tennfy写有很详细的教程,详见这里

使用debian7的同学把源换为debian 7即可:

echo -e 'deb http://packages.dotdeb.org wheezy all' >> /etc/apt/sources.list
echo -e 'deb-src http://packages.dotdeb.org wheezy all' >> /etc/apt/sources.list

其余的步骤一样。弄好了之后,(假设当前目录是/root/) ,查看nginx的版本信息和配置。

nginx -V

把输出的配置复制下来,后面编译nginx的时候要用到。然后到nginx官网下载个最新版,并解压:

wget http://nginx.org/download/nginx-1.7.0.tar.gz
tar zxvf nginx-1.7.0.tar.gz

安装git并下载最新的反代的模块

apt-get install -y git
git clone https://github.com/openresty/echo-nginx-module.git
git clone https://github.com/yaoweibin/ngx_http_substitutions_filter_module.git

编译新的nginx 需要一些库文件的支持,为了避免编译出错,我们下载安装这些库:

apt-get install -y libpcre3 libpcre3-dev libssl-dev openssl libxslt-dev libgd2-xpm libgd2-xpm-dev libgeoip-dev

进入nginx的目录,配置后面添加上反代的模块。

cd nginx-1.7.0/

./configure  --user=www-data --group=www-data --prefix=/usr/share/nginx --conf-path=/etc/nginx/nginx.conf --http-log-path=/var/log/nginx/access.log --error-log-path=/var/log/nginx/error.log --lock-path=/var/lock/nginx.lock --pid-path=/run/nginx.pid --http-client-body-temp-path=/var/lib/nginx/body --http-fastcgi-temp-path=/var/lib/nginx/fastcgi --http-proxy-temp-path=/var/lib/nginx/proxy --http-scgi-temp-path=/var/lib/nginx/scgi --http-uwsgi-temp-path=/var/lib/nginx/uwsgi --with-debug --with-pcre-jit --with-ipv6 --with-http_ssl_module --with-http_stub_status_module --with-http_realip_module --with-http_auth_request_module --with-file-aio --with-http_spdy_module --with-http_addition_module --with-http_dav_module --with-http_geoip_module --with-http_gzip_static_module --with-http_image_filter_module --with-http_secure_link_module --with-http_sub_module --with-http_xslt_module --with-mail --with-mail_ssl_module --add-module=/root/echo-nginx-module --add-module=/root/ngx_http_substitutions_filter_module

检查无错,就可以安装了。[图]

apt-get install build-essential
make &&make install

安装好了之后,先停止nginx,查看一下nginx的所在目录,然后把原来的nginx备份一下,然后替换掉新的nginx即可。

invoke-rc.d nginx stop
whereis nginx
cp /usr/sbin/nginx /usr/sbin/nginx.bak
cp ./objs/nginx /usr/sbin/nginx

替换成功之后,启动nginx,查看一下版本和状态[图]。

invoke-rc.d nginx start
nginx -V
nginx -t

上图所示OK,没问题。以反代v2ex为例,nginx的反代配置如下:

server {

listen 80;

server_name v2ex.yanwen.org;

index index.php index.html index.htm;

location / {

default_type text/html;

subs_filter_types text/css text/xml;

subs_filter 'www.v2ex.com' 'v2ex.yanwen.org' g;

echo_after_body '';

proxy_set_header X-Real-IP $remote_addr;

proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;

proxy_set_header Referer http://www.v2ex.com;

proxy_set_header Host www.v2ex.com;

proxy_pass http://www.v2ex.com;

proxy_set_header Accept-Encoding "";

}

}

感谢蓝冰提供的反代范例,大家这个v2ex.yanwen.org是捏造出来的,当然大家也可以反代Google,哈哈。

藏剑山庄原创文章,未经允许,禁止转载!

原文链接:https://blog.yanwen.org/archives/2091.html