3、nginx的基本配置

一、nginx的配置文件总览

    nginx.conf总览

        #设置用户

        #user nobody;

       #设置衍生进程数

       worker_processes 1;

       #设置错误文件存放路径

       #error_log logs/error.log;

       #error_log logs/error.log notice;

       #error_log logs/error.log info;

       #设置pid存放路径(pid是控制系统中重要文件)

       #pid logs/nginx.pid

       #设置最大连接数

       events {

              work_connections 1024;

       }

       http {

              include mine.types;

              default_type application/octet-stream;

              server {

              }

       }

 

二、nginx的虚拟主机配置

       2.1、nginx的虚拟主机

              通常情况下,为了使每个服务器可以供多个用户使用,可以将一个服务器分为很多虚拟的子服务器,每个子服务器都是相互独立的,这些服务器是根据虚拟化技术分出来的,这样,一台服务器就可以虚拟成很多服务器。我们把子服务器就做虚拟主机。我们搭建好nginx服务器,这时如果我们对这台服务器进行虚拟主机配置,就可以将一台nginx的服务器分割为多台独立的子服务器。nginx中配置虚拟主机的步骤有两个,第一步是配置ip地址,第二步,是绑定ip地址与虚拟主机。

       2.2、ip地址的配置

              2.2.1 输入ifconfig 查看网络设备 一般会有ech0 和 l0两个设备,可以查看设备的ip的地址

              2.2.2 更改设备的ip地址 ifconfig eth0 192.168.1.9 netmask 255.255.255.0

              2.2.3 输入ifcongig 查看eth0的ip已经变成192.168.1.9

              2.3.4 给eth0配置虚拟主机,即配置设备的分设备

              2.3.5 配置第一个分设备ifconfig eth0:1 192.168.1.7 broadcast 192.168.1.255 netmask 255.255.255.0 (broadcast 后的ip是ech0 的Bcast)

              2.3.6 输入ifconfig查看结果

              2.3.7 创建ech0的第二个分设备 ifconfig eth0:2 192.168.1.17 broadcast 192.168.1.255 netmask 255.255.255.0

       2.3、nginx的虚拟主机的配置

              2.3.1 在nginx/conf下创建新的.conf文件 使用touch xnzj.conf 创建xnzj.conf文件

              2.3.2 vim xnzj.conf 编辑xnzj.conf 文件

              user nobody;

              worker_processes auto;

              events{

                     worker_connections 1024;

              }

              http{

                     server{

                            listen 192.168.1.7:80;

                           server_name 192.168.1.7;

                             access_log logs/server1.access.log combined;

                            location /

                            {

                                  index index.html index.htm;

                                   root html/server1;

                            }

                     }

                     server{

                            listen 192.168.1.17:80;

                            server_name 192.168.1.7;

                            access_logs logs/server2.access.log conbined;

                            location /

                            {

                                   index index.html;

                                   root html/server2;

                            }

                     }

              }

 

