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 相关的配置文件:fastcgi
、uwsgi
、scgi
这些配置文件主要用于定义与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_connections
和use
。
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多平台发布
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。