Techyou labs
真正的爱应该超越生命的长度、心灵的宽度、 灵魂的深度
常用标签
您正在查看:2010年9月

CSS(层叠样式表)是一种简单的设计语言,能够将页面变漂亮这回事儿变的简单化。在HTML和XHTML中设定页面的样式,这是最常用的应用。但
也可以应用于
XML类的文档,包括SVG和XUL。他负责管理网页的设计和外观。使用CSS,你可以控制文字的颜色、字体、段落间距、分栏的数目大小布局、背景图片颜
色,以及其他很多种的效果。接下来才是要说的是学习并掌握CSS的20个绝佳站点。这里收集到的CSS站点能使你从初学者到高级人员。这些能协助你开发和
改进网站。恩,随便看看吧。

   Csstutorial
Csstutorial
这个站点全部是关于CSS的。万一你不熟悉CSS:CSS是HTML的一种姐妹技术,可以设计你的页面。这些细节都在教程里面,不过现在我就可以说Css可以让你页面看起来更好!

本文来自
http://blog.csdn.net/heiyeshuwu/archive/2007/08/22/1753900.aspx

偶然看到几个小巧有趣的Web Server程序,觉得有必要拿来分享一下,让大家除了知道Apache、IIS之外,原来还有更多有趣的选择。主要介绍了:micro_httpd、 mini_httpd、thttpd、lighttpd、shttpd 等无款小巧好用的httpd。

【 micro_httpd - really small HTTP server】

特点:
* 支持安全的 .. 上级目录过滤
* 支持通用的MIME类型
* 支持简单的目录
* 支持目录列表
* 支持使用 index.html 作为首页
* Trailing-slash redirection
* 程序总共代码才200多行

这个httpd适合学习简单的Web Server编写学习,因为它只有一个简单的框架,只能够处理简单的静态页,可以考虑用来放静态页。

非动态页面,html文件,全部本地缓存。

server {
        listen 80 default;
        server_name  www.a.com;
    index index.php index.html index.htm;
    #root  /home/techyou/public_html/cdn.pagedns.com;
    #charset koi8-r;
    #include limit.conf;
    #limit_conn   one  5;
    #limit_rate  1m;
        open_file_cache max=2000 inactive=2h;
    open_file_cache_valid 3h;
    open_file_cache_errors off;
    #include location.conf;
    location / {
        #反向通用配置
        include proxy.conf;
        location ~ .*\.(js|css|gif|jpg|jpeg|png|bmp|swf|flv)$ {
        #缓存容器(针对虚拟机有效)
        proxy_cache cache_default;
        #backend source
        if ( !-e $request_filename){
            proxy_pass http://www.b.com;
        }
        expires 30d;
        }
        #backend source
        proxy_pass http://www.b.com;
        #include proxy upstream
        #include proxyupstream.conf;
    }
    #purge cache
    include purgecache.conf;
    access_log  off;
}

Nginx+Apache(suexec+fcgid)+PHP5.3.x+Mysql5.1.x+Pureftpd+Quota服务器部署笔记
首选32bit centos
源码包全部放在/usr/src/source_package下
1:初始化环境

#yum -y install gcc gcc-c++ autoconf libjpeg libjpeg-devel libpng libpng-devel freetype freetype-devel libxml2 libxml2-devel zlib zlib-devel glibc glibc-devel glib2 glib2-devel bzip2 bzip2-devel ncurses ncurses-devel curl curl-devel e2fsprogs e2fsprogs-devel krb5 krb5-devel libidn libidn-devel openssl openssl-devel mhash mhash-devel libmcrypt libmcrypt-devel libc-client libc-client-devel

2:安装libevent

#wget http://monkey.org/~provos/libevent-1.4.14b-stable.tar.gz#tar xf libevent-1.4.14b-stable.tar.gz#cd libevent-1.4.14b-stable #./configure --enable-shared#make && make install

3:安装pcre

#wget ftp://ftp.csx.cam.ac.uk/pub/software/programming/pcre/pcre-8.10.tar.gz#tar xf pcre-8.10.tar.gz#cd pcre-8.10/#./configure --enable-shared --enable-utf8 --enable-unicode-properties#make && make install

