Nginx虚拟主机配置与日志管理

Nginx虚拟主机配置与日志管理

  1. 虚拟主机配置
    1. 配置文件解读,分析nginx.conf配置文件
#开启进程数 <=CPU数   设置超过CPU数无效
worker_processes  1;

#错误日志保存位置
#error_log  logs/error.log;
#error_log  logs/error.log  notice;
#error_log  logs/error.log  info;

#进程号保存文件
#pid        logs/nginx.pid;

#每个进程最大连接数(最大连接=连接数x进程数)每个worker允许同时产生多少个链接,默认1024
events {
    worker_connections  1024; 
    use epoll;
}

http {
	#文件扩展名与文件类型映射表
    include       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  logs/access.log  main;
    #错误指令
    fastcgi_intercept_errors on;   
    #设置格式
    charset  utf-8;   
    #hash表存储的大小
    server_names_hash_bucket_size 128;   
    #设定请求缓冲
    client_header_buffer_size 4k;   
    large_client_header_buffers 4 32k;   
    #文件上传大小
    client_max_body_size 300m;   
    
    sendfile on;   
    tcp_nopush     on;   
      
    keepalive_timeout 60;   
      
    tcp_nodelay on;   
    client_body_buffer_size  512k;   
    
    proxy_connect_timeout    5;   
    proxy_read_timeout       60;   
    proxy_send_timeout       5;   
    proxy_buffer_size        16k;   
    proxy_buffers            4 64k;   
    proxy_busy_buffers_size 128k;   
    proxy_temp_file_write_size 128k;   
      
    gzip on;   
    gzip_min_length  1k;   
    gzip_buffers     4 16k;   
    gzip_http_version 1.1;   
    gzip_comp_level 2;   
    gzip_types       text/plain application/x-javascript text/css application/xml;   
    gzip_vary on;
	
    #设定负载均衡的服务器列表
    upstream web_app { 
    	#weigth参数表示权值,权值越高被分配到的几率越大
		#max_fails 当有#max_fails个请求失败,就表示后端的服务器不可用,默认为1,将其设置为0可以关闭检查
		#fail_timeout 在以后的#fail_timeout时间内nginx不会再把请求发往已检查出标记为不可用的服务器  
  	 	server 127.0.0.1:8080 weight=1 max_fails=2 fail_timeout=30s;   
	 	server 127.0.0.1:8080 weight=1 max_fails=2 fail_timeout=30s;   
    }  
    
    #配置虚拟主机,基于域名、ip和端口
    server {
   	 	#监听端口
        listen       80;
        #监听域名
        server_name  localhost:80;

		#charset koi8-r;
		
		#nginx访问日志放在logs/host.access.log下,并且使用main格式(还可以自定义格式)
        #access_log  logs/host.access.log  main;

		#返回的相应文件地址
        location {
        	#设置客户端真实ip地址
            proxy_set_header X-real-ip $remote_addr;
            #负载均衡反向代理
			proxy_pass http://web_app;
        }

		#错误页面及其返回地址
        error_page   500 502 503 504  /50x.html;
        location = /50x.html {
            root   html;
        }
    }

#server {
    #    listen       8000;
    #    listen       somename:8080;
    #    server_name  somename  alias  another.alias;

    #    location / {
    #        root   html;
    #        index  index.html index.htm;
    #    }
    #}
}
  1. 配置实例截图
server {
   	 	#监听端口
        listen       80;
        #监听域名
        server_name  localhost:80;

		#返回的相应文件地址
        location {
        	root 路径;
        	index 返回页面;
        }
        }
        #只要写了这些配置,一个简单的虚拟主机就配置好了
        #配置思路
        #1. 修改配置文件
        #2. 读取配置文件(kill -HUP `cat logs/nginx.pid`  或者  nginx路径/sbin/nginx -s reload)
        #3. 如果是域名需要修改host,在host添加上自己写的域名,使其不在互联网上解析 (host路径 `C:\Windows\System32\drivers\etc`)

配置域名
重新读取配置文件
修改host文件
配置不同端口使其返回不同的页面
基于ip配置
2. 日志管理

  1. 常规管理
