Nginx安装配置

Nginx

安装nginx环境是在linux下面(centos7.6)

cat /etc/redhat-release
知识兔

安装依赖

yum -y install make zlib zlib-devel gcc-c++ libtool  openssl openssl-devel pcre pcre-devel
知识兔

安装nginx

wget http://nginx.org/download/nginx-1.16.1.tar.gz
tar zxf nginx-1.16.1.tar.gz
cd nginx-1.16.1
./configure --prefix=/usr/local/nginx --with-http_stub_status_module
make && make install
知识兔

启动ngin

# 启动 nginx 服务  
/usr/local/nginx/sbin/nginx
注:启动时一定要确保80端口没有被占用
netstat -tunpl

/usr/local/nginx/sbin/nginx -s reload           # 重新载入配置文件
/usr/local/nginx/sbin/nginx -s stop             # 停止 Nginx

# 设置开机启动
vi /etc/rc.local
# 添加如下命令
/usr/local/nginx/sbin/nginx
知识兔

安装php-fpm和启动

# 搜索
yum search fpm|grep ^php
# 安装
yum install -y php71w-fpm.x86_64
# 启动
/usr/sbin/php-fpm
默认端口号为 9000
知识兔

配置nginx支持php

# http节点
# 指定连接到后端Fastcgi的超时时间(单位:秒)
fastcgi_connect_timeout 300;
# 向Fastcgi传送请求的超时时间,这个值是指已经完成两次握手后向Fastcgi传送请求的超时时间(单位:秒)
fastcgi_send_timeout 300;
# 指定接收Fastcgi应答的超时时间,这个值是指已经完成两次握手后接收Fastcgi应答超时时间(单位:秒)
fastcgi_read_timeout 300;

# server节点
location ~ \.php$ {
  fastcgi_pass   127.0.0.1:9000;
  # 非必须 默认索引页
  #fastcgi_index index.php;
  fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
  include         fastcgi_params;
}
知识兔

开启gzip

## http 节点中设置

# 开启gzip
gzip           on;
# 设置将被gzip压缩的响应的最小长度
gzip_min_length 200;
# 压缩级别 1-9
gzip_comp_level 6;
# 压缩在缓冲区块数和每块大小
gzip_buffers 32 4k;   # | 16 8k;
# 设置压缩响应所需的最低HTTP请求版本
gzip_http_version 1.0;
gzip_types       text/plain text/css text/xml application/xml application/json application/javascript;
知识兔

检查是否出错

/usr/local/nginx/sbin/nginx
知识兔

浏览器缓存

## 设置在 server 中的 location 节点
# expires 1s 秒
# expires 2m 分
# expires 3h 时
# expires 6d 天
# ~* 不区分大小写
location ~* \.(jpg|jpeg|gif|bmp|png|ico|svg|mp4|mp3){
  expires 7d; # 缓存1天
}
location ~* \.(css|js){
  expires 1d; # 缓存1天
}
知识兔

 

日志管理

 vi /usr/local/nginx/conf/nginx.conf
知识兔

通过配置虚拟主机可以指定日志目录和文件名称

access_log  logs/access.log  main; # 日志
知识兔
http中
log_format main '$remote_addr - $remote_user [$time_local] "$request" '
                    '$status $body_bytes_sent "$http_referer" '
                    '"$http_user_agent" "$http_x_forwarded_for" "$request_time"';
server中
access_log logs/success.log main;

日志分割

nginx运行时会产生大量的日志,为了方便查询日志,所以有是时候需要将日志文件进行分割。

新建shell脚本

mkdir /sh

新建shell文件

vi nginx log.sh
#!/bin/bash
#日志家目录
log_home="/usr/local/nginx/logs"
#备份日志目录
log_path=${log_home}/$(date +"%Y")/$(date +"%m")
#创建目录
mkdir -p $log_path
#重命名
mv $log_home/access.log $log_path/access_$(date -d yesterday +"%Y%m%d").log
#重载生成新的目志
/usr/local/ngin/sbin/nginx -s reload

给shell脚本添加可执行权限

chmod +x nginx_log.sh

把此脚本添加到计划任务

 crontab -e
写入
0 0 * * * /sh/nginx_log.sh

 

计算机