4:安装libunwind

#wget http://download.savannah.gnu.org/releases/libunwind/libunwind-0.99.tar.gz#tar xf libunwind-0.99.tar.gz#cd libunwind-0.99#./configure --enable-shared#make && make install

5:安装google-perftools

#wget http://google-perftools.googlecode.com/files/google-perftools-1.6.tar.gz#tar xf google-perftools-1.6.tar.gz#cd google-perftools-1.6#./configure --enable-shared##注:64bit 必须加上--enable-frame-pointers#make && make install

6:安装nginx.

#wget http://labs.frickle.com/files/ngx_cache_purge-1.0.tar.gz#tar zxvf ngx_cache_purge-1.0.tar.gz#wget http://nginx.org/download/nginx-0.8.50.tar.gz#tar zxvf nginx-0.8.50.tar.gz#cd nginx-0.8.50/#cd ../#useradd -d /dev/null -s /sbin/nologin -c "Nginx Runner" -r www-data#mkdir -p /zh/nginx#mkdir -p /tmp/nginx/client/cache#mkdir -p /tmp/nginx/proxy/cache#mkdir -p /tmp/nginx/fastcgi/cache

如想提速,可以将缓存目录划到/dev/shm下

#./configure --prefix=/zh/nginx --user=www-data --group=www-data --with-rtsig_module --with-select_module --with-poll_module --with-ipv6 --with-http_ssl_module --with-http_realip_module --with-http_sub_module --with-http_flv_module --with-http_gzip_static_module -–with-file-aio --with-http_stub_status_module --http-client-body-temp-path=/tmp/nginx/client --http-proxy-temp-path=/tmp/nginx/proxy --http-fastcgi-temp-path=/tmp/nginx/fastcgi --with-google_perftools_module --add-module=/usr/src/source_package/ngx_cache_purge-1.0#make && make install

如需要无缝升级:

#cp -r --force objs/nginx /zh/nginx/sbin#/etc/init.d/nginx restart

7:Mysql5.1、PHP5.3.x安装编译mysql

#./configure --prefix=/usr/local/mysqld --enable-assembler --with-charset=utf8 --with-extra-charsets=all --enable-thread-safe-client --with-big-tables --with-readline --with-ssl --with-embedded-server --enable-local-infile --with-plugins=max-no-ndb --enable-shared --with-tcp-port=3306 --with-mysqld-user=mysqld --with-low-memory --with-mysqlmanager

安装并初始化环境

# make # make install# cp support-files/my-medium.cnf /usr/local/mysqld/etc/my.cnf

更改目录权限

# chown -R mysqld /usr/local/mysqld # chown -R mysqld /var/mysqldata # chown -R mysqld:mysqld /usr/local/mysqld # chown -R mysqld:mysqld /var/mysqldata   # chmod 711 /usr/local/mysqld -R# chmod 755 /usr/local/mysqld/lib/ -R# chmod 700 /var/mysqldata -R

初始化数据库

# /usr/local/mysqld/bin/mysql_install_db --user=mysqld --datadir=/var/mysqldata --basedir=/usr/local/mysqld --skip-name-resolve --defaults-file=/usr/local/mysqld/etc/my.cnf

php编译:

#./configure --prefix=/zh/php5 --enable--mod-charset --enable-roxen-zts --with-libxml-dir=/usr --with-layout=GUN --with-config-file-path=/zh/php5/etc --with-config-file-scan-dir=/home/*/etc --with-openssl --with-zlib --enable-sigchild --enable-bcmath --enable-calendar --with-curl --with-curlwrappers --enable-exif --enable-ftp --disable-rpath --with-gd --with-jpeg-dir --with-png-dir --enable-gd-native-ttf --with-gettext --with-mhash --with-imagick --with-imap --with-imap-ssl --enable-mbstring --with-mcrypt --with-mysql=mysqlnd --enable-mbregex --with-mysql-sock --with-mysqli --with-pdo-mysql --with-pdo-sqlite --enable-soap --enable-sockets --enable-sqlite-utf8 --enable-sysvsem --with-xmlrpc --enable-zip --without-pear --enable-shmop --enable-pcntl --with-libevent=shared --with-kerberos --enable-phar --enable-session --enable-simplexml --enable-snmp --enable-sqlite3 --enable-tidy --enable-tokenizer --enable-xml --enable-xmlreader --enable-xmlrpc --enable-xmlwriter --enable-xsl --enable-fastcgi --enable-cgi --enable-shared#make#make install

