nginx设置文件介绍

127 篇文章 0 订阅
36 篇文章 0 订阅

在开始修改nginx设置之前,我们首先做一些准备工作,让我们修改起来更加简单

一、预备工作

1.设置文件中参数高亮显示

mkdir ~/.vim
cp  -r /root/nginx-1.14.2/contrib/.vim/*  ~/.vim

如上图这样我们就可以更好的编辑nginx的配置文件了

2.启动脚本

这里我们需要找一个模板,我们拷贝httpd的

cp /usr/lib/systemd/system/httpd.service /etc/systemd/system/nginx.service
vim /etc/systemd/system/nginx.service

修改如下

[Unit]
Description=The nginx HTTP Server
After=network.target remote-fs.target nss-lookup.target

[Service]
Type=forking
PIDFile=/usr/local/nginx/logs/nginx.pid
ExecStart=/usr/local/nginx/sbin/nginx
ExecReload=/usr/local/nginx/sbin/nginx -s reload
ExecStop=/usr/local/nginx/sbin/nginx -s stop
PrivateTmp=true

[Install]
WantedBy=multi-user.target

然后我们试一下

systemctl daemon-reload            ##重新加载systemd策略
systemctl start nginx 

 

二、设置文件简介

nginx的配置文件在

vim /usr/local/nginx/conf/nginx.conf

nginx配置文件主要分为六个区域:

  • main(全局设置)
  • events(nginx工作模式)
  • http(http设置)
  • sever(主机设置)
  • location(URL匹配)
  • upstream(负载均衡服务器设置)

1.main(全局设置)

user  nobody;                            
worker_processes  1;                     
error_log  logs/error.log;              
error_log  logs/error.log  notice;
error_log  logs/error.log  info;

pid        logs/nginx.pid;
  •  user:来指定Nginx Worker进程运行用户以及用户组,默认由nobody账号运行,这里我们可以新建nginx用户和组来运行子进程
useradd -s /sbin/nologin nginx                ##为了安全,让nginx用户禁止登陆系统
  •  worker_processes:设置nginx子进程的数量,可以设置为auto,但建议与cpu的核心数一致,下面指令查看cpu信息
lscpu                    ##显示cpu的信息

  • error_log:用来定义全局错误日志文件。日志输出级别有debug、info、notice、warn、error、crit可供选择,其中,debug输出日志最为最详细,而crit输出日志最少。

/usr/local/nginx/logs使存放日志的地方

如上图,access.log是访问成功的日志,error.log是访问失败的日志,nginx.pid是nginx的pid

这里我们应该考虑日志的截断,因为日志很大,回占用很多的硬盘空间

我们可以使用一个最简单的截断例子来说明

mv access.log `date +%F -d -1days`_access.log   ##这样我们就可以把日志截断为时间开头的日志

 

但是你会发现没有了access.log文件,那么我们接下来如何记录呢

/usr/local/nginx/sbin/nginx -s reopen

这样日志就重新存在了

  • pid:显示pid信息的文件路径

2.event模块(nginx工作模式)

events {
    use epoll; #Linux平台
    worker_connections  1024;
}
  • use:用来指定Nginx的工作模式。Nginx支持的工作模式有select、poll、kqueue、epoll、rtsig和/dev/poll。其中select和poll都是标准的工作模式,kqueue和epoll是高效的工作模式,不同的是epoll用在Linux平台上,而kqueue用在BSD系统中,对于Linux系统,epoll工作模式是首选。
  • worker_connections:用于定义Nginx每个进程的最大连接数,即接收前端的最大请求数,默认是1024。最大客户端连接数由worker_processes和worker_connections决定,即Max_clients=worker_processes*worker_connections,在作为反向代理时,Max_clients变为:Max_clients = worker_processes * worker_connections/4。 进程的最大连接数受Linux系统进程的最大打开文件数限制,设置改完不会立即生效,需要输入下面的指令
ulimit -n 65536

3.http模块

这个模块分开解释参数,因为server和location比较重要

1)主模块

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;

    sendfile        on;
    #tcp_nopush     on;

    #keepalive_timeout  0;
    keepalive_timeout  65;
  • include:设定文件的mime类型,类型在配置文件目录下的mime.type文件定义,来告诉nginx来识别文件类型
  • default_type:设定了默认的类型为二进制流,也就是当文件类型未定义时使用这种方式,例如没有配置php,当遇到php的网页时,会默认下载php文件
  • log_format:设置日志的格式,和记录哪些参数,这里设置为main,刚好用于access_log来纪录这种类型
  • access_log:用来纪录每次的访问日志的文件地址,后面的main是日志的格式样式,对应于log_format的main
  • sendfile:用于开启高效文件传输模式。将tcp_nopush和tcp_nodelay两个指令设置为on用于防止网络阻塞
  • keepalive_timeout:设置客户端连接保持活动的超时时间。在超过这个时间之后,服务器会关闭该连接

2)子模块server

server模块是http的子模块,它用来定一个虚拟主机

server {
        listen       80;
        server_name  localhost;

        #charset koi8-r;

        #access_log  logs/host.access.log  main;
  • server:标志定义虚拟主机开始
  • listen:用于指定虚拟主机的服务端口
  • server_name:用来指定IP地址或者域名,多个域名之间用空格分开
  • charset:用于设置网页的默认编码格式
  • access_log:用来指定此虚拟主机的访问日志存放路径,最后的main用于指定访问日志的输出格式。

3)子模块location

location模块是nginx中用的最多的,也是最重要的模块,负载均衡啊、反向代理、虚拟域名都与它相关,location 根据它字面意思就知道是来定位的,定位URL,解析URL,所以,它也提供了强大的正则匹配功能,也支持条件判断匹配,用户可以通过location指令实现Nginx对动、静态网页进行过滤处理。

 location / {
            root   html;
            index  index.html index.htm;
        }
  • location /:表示匹配访问根目录
  • root:表示在这整个server虚拟主机内,全部的root web根目录,可以是相对路径(相对路径是相对于nginx的安装目录),也可以是绝对路径。
  • index:全局定义访问的默认首页地址。

还有一些负载均衡模块日后再说~

ok~

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值