专业编程基础技术教程

网站首页 > 基础教程 正文

「nginx」六、nginx配置文件说明

ccvgpt 2024-09-09 02:20:10 基础教程 7 ℃

之前我们已经了解了nginx的安装,启动,升级的内容,这里我们就讲解一下nginx非常重要的内容,如何设置配置文件。

解读配置文件

在nginx安装目录下,有个conf文件夹,下面存放着nginx的配置文件

「nginx」六、nginx配置文件说明

里面有个nginx.conf文件,是nginx启动的默认的配置文件。我们查看一下配置文件的内容

我们看一下配置文件里面值代表什么含义。

#user nobody; --user指令,表示以哪个用户运行nginx程序,nobody是个权限比较低的用户

worker_processes 1; --启动进程数,通常设置成 cpu的核数,通过 cat /proc/cpuinfo 看cpu参数

#error_log 全局错误日志,

#nginx的error_log类型如下(从左到右:debug最详细 crit最少):

#[ debug | info | notice | warn | error | crit ]

#例如:error_log logs/nginx_error.log crit;

#解释:日志文件存储在nginx安装目录下的 logs/nginx_error.log ,错误类型为 crit ,也就是记录最少错误信息;

error_log logs/error.log;

error_log logs/notice.log notice;

error_log logs/info.log info;

#PID文件,记录当前启动的nginx的进程ID

pid logs/nginx.pid;

#工作模式及连接数上限

events {

use epoll; #epoll是多路复用IO中的一种方式,但是仅用于linux2.6以上内核,可以大大提高nginx的性能

worker_connections 1024; #单个后台worker process进程的最大并发链接数

}

下面就是http模块,就是设置http服务

#设定mime类型,类型由mime.type文件定义

#输出格式

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 /var/log/nginx/access.log;

#sendfile 指令指定 nginx 是否调用 sendfile 函数(zero copy 方式)来输出文件,对于普通应用,

#必须设为 on,如果用来进行下载等应用磁盘IO重负载应用,可设置为 off,以平衡磁盘与网络I/O处理速度,降低系统的uptime.

sendfile on;

#连接超时时间

keepalive_timeout 65;

#开启gzip压缩 ,压缩有利于提升网络的传输速度

#但非常小的文件 不需要压缩,压缩反而会影响速度

gzip on;

#设定反向代理服务器列表

#weigth参数表示权值,权值越高被分配到的几率越大

upstream myserver {

server 192.168.1.2 weight=5;

server 192.168.1.3 weight=1;

server 192.168.1.4 weight=6;

}

反向代理服务器列表,表示访问myserver请求,会挑选服务器列表中的一个服务器进行转发请求,从而达到负载均衡分解请求压力效果;如何挑选服务器,有随机规则、权重规则或ip_hash规则,以后会介绍规则的设定。

下面就到server模块,server代表就是虚拟主机服务,配置服务的,可以有多个server模块

#侦听80端口

listen 80;

#设置编码

#charset koi8-r;

#定义使用此服务的访问域名或ip

server_name localhost;

#设定本虚拟主机的访问日志

access_log logs/server1.access.log main;

下面就到了location模块,location表示路由规则,也就是用户请求的url地址,那nginx如何路由分配请求,以后会重点讲解location的路由规则

location / {

root /html; #定义服务器的默认网站根目录位置

index index.html index.htm; #定义首页索引文件的名称

proxy_pass http://myserver ;#请求转向myserver定义的服务器列表

}

# 定义错误提示页面

error_page 500 502 503 504 /50x.html; #出现500,502,503,504错误 就路由请求 /50x.html

location = /50x.html {

root /html;

}

以上就大概介绍了,nginx配置文件的核心指令;那么是不是配置文件都要有以上指令元素呢?当然不需要全都有,但nginx最小的配置模块一定要有,如下所示

worker_processes 1;

events {

# 一般是配置nginx进程与连接的特性

# 如1个word能同时允许多少连接,一个子进程最大允许连接1024个连接

worker_connections 1024;

}

# 配置HTTP服务器配置段

http {

# 配置虚拟主机段

server {

# 定位,把特殊的路径或文件再次定位。

location {

}

}

}

以上元素一定要在配置文件中体现,当然关于一些高级配置,大家有兴趣可以网上深入去了解下,老顾在这里就不多讲了

最近发表
标签列表