nginx03:日志、虚拟主机、location
nginx的访问日志管理
①使用log_format定义日志格式
例如:
vim /etc/nginx/nginx.conf ##日志格式的定义在nginx的主配置文件 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指令指定日志文件的存放位置
例如:
vim /etc/nginx/nginx.conf access_log /var/log/nginx/access.log main; ##默认的nginx的访问日志
实例:
vim /etc/nginx/conf.d/test.conf server { listen 80; server_name test.rm.com; access_log /var/log/nginx/test_rm.com.access.log main; ##定义该虚拟主机的访问日志 main指的是上面定义的访问日志级别 error_log /var/log/nginx/test_rm.com.error.log warn; ##定义该虚拟主机的错误日志 warn指的是错误日志级别 root /web/test; index index.html; }
访问一下网站,得到以下的日志
tail /var/log/nginx/test_rm.com.access.log 192.168.31.1 - - [13/Dec/2019:18:04:06 +0800] "GET / HTTP/1.1" 200 27 "-" "Mozilla/5.0 (Windows NT 10.0; WOW64; rv:60.0) Gecko/20100101 Firefox/60.0" "-"
nginx日志格式允许包含的变量
$remote_addr:客户端ip(生产环境,一般为公网ip)
$remote_user:客户端用户(一般为空)
$time_local:通用的本地时间
$request:http请求的方法(get、post) 请求的路径 使用的协议
$status:http响应的状态码
$body_bytes_sent:发送给客户端的资源字节数
$http_referet:用户通过哪个页面链接访问过来的
$http_user_agent:浏览器信息
$http_x_forwarded_for:真实的客户端地址【反向代理、负载均衡有效,否则为空】
$http_host:请求的地址,即浏览器输入的地址(ip或者域名)
实战修改nginx的配置文件,定义一下日志格式:新增加一个$http_host字段(为后期的nginx负载均衡、反向代理做准备)
vim /etc/nginx/nginx.conf log_format main '$remote_addr - $remote_user [$time_local] "$request" ' '$status $body_bytes_sent "$http_referer" ' '"$http_user_agent" "$http_x_forwarded_for" "$http_host"'; ##末尾新增字段
再次访问test.rm.com;得到以下的访问日志
=====================================
nginx虚拟主机
一台web server配置多个web站点。站点站点之间基于域名区分。
一旦做了虚拟住居,就无法使用ip的方式访问站点,只能使用域名(访问到的可能不是想要的资源)
vim /etc/nginx/conf.d/www.conf ##站点1 server { listen 80; server_name www.rm.com; ##站点1的根目录 root /web/www; index index.html; } vim /etc/nginx/conf.d/bbs.conf ##站点2 server { listen 80; server_name bbs.rm.com; root /web/bbs; ##站点2的根目录 index index.html; } mkdir -p /web/www echo "<html><h1>www</html></h1>" > /web/www/index.html mkdir -p /web/bbs echo "<html><h1>bbs</html></h1>" > /web/bbs/index.html
nginx -t
nginx -s relod
本地添加host文件。然后测试
现在的安逸,需要后期3-5倍的努力去弥补这份安逸!