SMZ

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文件。然后测试

 

 

posted on 2019-12-13 18:43  SMZ  阅读(157)  评论(0编辑  收藏  举报

导航