网上找到一个比较详细的nginx的配置文件,贴出来供大家参考。
user nobody;
worker_processes 8;
#error_log logs/error.log;
#error_log logs/error.log notice;
error_log /var/log/nginx/error.log info;
pid /var/log/nginx/nginx.pid;
worker_rlimit_nofile 65535;
events {
use epoll;
worker_connections 30000;
}
http {
include /etc/nginx/mime.types;
default_type application/octet-stream;
log_format main '$remote_addr - $remote_user [$time_local] $status '
'"$request" $body_bytes_sent "$http_referer" '
'"$http_user_agent" "$http_x_forwarded_for"';
server_names_hash_max_size 256;
server_names_hash_bucket_size 512;
client_header_buffer_size 1k;
large_client_header_buffers 4 4k;
client_max_body_size 1m;
client_body_buffer_size 128k;
client_header_timeout 60;
client_body_timeout 60;
client_body_temp_path /var/lib/nginx/tmp/client_body 1 2;
gzip on;
gzip_min_length 1024;
gzip_buffers 4 8k;
gzip_comp_level 9;
gzip_types text/plain text/html image/x-icon;
output_buffers 1 512k;
postpone_output 1460;
send_timeout 60;
sendfile off;
tcp_nopush on;
tcp_nodelay on;
keepalive_timeout 60;
upstream myserver {
ip_hash;
server ip:1580;
server ip:1580;
server ip:1580;
server ip:1580;
}
server {
listen 80;
server_name www.*****.com;
charset utf-8;
access_log /var/log/nginx/www.*****.com.log;
error_log /var/log/nginx/error_www.log;
location / {
root html;
index index.jsp index.htm;
proxy_pass http://myserver;
}
location /status {
stub_status on;
access_log off;
auth_basic "status";
auth_basic_user_file /etc/nginx/htpasswd;
}
}
}
以上是一个主机的配置,如果跑虚拟主机就分别在upstream和server下加上相应的配置文件即可。
这里顺便提下日志轮循的问题,默认情况下nginx的日志会自动压缩每天生成一个*.log.gz的格式的日志文件,不利于awstat分析。
于是,我做了简单的处理。
修改/etc/logrotate.d/nginx文件如下
rotate 31
missingok
notifempty
create
sharedscripts
postrotate
[ ! -f /var/log/nginx/nginx.pid ] || kill -USR1 `cat /var/log/nginx/nginx.pid`
sh /root/log_date_format.sh
endscript
}
具体请根据自己的情况做相应更改。
附:
log_date_format.sh
date=`date +%Y-%m-%d`
log_dir=/var/log/nginx
for i in aaa bbb ccc;
do mv ${log_dir}/$i.test.com.log.1 ${log_dir}/$i.test.com.log.$date;
done
并修改/etc/crontab文件
59 23 * * * root run-parts /etc/cron.daily
每天晚上23:59分执行日志轮循。
如上处理之后,会得到类似aaa.test.com.2012-10-10格式的日志,便于使用awstat进行分析。
Python 有一个 SimpleHTTPServer,可以拿来方便地共享文件。比如,你要发送某个文件给局域网里的同学,你只要 cd 到所在路径,然后执行这么一行:
python -m SimpleHTTPServer
人家就可以通过 http://你的IP:8000 来访问你要共享的文件了。像我早已把这个命令做了 alias。但是,某一天,你需要从同学哪里复制一个文件到本机,然后你就会跟你同学说,XX,共享下某目录。当你以为可以用 HTTP 来访问他的 8000 端口的时候,他却告诉你,不好意思,我是 Windows 啦~~当然你可以选择在他 Windows 里装个 Python,也可以选择使用 Samba、FTP 等其他方式,但是有没有和之前一样简单的方式呢~当然了,这时候,你就需要一个支持上传的简单 HTTP Server,也就是我这个:SimpleHTTPServerWithUpload.py, 哈哈。然后你开个服务,让人家上传即可。
其实这个就是修改自 SimpleHTTPServer 的,只不过我给它加上了最原始的上传功能,安全性方面没有验证过,不过理论上应该不会没人一直开着这个吧?另外,我对 RFC1867 的理解不一定透彻,所以,Use on your own risk!
截图如下:
点这里下载代码(右键-->目标另存为),单文件、零配置,直接用 Python 运行。
备注:如果未安装python,centos下直接执行yum install python,debian下执行apt-get install python 安装即可。
本文介绍nginx的无缝升级操作,供大家学习参考。
首先到 http://wiki.nginx.org/ 下载最新稳定版,我们这里使用的是nginx-0.8.54。
# wget http://nginx.org/download/nginx-0.8.54.tar.gz
# tar zvxf nginx-0.8.54.tar.gz
# cd nginx-0.8.54
下面按自己选择使用对应参数
#./configure --user=www --group=www --prefix=/usr/local/webserver/nginx --with-http_stub_status_module --with-http_ssl_module
# make 注意不要make install
编译完后有一个nginx执行文件.
# mv /usr/local/nginx/sbin/nginx /usr/local/webserver/nginx/sbin/nginx.old
备份下需要升级的老nginx版本,这是个非常必要的习惯
在把新/nginx-0.8.54/objs下的nginx cp到/usr/local/nginx/sbin/下
./nginx -t
测试新版本的nginx是否配置正常。如果提示:
the configuration file /usr/local/nginx/conf/nginx.conf syntax is ok
configuration file /usr/local/nginx/conf/nginx.conf test is successful
//让nginx把nginx.pid改成nginx.pid.oldbin 跟着启动新的nginx
# kill -USR2 `cat /usr/local/nginx/logs/nginx.pid`
//退出旧的nignx
# kill -QUIT `cat /usr/local/nginx/logs/nginx.pid.oldbin`
curl --head http://www.test.com
显示如下:
HTTP/1.1 200 OK
Server: nginx/0.8.54
Date: Fri, 25 Mar 2011 00:46:39 GMT
Content-Type: text/html; charset=utf-8
Content-Length: 151
Last-Modified: Sun, 15 Aug 2010 08:11:39 GMT
Connection: keep-alive
Accept-Ranges: bytes
升级成功,已经升级至0.8.54。