安装eAccelerator、Memcache、suhosin扩展:

1:memcache#/zh/php5/bin/phpize#./configure --with-php-config=/zh/php5/bin/php-config --enable-shared --enable-memcache#make && make install2:eaccelerator#/zh/php5/bin/phpize#./configure --with-php-config=/zh/php5/bin/php-config --enable-shared --enable-eaccelerator --with-gnu-ld#make && make install3:suhosin#/zh/php5/bin/phpize#./configure --with-php-config=/zh/php5/bin/php-config --enable-shared --enable-suhosin#make && make install

添加至php.ini

5:Apache(suexec+mod_fcgid)安装

http://blog.37hi.com/archives/229/

http://blog.37hi.com/archives/221/

6:为Apache安装mod_rpaf模块获取真实IP

tar -xf mod_rpaf-0.6.tar.gzcd mod_rpaf-0.6/usr/local/apache2/bin/apxs -i -c -n mod_rpaf-2.0.so mod_rpaf-2.0.c

编辑httpd.conf文件添加:

#rpaf_moduleLoadModule rpaf_module modules/mod_rpaf-2.0.so#Mod_rpaf settingsRPAFenable OnRPAFproxy_ips 127.0.0.1 [your_ips]RPAFsethostname OnRPAFheader X-Forwarded-For#rpaf_module end

[your_ips]请修改为你本机所监听web服务的ip.多个IP用空格空开.

7:pureftpd安装。

8:简单优化

9:编写web控制端。

网上大多流传的是

location / {
 client_max_body_size    100m;
 client_body_buffer_size 128k;
 proxy_send_timeout   300;
 proxy_read_timeout   300;
 proxy_buffer_size    4k;
 proxy_buffers     16 32k;
 proxy_busy_buffers_size 64k;
 proxy_temp_file_write_size 64k;
 proxy_connect_timeout 30s;
 proxy_pass http://127.0.0.1:81/;
 proxy_set_header   Host   $host;
 proxy_set_header   X-Real-IP  $remote_addr;
 proxy_set_header   X-Forwarded-For $proxy_add_x_forwarded_for;
 }

这样做没任何意义,所有的请求全部转发到后端去了。我们只需要Apache来处理PHP部分,所以,正确的配置应该是

location ~ .*\.(php|php5)?$ {
 client_max_body_size    100m;
 client_body_buffer_size 128k;
 proxy_send_timeout   300;
 proxy_read_timeout   300;
 proxy_buffer_size    4k;
 proxy_buffers     16 32k;
 proxy_busy_buffers_size 64k;
 proxy_temp_file_write_size 64k;
 proxy_connect_timeout 30s;
 proxy_pass http://$host:81/;
 proxy_set_header   Host   $host;
 proxy_set_header   X-Real-IP  $remote_addr;
 proxy_set_header   X-Forwarded-For $proxy_add_x_forwarded_for;
 }

如果是这样将变量作为反向代理的地址的话会在Nginx0.6.18以后的版本中都会提示“ no resolver defined to resolve ”的类似错误,而在proxy_pass 中直接设置地址却不会。

原因是Nginx0.6.18以后的版本中启用了一个resolver指令,在使用变量来构造某个server地址的时候一定要用resolver指令来制定DNS服务器的地址,所以解决这个问题的方法很简单:

在nginx的配置文件中的http{}部分添加一行resolver 8.8.8.8;即可.

上面这种方法有一个缺陷,因为使用了resolver,所以效率要低下些。采用第一种方法中类似的 proxy_pass http://127.0.0.1:81/;也有一个问题,因为使用了 proxy_set_header Host $host;这个指令,故如果进行外部代理,可能无法取得正确内容。此事需要使用 proxy_set_header Host $proxy_host;指令来代替原有 proxy_set_header Host $host;