nginx配置文件详解
基本配置
#核心模块配置
user www; #nginx进程使用的用户
worker_processes 1; #nginx运行的worker进程数量(建议与CPU数量一致或auto)
err_log /log/nginx/error.log#错误日志存放目录
pid /var/run/nginx.pid;#nginx进程的ip
#事件模块配置
events {
worker_connections 1024; #一个worker最大的链接数量
use epoll;#使用的网络模型为epoll 默认
}
# http模块配置
http {
include /etc/nginx/mime.types; #文件后缀与响应数据类型的映射表
default_type application/octet-stream; #当后缀找不到映射时使用的默认类型 stream即文件下载
# 指定日志输出格式 $表示取nginx内部变量
log_format main '$remote_addr - $remote_user [$time_local] "$request" '
'$status $body_bytes_sent "$http_referer" '
'"$http_user_agent" "$http_x_forwarded_for"';
# 指定日志路径 并指定需要使用的格式为main
access_log /data/log/nginx/access.log main;
sendfile on; # 启用高效文件传输 nginx内部提供的方法
#tcp_nopush on;
keepalive_timeout 65; #会话超时时间
#gzip on;#是否开启压缩功能
include /etc/nginx/conf.d/*.conf; # 包含其他位置的配置文件 (server)
}
server配置
一般情况是基本配置放到nginx.conf文件里,把自己服务器的server配置放在一个conf文件里,再再nginx.conf里面include另一个conf文件
# server配置项位于http之内 之所以分开是为了方便管理
server {
listen 80;
server_name localhost;
#charset koi8-r; 指定编码方式
#access_log /var/log/nginx/host.access.log main; #单独指定该服务的日志路径
# 转发路径
location / { # 10.0.0.11 == http://10.0.0.11:80/ /表示跟
root /usr/share/nginx/html; # 访问路径为/时 到/usr/share/nginx/html;下找文件
# /将被替换为 root 后的路径
index index.html index.htm; # 默认的主页文件
# 该配置表示当访问了地址为10.0.0.11时将返回
# /usr/share/nginx/html/index.html 或/ htm文件
}
#error_page 404 /404.html; # 遇到404时要返回的页面
# redirect server error pages to the static page /50x.html
#
error_page 500 502 503 504 /50x.html; # 当遇到5xx服务器错误时 返回
location = /50x.html { #/usr/share/nginx/html/50x.html
root /usr/share/nginx/html;
}
# 一个server中可以包含多个location配置项
}
静态文件配置
静态文件配置可以使用root目录和alias目录,两者的区别在于:
1)alias指定的目录是准确的,即location匹配访问的path目录下的文件直接是在alias目录下查找的
2)root指定的目录是location匹配访问的path目录的上一级目录,这个path目录一定要是真实存在root指定目录下的;
举个栗子,静态资源放置在/data/www/static/目录下
1.配置alias目录
location /static/ {
alias /data/www/static/;
}
注意:alias指定的目录后面必须加上"/",
配置alias后访问http://ip:port/static/dm.jpg时实际访问的是/data/www/static/dm.jpg
2.配置root目录
location /static/ {
root /data/www/;
}
注意:location中指定的/static/必须是root指定的/data/www/目录下真实存在的
两种方式配置的效果是一样的
配置习惯
一般情况下,在nginx配置中的良好习惯是:
1)在location / 中配置root目录
2)在location /somepath/中配置alias虚拟目录
参考文章:
1.https://www.cnblogs.com/bluestorm/p/4574688.html
2.https://blog.csdn.net/spark_csdn/article/details/80836326