nginx.conf
# user nginx;
worker_processes 1;
error_log /var/log/nginx/error.log warn;
pid /var/run/nginx.pid;
events {
worker_connections 1024;
}
http {
include /etc/nginx/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 main;
sendfile on;
#tcp_nopush on;
keepalive_timeout 65;
client_max_body_size 200m;
#gzip on;
#include /etc/nginx/conf.d/*.conf;
server {
listen 8080;
server_name localhost;
location ^~/mgrcontrol/{
proxy_pass '$MGR_SERVICE';
}
location /{
add_header Access-Control-Allow-Origin *;
add_header Access-Control-Allow-Methods 'GET, POST, OPTIONS';
add_header Access-Control-Allow-Headers 'DNT,X-Mx-ReqToken,Keep-Alive,User-Agent,X-Requested-With,If-Modified-Since,Cache-Control,Content-Type,Authorization';
if ($request_method = 'OPTIONS') {
return 204;
}
root /opt/apps/dist;
index index.html index.htm;
try_files $uri $uri/ /index.html;
}
}
}
这是一个简化版的 Nginx 配置文件
1. `user nginx;`: 指定 Nginx 进程的运行用户,这里是 `nginx` 用户。
2. `worker_processes 1;`: 指定 Nginx 使用的 worker 进程数量,这里是一个单一的进程。通常,这个值可以设置为机器的 CPU 核心数。
3. `error_log /var/log/nginx/error.log warn;`: 指定错误日志的路径和日志级别,这里将错误日志写入 `/var/log/nginx/error.log` 文件,仅记录警告级别及以上的错误。
4. `pid /var/run/nginx.pid;`: 指定 Nginx 进程 ID 的存储文件路径。
5. `events { ... }`: 定义事件模块,配置与连接处理有关的参数,如 worker 连接数。
6. `http { ... }`: 定义 HTTP 模块,包含了整个 HTTP 配置。
7. `include /etc/nginx/mime.types;`: 引入 MIME 类型配置文件。
8. `default_type application/octet-stream;`: 指定默认的 MIME 类型,如果没有匹配到其他类型,将使用 `application/octet-stream`。
9. `log_format main ...`: 配置日志格式,定义了访问日志的记录格式。
10. `access_log /var/log/nginx/access.log main;`: 指定访问日志的路径和使用的日志格式。
11. `sendfile on;`: 启用或禁用 sendfile,用于高效地传输文件。
12. `keepalive_timeout 65;`: 客户端与服务器之间的连接在空闲状态下的超时时间。
13. `client_max_body_size 200m;`: 允许客户端上传的最大请求体大小。
14. `server { ... }`: 定义一个虚拟主机配置。
? ? - `listen 8080;`: 监听的端口号是 8080。
? ? - `server_name localhost;`: 指定虚拟主机的域名。
? ? - `location ^~/mgrcontrol/ { ... }`: 针对以 `/mgrcontrol/` 开头的请求进行代理,将请求转发到 `$MGR_SERVICE`。
? ? - `location / { ... }`: 处理其他所有请求的配置块,包括添加 CORS 头,设置根目录,定义索引文件,以及处理路由。
? ? ? ? - `add_header Access-Control-Allow-Origin *;`: 允许所有来源的跨域请求。
? ? ? ? - `try_files $uri $uri/ /index.html;`: 尝试查找指定的文件,如果不存在则重定向到 `/index.html`。
这个配置文件基本上是一个简单的单一虚拟主机配置,监听在 8080 端口,处理静态文件请求和代理 `/mgrcontrol/` 路径的请求。同时,添加了一些跨域请求的处理。配置文件中的`$MGR_SERVICE` 是一个变量,具体的值可能在其他地方定义。