nginx配置文件

nginx配置文件

配置文件名称

复制代码
nginx.conf

可以直接查找

shell 复制代码
find / -type f -name "nginx.conf"

一般都在自己安装的目录下的

shell 复制代码
nginx/conf

常用的nginx全局配置

user:指定nginx进程运行用户以及用户组 默认是nobody用户运行:

这里使用nginx运行

所以把nobody换成nginx

worker_processes:设置nginx工作进程数,一般来说cpu有几核,就设置位几核,这样可以充分利用cpu资源。

查看系统cpu资源

复制代码
top 然后按1

如图cpu有四核

所以改为四

复制代码
worker_processes  4;

worker_cpu_affinity:这个指令可以将nginx的一些指定的进程绑定到cup中,绑定了cpu的进程就会由该cpu处理

复制代码
worker_cpu_affinity 0001 0010 0100 1000;
//每一个进程分别绑定每一个核

error_log:用来定义全局错误日志文件,日志输出级别由大到小:debug info notice(默认),crift 其中debug输出日志最详细

复制代码
error_log  logs/error.log notice;

pid:用来指定进程id的储存位置

我们在安装nginx的时候可以自己指定nginx.pid在哪里,可以用find去查找

复制代码
sudo find / -type f -name "nginx.pid"

nginx/logs/nginx.pid

设置

复制代码
pid logs/nginx.pid

worker_rlimit_nofile:用来指定每个进程能够打开的最多文件数量,在企业环境中一般655360

复制代码
worker_rlimit_nofile 655360;

envents:设定nginx工作模式以及连接上限数

复制代码
use 用来指定nginx的工作模式,有select poll kqueue epoll rtsig /dev/poll

use epoll;


events {
    use epoll;
    worker_connections  65536;
}

http服务常用配置

复制代码
include 是个主模式指令,后面跟的文件名,主要是为了降低配置复杂度

include       mime.types;


default_type: 属于http的核心指令;例如我们没有配置php环境,nginx是不解析的 我们点击这个php文件它不会解析而是会下载,如果我们配置了这个选项就会自动解析


log_format:用于指定nginx日志输出格式,main为日志名称 默认是注释的我们打开


sendfile :开启高效的文件传输模式


keepalive_timeout:设置客户端保持活动的获得超过时间,超过时间,服务器会关闭连接

httpzip

复制代码
输出数据流,可以节省带宽

Server虚拟主机配置

复制代码
 server {
        listen       80;
        server_name  localhost;

        #charset koi8-r;

        access_log  logs/host.access.log  main;

        location / {
            root   html;
            index  index.html index.htm;
        }

        error_page  404              /404.html;

        # redirect server error pages to the static page /50x.html
        #
        error_page   500 502 503 504  /50x.html;
        location = /50x.html {
            root   html;
        }

server:定义虚拟主机开始的关键词
listen:监听哪个端口


index:用于设置访问发默认地址
location / {
            root   html;
            index  index.html index.htm;
        }
error_page 错误位置 定向到错误页面

查看有没有错误

复制代码
god@localhost:/app/tools/nginx/sbin$ sudo   ./nginx -t
nginx: the configuration file /app/tools/nginx-1.28.0//conf/nginx.conf syntax is ok
nginx: configuration file /app/tools/nginx-1.28.0//conf/nginx.conf test is successful

启动和关闭

复制代码
重启 
kill -HUP pid(父进程)

location配置

基本语法
js 复制代码
location [修饰符] 路径 {
    # 配置内容
}
修饰符 匹配方式 优先级 示例
= 精确匹配 最高 location = /abc
^~ 前缀匹配(不做正则) location ^~ /abc
~ 正则匹配(区分大小写) location ~ \.php$
~* 正则匹配(不区分大小写) location ~* \.jpg$
无修饰符 前缀匹配(模糊) 最低 location /abc

优先级

复制代码
=
^~
~*
/abc/def
/abc
/

示例

复制代码
# 区分大小写匹配
location ~ .*\.(gif|jpg|jpeg|png|bmp|swf)$ {
    root /data/wwwroot/www.ixdba.net;
}
shell 复制代码
改了配置文件后一定要进行重启nginx
ps -ef |grep nginx
然后
kill -HUP pid 重启进程


创建目录
sudo mkdir -p /data/wwwroot/www.ixdba.net
然后添加一些和你访问相关的东西
比如图片啊

只要再里面添加一些图片我们访问的时候就可以访问到了

如果有问题就可能是权限问题或者下面的问题

复制代码
# 1. 改配置
vim /app/tools/nginx-1.28.0/conf/nginx.conf

# 2. 语法检查
sudo /app/tools/nginx/sbin/nginx -t -c /app/tools/nginx-1.28.0/conf/nginx.conf

# 3. 平滑加载
sudo /app/tools/nginx/sbin/nginx -s reload -c /app/tools/nginx-1.28.0/conf/nginx.conf

配置基本完成