<?xml version="1.0" encoding="UTF-8" ?>
<rss version="2.0">
<channel>
<title><![CDATA[Totti的部落格]]></title> 
<link>https://iam.ittot.com/index.php</link> 
<description><![CDATA[记录我的生活，收集我的收集]]></description> 
<language>zh-cn</language> 
<copyright><![CDATA[Totti的部落格]]></copyright>
<item>
<link>https://iam.ittot.com/read.php/.htm</link>
<title><![CDATA[给DirectAdmin面板增加nginx前端]]></title> 
<author>Totti &lt;totti5116@163.com&gt;</author>
<category><![CDATA[收集]]></category>
<pubDate>Thu, 29 Nov 2012 16:24:33 +0000</pubDate> 
<guid>https://iam.ittot.com/read.php/.htm</guid> 
<description>
<![CDATA[ 
	装好Directadmin面板之后,如果高并发流量进来,apache跑起来还是很吃力的.因此在前面装个nginx是很有必要的.但是由于我对 directadmin的api还不熟悉.对它绑定域名这块没有较好的方法.不能实现动静分离. 装上nginx也只是起到一个缓存和keepalive的作用.nginx监听80端口.apache监听81端口.<br/><br/>安装还是很简单的.我只在CentOS环境中测试.在Debian平台上没有测试.大家自己测试一下呗.OK.step&nbsp;&nbsp;by step...<br/><br/>第一步,安装nginx.这里我没有安装pcre库.伪静态 还是沿用apache的.htaccess.<br/><br/>cd /usr/local/src/<br/>wget <a href="http://nginx.org/download/nginx-0.7.65.tar.gz" target="_blank">http://nginx.org/download/nginx-0.7.65.tar.gz</a><br/>tar -zxf nginx-0.7.65.tar.gz<br/>cd nginx-0.7.65<br/>./configure --user=apache --group=apache --prefix=/etc/nginx&nbsp;&nbsp;--sbin-path=/usr/sbin/nginx&nbsp;&nbsp;--conf-path=/etc/nginx/conf/nginx.conf&nbsp;&nbsp;--pid-path=/var/log/nginx/nginx.pid&nbsp;&nbsp;--error-log-path=/var/log/nginx/error.log&nbsp;&nbsp;--http-log-path=/var/log/nginx/access.log&nbsp;&nbsp;--http-client-body-temp-path=/tmp/nginx_client&nbsp;&nbsp;--http-proxy-temp-path=/tmp/nginx_proxy&nbsp;&nbsp;--http-fastcgi-temp-path=/tmp/nginx_fastcgi&nbsp;&nbsp;--with-http_stub_status_module<br/>make<br/>make install<br/>添加启动脚本<br/><br/>#! /bin/sh<br/>ulimit -n 65535<br/># Description: Startup script for nginx<br/># chkconfig: 2345 55 25<br/>PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin<br/>DESC="nginx daemon"<br/>NAME=nginx<br/>DAEMON=/usr/sbin/$NAME<br/>CONFIGFILE=/etc/nginx/conf/nginx.conf<br/>PIDFILE=/var/log/nginx/$NAME.pid<br/>SCRIPTNAME=/etc/init.d/$NAME<br/>set -e<br/>[ -x "$DAEMON" ] &#124;&#124; exit 0<br/>do_start() &#123;<br/>$DAEMON -c $CONFIGFILE &#124;&#124; echo -n "nginx already running"<br/>&#125;<br/>do_stop() &#123;<br/>kill -INT `cat $PIDFILE` &#124;&#124; echo -n "nginx not running"<br/>&#125;<br/>do_reload() &#123;<br/>kill -HUP `cat $PIDFILE` &#124;&#124; echo -n "nginx can't reload"<br/>&#125;<br/>case "$1" in<br/>start)<br/>echo -n "Starting $DESC: $NAME"<br/>do_start<br/>echo "."<br/>;;<br/>stop)<br/>echo -n "Stopping $DESC: $NAME"<br/>do_stop<br/>echo "."<br/>;;<br/>reload)<br/>echo -n "Reloading $DESC configuration..."<br/>do_reload<br/>echo "."<br/>;;<br/>restart)<br/>echo -n "Restarting $DESC: $NAME"<br/>do_stop<br/>sleep 1<br/>do_start<br/>echo "."<br/>;;<br/>*)<br/>echo "Usage: $SCRIPTNAME &#123;start&#124;stop&#124;reload&#124;restart&#125;" >&2<br/>exit 3<br/>;;<br/>esac<br/>exit 0<br/>嗯嗯.这个脚本很熟悉吧,呵呵.记得赋予执行权限,chmod 755 /etc/init.d/nginx&nbsp;&nbsp;接着设置nginx.conf.<br/><br/>mv /etc/nginx/conf/nginx.conf /etc/nginx/conf/nginx.conf.bak<br/>mkdir /etc/nginx/conf/ips<br/>vim /etc/nginx/conf/nginx.conf<br/>输入以下内容<br/><br/>worker_processes&nbsp;&nbsp;2;<br/>worker_rlimit_nofile&nbsp;&nbsp;65535;<br/>events &#123;<br/>worker_connections&nbsp;&nbsp;65535;<br/>use epoll;<br/>&#125;<br/>error_log&nbsp;&nbsp;/var/log/nginx/error.log info;<br/>http &#123;<br/>include&nbsp;&nbsp;&nbsp;&nbsp;mime.types;<br/>default_type&nbsp;&nbsp;application/octet-stream;<br/>sendfile on;<br/>tcp_nopush on;<br/>tcp_nodelay on;<br/>keepalive_timeout 65;<br/>gzip on;<br/>gzip_http_version 1.0;<br/>gzip_min_length&nbsp;&nbsp;1100;<br/>gzip_comp_level&nbsp;&nbsp;3;<br/>gzip_buffers&nbsp;&nbsp;4 32k;<br/>gzip_types&nbsp;&nbsp;&nbsp;&nbsp;text/plain text/xml text/css application/x-javascript&nbsp;&nbsp;application/xml application/xml+rss text/javascript&nbsp;&nbsp;application/atom+xml;<br/>ignore_invalid_headers on;<br/>client_header_timeout&nbsp;&nbsp;3m;<br/>client_body_timeout 3m;<br/>send_timeout&nbsp;&nbsp;&nbsp;&nbsp; 3m;<br/>connection_pool_size&nbsp;&nbsp;256;<br/>server_names_hash_max_size 2048;<br/>server_names_hash_bucket_size 256;<br/>client_header_buffer_size 256k;<br/>large_client_header_buffers 4 256k;<br/>request_pool_size&nbsp;&nbsp;32k;<br/>output_buffers&nbsp;&nbsp; 4 64k;<br/>postpone_output&nbsp;&nbsp;1460;<br/>open_file_cache max=1000 inactive=300s;<br/>open_file_cache_valid&nbsp;&nbsp;&nbsp;&nbsp;600s;<br/>open_file_cache_min_uses 2;<br/>open_file_cache_errors&nbsp;&nbsp; off;<br/>include "/etc/nginx/conf/ips/*.conf";<br/>&#125;<br/>在/etc/nginx/conf/ips路径下.添加监听的IP地址的虚拟主机配置,有多个IP.就添加多几个主机配置,以 192.168.2.1为例:<br/><br/>server &#123;<br/>listen 192.168.2.1:80;<br/>server_name _;<br/>access_log off;<br/>error_page 400 401 402 403 404 405 406 407 408 409 500 501 502 503 504&nbsp;&nbsp;@backend;<br/>location @backend &#123;<br/>internal;<br/>client_max_body_size&nbsp;&nbsp;&nbsp;&nbsp;100m;<br/>client_body_buffer_size 128k;<br/>proxy_send_timeout&nbsp;&nbsp; 300;<br/>proxy_read_timeout&nbsp;&nbsp; 300;<br/>proxy_buffer_size&nbsp;&nbsp;&nbsp;&nbsp;32k;<br/>proxy_buffers&nbsp;&nbsp;&nbsp;&nbsp; 256 32k;<br/>proxy_busy_buffers_size 512k;<br/>proxy_temp_file_write_size 64k;<br/>proxy_connect_timeout 30s;<br/>proxy_pass <a href="http://192.168.2.1:81;" target="_blank">http://192.168.2.1:81;</a><br/>proxy_set_header&nbsp;&nbsp; Host&nbsp;&nbsp; $host;<br/>proxy_set_header&nbsp;&nbsp; X-Real-IP&nbsp;&nbsp;$remote_addr;<br/>proxy_set_header&nbsp;&nbsp; X-Forwarded-For $proxy_add_x_forwarded_for;<br/>&#125;<br/>location / &#123;<br/>client_max_body_size&nbsp;&nbsp;&nbsp;&nbsp;100m;<br/>client_body_buffer_size 128k;<br/>proxy_send_timeout&nbsp;&nbsp; 300;<br/>proxy_read_timeout&nbsp;&nbsp; 300;<br/>proxy_buffer_size&nbsp;&nbsp;&nbsp;&nbsp;32k;<br/>proxy_buffers&nbsp;&nbsp;&nbsp;&nbsp; 256 32k;<br/>proxy_busy_buffers_size 512k;<br/>proxy_temp_file_write_size 64k;<br/>proxy_connect_timeout 30s;<br/>proxy_pass <a href="http://192.168.2.1:81/;" target="_blank">http://192.168.2.1:81/;</a><br/>proxy_set_header&nbsp;&nbsp; Host&nbsp;&nbsp; $host;<br/>proxy_set_header&nbsp;&nbsp; X-Real-IP&nbsp;&nbsp;$remote_addr;<br/>proxy_set_header&nbsp;&nbsp; X-Forwarded-For $proxy_add_x_forwarded_for;<br/>&#125;<br/>&#125;<br/>上例中的error_page都转发到后端.<br/>第二步,给apache安装rpaf模块<br/><br/>cd /usr/local/src/<br/>wget <a href="http://stderr.net/apache/rpaf/download/mod_rpaf-0.6.tar.gz" target="_blank">http://stderr.net/apache/rpaf/download/mod_rpaf-0.6.tar.gz</a><br/>tar -zxf mod_rpaf-0.6.tar.gz<br/>cd mod_rpaf-0.6<br/>/usr/sbin/apxs -i -c -n mod_rpaf-2.0.so mod_rpaf-2.0.c<br/>安装完了之后.编辑/etc/httpd/conf/httpd.conf文件.添加以下内容:<br/><br/>LoadModule rpaf_module /usr/lib/apache/mod_rpaf-2.0.so<br/>#Mod_rpaf settings<br/>RPAFenable On<br/>RPAFproxy_ips 127.0.0.1 [your_ips]<br/>RPAFsethostname On<br/>RPAFheader X-Forwarded-For<br/>[your_ips]改成你自己的监听IP<br/><br/>第三步,修改DirectAdmin设置<br/><br/>这一步要做的是修改默认apache的监听端口.需要对apache的配置有一定的认识.进入/usr/local/directadmin/data /templates目录.可以看到很多设置文件.这些文件都是默认建立账户或绑定域名时.directadmin会根据这些模板生成相关程序的参数配置 文件.<br/><br/>主要要修改的文件包括: ips_virtual_host.conf virtual_host2_sub.conf&nbsp;&nbsp;virtual_host.conf virtual_host_sub.conf httpd.conf&nbsp;&nbsp;redirect_virtual_host.conf virtual_host2.conf&nbsp;&nbsp;在这些文件中,搜索"80",改成"81".这一步没什么好说的了.细心一点改.<br/><br/>此外还要修改已绑定域名的配置文件.位于/etc/httpd/conf /usr/local/directadmin/data/users/&nbsp;&nbsp;两处目录.进入以上路径后可以使用以下命令查找端口.<br/><br/>grep 80 . -r<br/>端口还是改成"81".然后还是细心一点.最后重启一下nginx和httpd.完事了...<br/><br/>tip:1.建议关闭apache的Deflate模块.直 接在/etc/httpd/conf/httpd.conf中注释掉Deflate模块那一段.在第165行.<br/>2.如果想要在httpd重启的时候一并重启nginx.可以在/etc/init.d/httpd中自行添加命令.
]]>
</description>
</item><item>
<link>https://iam.ittot.com/read.php/.htm#blogcomment</link>
<title><![CDATA[[评论] 给DirectAdmin面板增加nginx前端]]></title> 
<author> &lt;user@domain.com&gt;</author>
<category><![CDATA[评论]]></category>
<pubDate>Thu, 01 Jan 1970 00:00:00 +0000</pubDate> 
<guid>https://iam.ittot.com/read.php/.htm#blogcomment</guid> 
<description>
<![CDATA[ 
	
]]>
</description>
</item>
</channel>
</rss>