1. Nginx配置文件

1.1 主配置文件:nginx.conf

Nginx的主配置文件是nginx.conf,位于/usr/local/nginx/conf/目录中。这个文件包含了Nginx服务器的全局配置。

1.2 源码安装配置目录:/usr/local/nginx/conf/

如果通过源码安装Nginx,配置文件会位于/usr/local/nginx/conf/目录下。

1.3 相关的配置文件:fastcgiuwsgiscgi

这些配置文件主要用于定义与FastCGI、uWSGI和SCGI相关的参数和设置。

1.4 支持的mime类型:mime.types

Nginx使用mime.types文件来确定不同文件扩展名的MIME类型,这个文件也位于/usr/local/nginx/conf/目录下。

2. Nginx主程序文件

2.1 Nginx主程序文件路径

Nginx的主程序文件是nginx,它位于/usr/local/nginx/sbin/nginx

3. Nginx主配置文件结构

3.1 main block字段:全局配置

main block定义了Nginx的全局配置,如worker进程数、日志路径等。这些配置在整个Nginx服务中都是有效的。

user nginx;
worker_processes auto;
pid /var/run/nginx.pid;
events {
    worker_connections 1024;
}

3.2 events字段:事件驱动相关配置

events块内的配置主要涉及Nginx如何处理连接请求。常用参数有worker_connectionsuse

events {
    worker_connections 1024;
    use epoll;  # Linux推荐使用epoll模型
}

3.3 http字段:HTTP/HTTPS协议相关的配置

http块内的配置涉及HTTP和HTTPS协议相关的设置,包括虚拟主机、代理设置、缓存、压缩等。

http {
    include       mime.types;
    default_type  application/octet-stream;

    server {
        listen       80;
        server_name  example.com;

        location / {
            root   /usr/share/nginx/html;
            index  index.html index.htm;
        }
    }
}

3.4 mail字段:邮件协议相关配置

mail块主要用于配置Nginx作为邮件代理服务器时的相关参数。

3.5 stream字段:一般的TCP代理或负载均衡配置

stream块用于TCP和UDP流的代理和负载均衡配置。

4. 正常运行必备的配置参数

4.1 user

定义启动Nginx工作进程的用户。

user nginx;

4.2 pid

指定存储Nginx主进程进程号的文件路径。

pid /var/run/nginx.pid;

4.3 include

指明包含进来的其他配置文件片断。

include /etc/nginx/conf.d/*.conf;

4.4 load_module

指明要装载的动态模块。

load_module modules/ngx_http_js_module.so;

5. 性能优化相关配置参数

5.1 worker_processes

设置work进程数量,默认是1,根据服务器的CPU数量设置,最大不超过CPU数量的2倍。

worker_processes auto;

5.2 worker_cpu_affinity

将worker进程绑定到指定的CPU核心。

worker_cpu_affinity auto;

5.3 worker_priority

设置worker进程的优先级。

worker_priority -10;

5.4 worker_rlimit_nofile

设置worker进程能够打开的文件数量上限。

worker_rlimit_nofile 4096;

6. 调试、定位相关配置参数

6.1 daemon

是否以守护进程方式运行Nginx。

daemon on;

6.2 master_process

是否以master/worker模型运行Nginx,默认为on。

master_process on;

6.3 error_log

错误日志记录。

error_log /var/log/nginx/error.log warn;

7. 配置参数注意事项

7.1 每条参数必须以分号结尾

user nginx;
worker_processes auto;

7.2 支持使用配置变量

Nginx模块引入的内建变量和用户定义变量。例如:

set $my_variable value;

引用变量时使用 $ 符号,例如:

location / {
    root $my_variable;
}

8. events:事件驱动相关配置

8.1 worker_connections

每个worker进程所能打开的最大并发连接数量。

events {
    worker_connections 1024;
}

8.2 use method

指明并发连接请求的处理方法,推荐使用epoll

events {
    use epoll;
}

8.3 accept_mutex

处理新的连接请求的方法。

events {
    accept_mutex on;
}

9. http字段配置示例

9.1 server块

每个server用于定义一个虚拟主机。

http {
    server {
        listen       80;
        server_name  example.com;

        location / {
            root   /usr/share/nginx/html;
            index  index.html index.htm;
        }
    }
}

9.2 upstream块

用于定义负载均衡服务器池。

http {
    upstream backend {
        server backend1.example.com;
        server backend2.example.com;
    }

    server {
        listen 80;

        location / {
            proxy_pass http://backend;
        }
    }
}

10. location字段配置示例

10.1 匹配规则

location指令用于匹配URL的访问属性,不同的匹配符号有不同的作用。

location = / {
    # 精确匹配根目录
    [配置]
}
location / {
    # 匹配所有以根起始的文件
    [配置]
}
location ~* \.(gif|jpg|jpeg)$ {
    # 匹配所有GIF, JPG, JPEG文件,不区分大小写
    [配置]
}

本文由mdnice多平台发布


逼格高的汤圆
7 声望2 粉丝