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地址信息
如果要重新配置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;
......