三、nginx日志文件配置

       3.1、nginx日志文件格式的配置

              3.1.1 nginx 日志格式使用log_format配置,默认系统默认配置

              3.1.2 nginx的配置文件在conf/nginx.conf 的 http {} 中如下

                     log_format main '$remote_addr - $remote_user [$time_local] "$request" '

                     '$status $body_bytes_sent "$http_referer" '

                     '"$http_user_agent" "$http_x_forwarded_for"';

       3.2、nginx日志文件存储路径的配置

              3.2.1 access_log 指令配置nginx的日志文件路径

              3.2.2 access_log logs/access.log combined 将日志文件输入到logs/access.log

              3.2.3 关闭日志输出 access_log off;

       3.3、nginx日志文件的切割

              3.3.1 手动切割(手动切割access.log)

                     3.3.1.1 mv access.log 20171029.log

                     3.3.1.2 kill -USR1 nginx主进程号

              3.3.2 自动实现(crontab)

                            3.3.2.1 在logs目录下新建批处理文件cutlog.sh

                                   touch cutlog.sh

                            3.3.2.2 编辑cutlog.sh

                                   vim cutlog.sh

                                          # 获取时间

                                          D = $(date +%Y%m%d)

                                         # 重命名日志文件呢

                                          mv /usr/local/nginx/logs/access.log ${D}.log

                                          # 通过信号控制切割日志文件

                                          kill -USR1 $(cat /usr/local/nginx/logs/nginx.pid)

                                   保存并退出

              3.3.2.3 使用crontab命令定时执行cutlog.sh

                            crontab -e 编辑cutlog.sh 眼i编辑文件 每天23点59分切割日志文件

                            23 59 *** /bin/bash /usr/loacl/nginx/log/cutlog.sh

                             参考https://www.cnblogs.com/yaohong/p/9094951.html

                            http://www.pythondev.org/post/8.html

 

              3.3.4使用logrotate切割nginx日志

                     3.3.4.1、新建touch nginx-log-rotate文件

                            cd /usr/local/nginx

                            touch nginx-log-rotate                            

                            vim nginx-log-rotate

                            /usr/local/nginx/logs/*.log {

                                   compress

                                   delaycompress

                                   daily

                                   copytruncate

                                   create

                                   notifempty

                                   rotate 7

                                   olddir /data/logs/nginx

                                   missingok

                                   dateext

                                   postrotate

                                   /bin/kill -HUP `cat /usr/local/nginx/logs/nginx.pid 2> /dev/null` 2> /dev/null || true

                                   endscript

                            }

                            保存

                            新建旧日志存储目录

                            mkdir /data/logs/nginx

                     3.3.4.2、测试

                            /usr/sbin/logrotate -f /usr/local/nginx/nginx-log-rotate

                            查看/data/logs/nginx有无日志文件

                     3.3.4.3、使用过crontab定时启动(每天23时59分切割日志)

                            crontab -e

                            59 23 * * * /usr/sbin/logrotate -f /usr/local/nginx/nginx-log-rotate

                            :wq

                     3.3.4.4、nginx-log-rotate 配置文件说明

                            compress # 通过gzip压缩转储以后的日志

                            delaycompress # 和compress 一起使用时,转储的日志文件到下一次转储时才压缩

                            rotate 7 # 保存7天的日志

                            olddir /data/logs/nginx # 旧日志存储目录

                            postrotate # 通知nginx进程重写日志

                            /bin/kill -HUP `cat /usr/local/nginx/logs/nginx.pid 2> /dev/null` 2> /dev/null || true

                            endscript

 

四、ngin缓存配置

              在conf目录下编辑nginx.conf

              在 http server 在新建配置

              # 设置图片缓存(缓存30天)

              location `.*\.(jpg|png|swf|gif)${

                     expires 30d;

              }

              # 设置静态文件缓存(缓存一小时)

              location `.*\. (css|js)$ {

                     expires 1h;

              }

 

五、nginx压缩功能的配置(gzip压缩技术,压缩成30%左右,提高访问速度)

       在conf下编辑nginx.conf 在http下配置

       gzip on;

       关闭gzip压缩

       gzip off;(默认关闭)

       配置压缩下线(对小文件不进行压缩)

       gzip_min_length 1k;(压缩1k以上的文件)

       在设置开启压缩后,压缩的结果发在内存中,所以还要设置申请缓存的大小

       gzip_buffers 4 16k;(4个16k数据流)

       设置gzip识别的版本

       gzip_http_version 1.1;

       自动判别客户端是否支持gzip压缩技术,支持则进行压缩,不支持就不进行压缩

       gzip_vary on;

 

六、nginx自动列目录配置

       当客户端通过浏览器访问服务器上的某一个文件夹时,如果该文件夹上有默认的首页文件,比如index.html那么此时用户就会自动访问到index.html这个网页。但是,当没有index.html这一类默认首页的文件的时候,假设此时该文件夹还有其他文件,在没有配置自动列目录的功能的情况下,用户访问不到我们这个文件夹的内容。但当我们配置好了自动列目录功能之后,我们就可以看到该文件夹下所有文件的一个列表,该列表目录是自动列的。实现自动列目录需要两个条件:

       1、访问的文件夹下不存在index之类的默认首页文件。

       2、服务器配置了自动列目录功能。

       配置自动列目路 在conf下编辑nginx.conf在http server location / {} 中配置

       autoindex on;

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值