Nginx配置文件总览

Nginx的配置文件结构

#设置用户
user  root;

#工作衍生的进程数 (一般=CPU核心数或核心数*2)
worker_processes  2;

#设置错误文件的存放路径
error_log  logs/error.log;
#error_log  logs/error.log  notice;
#error_log  logs/error.log  info;

#设置pid的存放路径(pid是控制系统中的重要文件)
pid        logs/nginx.pid;

#设置最大连接数
events {
    worker_connections  2048;
}


http {
        #监听
        listen       80;
        server_name  itoatest.example.com;
        root   /apps/oaapp;
        #编码
        charset utf-8;
        #日志信息
        access_log  logs/host.access.log  main;

        #对 / 所有做负载均衡+反向代理
        location / {
            root   /apps/oaapp;
            #默认首页
            index  index.jsp index.html index.htm;

            proxy_pass        http://backend;  
            proxy_redirect off;
            # 后端的Web服务器可以通过X-Forwarded-For获取用户真实IP
            proxy_set_header  Host  $host;
            proxy_set_header  X-Real-IP  $remote_addr;  
            proxy_set_header  X-Forwarded-For  $proxy_add_x_forwarded_for;
            proxy_next_upstream error timeout invalid_header http_500 http_502 http_503 http_504;

        }


     server {
       .............
    }

}

Nginx 的虚拟主机配置

Nginx 的虚拟主机配置步骤
虚拟主机:将一个服务器划分为很多虚拟的子服务器,供更多的用户使用。
配置步骤一:配置IP地址
配置步骤二:绑定IP地址与虚拟主机

配置IP地址:

输入:ifconfig 查看现在的IP地址信息

nginx配置日志记录mac地址 nginx配置日志目录位置_虚拟主机

如果要重新配置eth0的IP地址:

ifconfig eth0 192.168.1.10 netmask 255.255.255.0
#192.168.1.10为新分配的IP
#255.255.255.0子网掩码

虚拟主机的配置

ifcongig eth0:1
#eth0:1代表设备中的第一个分设备

分设备IP地址的配置

ifconfig eth0:2 192.168.1.11 broadcast 192.168.1.255 netmask: 255.255.255.0

Nginx虚拟主机的配置(把IP地址与虚拟主机绑定起来)

在配置文件中配置 cd /usr/local/nginx/conf

在Nginx自己的配置文件中可以配置,但这样不安全,因此需要新建一个配置文件:

#新建文件
touch newFile.conf
#编辑配置文件
vi newFile.conf

按键盘上的 i 键编辑信息


Nginx 的日志文件配置

Nginx 的日志文件格式配置

Nginx服务器操作的信息记录。使用log_format指令来设置Nginx服务器的日志文件的记录格式。
默认配置地址在Nginx的主配置文件
cd /usr/local/nginx/conf vi nginx.conf

#   $remote_addr:客户端的IP地址
#   $remote_user:客户端的用户名
#   $request:请求的URL
#   $status:请求状态(请求中还是请求结束了)
#   $body_bytes_sent:发送给客户端的字节数
#   $http_referer:访问的原网页(客户从哪里访问到当前网页的)
#   $http_user_agent:客户端的浏览器对应的信息(类型:火狐/google...)
#   $http_x_forwarded_for:客户端的IP的值 和 $remote_addr差不多

#主要记录的是日志文件的信息是如何排列的

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

'$status $body_bytes_sent "$http_referer" '

'"$http_user_agent" "$http_x_forwarded_for"';

Nginx 的日志文件存储路径配置
默认配置地址在Nginx的主配置文件
cd /usr/local/nginx/conf vi nginx.conf

access_log  logs/host.access.log  main;

如果不想让Nginx记录配置文件

#不记录日志信息
access_log off;
access_log  logs/host.access.log  main;

#注意:更改了配置文件之后要重新加载

Nginx 的日志文件切割

为了使日志文件的存储更合理、有序,把日志文件分开存储。
方式:手动切割和自动切割

手动切割
第一步:将老的配置文件备份到另一个文件中

mv host.access.log 2016.08.15.log

第二步:新开一个配置文件

#使用信号量
kill -usr1 主进程号

自动切割

#crontab 定时执行某个文件

首先先创建一个批处理文件

touch cutLog.sh
vi cutLog.sh

cutLog.sh文件中:

nowDate=$(date +%Y%m%D)  #获取当前日期
mv /usr/local/nginx/logs/host.access.log ${nowDate}.log  #将老的日志文件备份到今天的文件中
#cat /usr/local/nginx/nginx.pid 获取主进程号
kill -usr1 $(cat /usr/local/nginx/nginx.pid)

定时执行批处理文件:

打开定时处理文件

crontab -e

按 i 输入:

#这段代码的意思是在每天23:59分定时执行这段代码
 23 59  *** /bin/bash /usr/local/nginx/logs/cutLog.sh

Nginx 的缓存配置与其他配置

在Nginx的主配置文件nginx.conf中配置

server{

   ......

  location ~ .*\.(gif|jpg|jpeg|bmp|png|ico|txt|js|css)$   
        {   
            root /apps/oaapp;  
            #缓存为7天 7天后自动清除
            expires      7d; 
        }
}

自动列目录配置

需要两个条件:

  • 不存在index之类的默认首页文件
  • 服务器配置了自动列目录功能

打开nginx.conf

http {

    server {
          .......
        location / {
            root   /apps/oaapp;
            index  index.jsp index.html index.htm;

           #开启自动列目录
            autoindex on;

            ......