```
#access_log  logs/host.access.log  main;

#access_log 访问成功的日志
#logs/host.access.log 存储的路径
#main 使用“main”格式

# 分析main格式里面的内容
log_format  main  '$remote_addr - $remote_user [$time_local] "$request" '
                        '$status $body_bytes_sent "$http_referer" '
                        '"$http_user_agent" "$http_x_forwarded_for"';

#$remote_addr	远程地址
#$remote_user	访问用户
#$time_local	访问时间
#$request	请求方式(GET/POST/PUT/DELETE)
#$status	请求状态
#$body_bytes_sent		发送的字节
#$http_referer		前置页面
#$http_user_agent		用户代理
#$http_x_forwarded_for		http来源

#配置的时候一定要先把配置文件中的main格式先打开
```
![配置访问日志](https://img-blog.csdnimg.cn/20190515121209146.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3hpYW9xaV8w,size_16,color_FFFFFF,t_70)
  1. 日志切割
日志分割步骤:
   1. 将原有的日志重命名
   2. 创建一个与原有日志一样的名称
   3. 重新读取配置文件
日志定时分割步骤
	1. 编写shell脚本(脚本中实现日志分割的步骤)
	2. 执行shell脚本

日志分割的shell脚本
#日志的路径
LOGPATH =/usr/local/nginx/logs/z.com.log
#备份日志路径
BASEPATH=/data
#备份日志名称  (+%Y%m%d%H%M   相当于是yyyyMMddHHmm  年月日时分)
bask=$BASEPATH/$(data -d yesterday +%Y%m%d%H%M).zcom.access.log

#将/usr/local/nginx/logs/z.com.log的日志转移到$bask下
mv $LOGPATH  $bask
#修改文件
touch $LOGPATH
#重新读取配置文件
kill -USR1 	`cat  /usr/local/nginx/logs/nginx.pid`

日志根据日期存储到不同文件夹shell脚本
#日志的路径
LOGPATH =/usr/local/nginx/logs/z.com.log
#备份日志路径
BASEPATH=/data/$(data -d yesterday +%Y%m%d)

#创建目录(多了创建目录)
mkdir -p $BASEPATH

#备份日志名称  (+%Y%m%d%H%M   相当于是yyyyMMddHHmm  年月日时分)
bask=$BASEPATH/$(data -d yesterday +%H%M).zcom.access.log

#将/usr/local/nginx/logs/z.com.log的日志转移到$bask下
mv $LOGPATH  $bask
#修改文件
touch $LOGPATH
#重新读取配置文件
kill -USR1 	`cat  /usr/local/nginx/logs/nginx.pid`

设置定时器(crontab -e)
*/1 * * * * sh /data/runlog.sh  (分  时  日  月  周  命令)

定时脚本
定时执行shell脚本
创建不同的文件夹

  • 2
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
提供的源码资源涵盖了安卓应用、小程序、Python应用和Java应用等多个领域,每个领域都包含了丰富的实例和项目。这些源码都是基于各自平台的最新技术和标准编写,确保了在对应环境下能够无缝运行。同时,源码中配备了详细的注释和文档,帮助用户快速理解代码结构和实现逻辑。 适用人群: 这些源码资源特别适合大学生群体。无论你是计算机相关专业的学生,还是对其他领域编程感兴趣的学生,这些资源都能为你提供宝贵的学习和实践机会。通过学习和运行这些源码,你可以掌握各平台开发的基础知识,提升编程能力和项目实战经验。 使用场景及目标: 在学习阶段,你可以利用这些源码资源进行课程实践、课外项目或毕业设计。通过分析和运行源码,你将深入了解各平台开发的技术细节和最佳实践,逐步培养起自己的项目开发和问题解决能力。此外,在求职或创业过程中,具备跨平台开发能力的大学生将更具竞争力。 其他说明: 为了确保源码资源的可运行性和易用性,特别注意了以下几点:首先,每份源码都提供了详细的运行环境和依赖说明,确保用户能够轻松搭建起开发环境;其次,源码中的注释和文档都非常完善,方便用户快速上手和理解代码;最后,我会定期更新这些源码资源,以适应各平台技术的最新发展和市场需求。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值