标签:des http io os 使用 ar for 文件 sp
Nginx官方站点 http://nginx.org/cn/
tengine 淘宝基于nginx二次开发 http://tengine.taobao.org/
nginx已经附带memcache模块,可以管理缓存,而且支持平滑升级......
系统Centos6.5_64位 rpm包和源码包 我这是源码包
wget http://nginx.org/download/nginx-1.6.2.tar.gz 稳定版
注意源码编译前请确定你的开发包组是否安装 开发工具
yum groupinstall "开发工具" rpm -q pcre-devel 没装 yum install pcre-devel -y 依赖perl扩展的正则表达式 yum groupinfo "开发工具" 可以看到这个开发工具中的包组内容 groupadd -r -g 110 nginx 添加以个nginx组为系统组 useradd -r -u 110 -g 110 nginx 添加以个用户为系统用户 专门管理nginx解压安装
[root@tomcat2 ~]# tar xf nginx-1.6.2.tar.gz [root@tomcat2 ~]# cd nginx-1.6.2 [root@tomcat2 nginx-1.6.2]# ls auto CHANGES CHANGES.ru conf configure contrib html LICENSE man README src [root@tomcat2 nginx-1.6.2]# ./configure --help |less编译
./configure --prefix=/usr --sbin-path=/usr/sbin/nginx --conf-path=/etc/nginx/nginx.conf --error-log-path=/var/log/nginx/error.log --http-log-path=/var/log/nginx/access.log --pid-path=/var/run/nginx/nginx.pid --lock-path=/var/lock/nginx.lock --user=nginx --group=nginx --with-http_ssl_module --with-http_flv_module --with-http_stub_status_module --with-http_gzip_static_module --http-client-body-temp-path=/var/tmp/nginx/client/ --http-proxy-temp-path=/var/tmp/nginx/proxy/ --http-fastcgi-temp-path=/var/tmp/nginx/fcgi/ --http-uwsgi-temp-path=/var/tmp/nginx/uwsgi --http-scgi-temp-path=/var/tmp/nginx/scgi --with-pcre --with-file-aio \ --with-http_image_filter_module 报错如下 ./configure: error: SSL modules require the OpenSSL library. You can either do not enable the modules, or install the OpenSSL library into the system, or build the OpenSSL library statically from the source with nginx by using --with-openssl=<path> option. 少ssl模块编译少的全是devel包 所以安装 yum install openssl-devel gd-devel gd库是图片过滤处理模块 没报错 make && make instal提供启动脚本 脚本来自 http://wiki.nginx.org/RedHatNginxInitScript
vim /etc/init.d/nginx
#!/bin/sh # # nginx - this script starts and stops the nginx daemon # # chkconfig: - 85 15 # description: Nginx is an HTTP(S) server, HTTP(S) reverse # proxy and IMAP/POP3 proxy server # processname: nginx # config: /etc/nginx/nginx.conf # config: /etc/sysconfig/nginx # pidfile: /var/run/nginx.pid # Source function library. . /etc/rc.d/init.d/functions # Source networking configuration. . /etc/sysconfig/network # Check that networking is up. [ "$NETWORKING" = "no" ] && exit 0 nginx="/usr/sbin/nginx" prog=$(basename $nginx) NGINX_CONF_FILE="/etc/nginx/nginx.conf" [ -f /etc/sysconfig/nginx ] && . /etc/sysconfig/nginx lockfile=/var/lock/subsys/nginx make_dirs() { # make required directories user=`nginx -V 2>&1 | grep "configure arguments:" | sed ‘s/[^*]*--user=\([^ ]*\).*/\1/g‘ -` options=`$nginx -V 2>&1 | grep ‘configure arguments:‘` for opt in $options; do if [ `echo $opt | grep ‘.*-temp-path‘` ]; then value=`echo $opt | cut -d "=" -f 2` if [ ! -d "$value" ]; then # echo "creating" $value mkdir -p $value && chown -R $user $value fi fi done } start() { [ -x $nginx ] || exit 5 [ -f $NGINX_CONF_FILE ] || exit 6 make_dirs echo -n $"Starting $prog: " daemon $nginx -c $NGINX_CONF_FILE retval=$? echo [ $retval -eq 0 ] && touch $lockfile return $retval } stop() { echo -n $"Stopping $prog: " killproc $prog -QUIT retval=$? echo [ $retval -eq 0 ] && rm -f $lockfile return $retval } restart() { configtest || return $? stop sleep 1 start } reload() { configtest || return $? echo -n $"Reloading $prog: " killproc $nginx -HUP RETVAL=$? echo } force_reload() { restart } configtest() { $nginx -t -c $NGINX_CONF_FILE } rh_status() { status $prog } rh_status_q() { rh_status >/dev/null 2>&1 } case "$1" in start) rh_status_q && exit 0 $1 ;; stop) rh_status_q || exit 0 $1 ;; restart|configtest) $1 ;; reload) rh_status_q || exit 7 $1 ;; force-reload) force_reload ;; status) rh_status ;; condrestart|try-restart) rh_status_q || exit 0 ;; *) echo $"Usage: $0 {start|stop|status|restart|condrestart|try-restart|reload|force-reload|configtest}" exit 2 esac并设定开机自动启动
chmod +x /etc/init.d/nginx chkconfig --add nginx [root@tomcat2 nginx-1.6.2]# /etc/init.d/nginx start 正在启动 nginx: [确定] [root@tomcat2 nginx-1.6.2]# netstat -antlp |grep nginx tcp 0 0 0.0.0.0:80 0.0.0.0:* LISTEN 9570/nginx一个简单nginx就搭建好了测试:
localtion段官方文档http://nginx.org/en/docs/http/ngx_http_core_module.html#location
localtion URI [ = | ~|~*|^~|] uri {...}
localtion URI {} 对当前路径下的所有对象都生效
localtion = URI {} 精确匹配当前的路径,不包括子路径,因此,只对当前资源生效
localtion ~ URI {} 模式匹配URI,此处的URI可使用正则表达式, ~区分大小写,~*不区分大小写
localtion ^~ URI {} 不使用正则表达式
localtion ACL 控制 官方文档http://nginx.org/en/docs/http/ngx_http_access_module.html
官方示例 location / { deny 192.168.1.1; allow 192.168.1.0/24; allow 10.1.1.0/16; allow 2001:0db8::/32; deny all; }
基于用户名密码认证帮助文档http://nginx.org/en/docs/http/ngx_http_auth_basic_module.html
创建用户名密码需要依赖apache的htpasswd命令 所以安装httpd 不要让其开机自动启动
[root@tomcat2 nginx]# htpasswd -c -m /etc/nginx/.user tom New password: Re-type new password: Adding password for user tom [root@tomcat2 nginx]# htpasswd -m /etc/nginx/.user leo New password: Re-type new password: Updating password for user leo 第2次不要加-c 不然重建.user 修改配置文件 location / { root html; index index.html index.htm; auth_basic "ACL..."; auth_basic_user_file /etc/nginx/.user; } 保存重启 测试
标签:des http io os 使用 ar for 文件 sp
原文地址:http://my.oschina.net/kcw/blog/318309