虚拟主机
三种主机:
- 基于IP -- >
server_name _;
- 基于域名 -->
server_name www.example.com;
- 基于端口 -->
listen 8080;
基于域名,如果没有申请windows下可以修改host文件:
双击进入....
编辑host文件
如果同一个ip对应多个域名,在空格后追加新域名。
日志管理
日志格式
user nginx;
worker_processes auto;
error_log /var/log/nginx/error.log notice;
pid /var/run/nginx.pid;
events {
worker_connections 1024;
}
http {
include /etc/nginx/mime.types;
default_type application/octet-stream;
log_format main '$remote_addr - $remote_user [$time_local] "$request" '
'$status $body_bytes_sent "$http_referer" '
'"$http_user_agent" "$http_x_forwarded_for"';
access_log /var/log/nginx/access.log main;
sendfile on;
#tcp_nopush on;
keepalive_timeout 65;
#gzip on;
include /etc/nginx/conf.d/*.conf;
}
- 17行定义了日志格式,然后在第21行定义日志的路径并引用格式。
- logformat 必须在 http context中定义
- 每个server 可以有自己的 access_log 如果没有就使用http中的日志格式
日志分割
如果是用apt安装,在/etc/logrotate.d中就有分割的脚本:
# nginx
/var/log/nginx/*.log { # 要分割的文件
daily # 按天分割
missingok # 忽略错误
rotate 52 # 保留52天
compress # 压缩
delaycompress # 延迟压缩
notifempty # 空日志不切割
create 640 nginx adm # 日志文件权限 和 属主
sharedscripts # 执行的脚本
postrotate
if [ -f /var/run/nginx.pid ]; then
kill -USR1 `cat /var/run/nginx.pid` # 相当于 nginx -s reload
fi
endscript
logrotate是一个系统工具,时间到后会自动执行