最近,在初步解除nginx的时候,刚看到配置文件的时候,自己处于一脸懵的状态,然后就各种查找才明白了nginx配置文件的一些意思,我发现自己不明白nginx的配置文件是因为一开始的时候就不知道nginx到底可以做些什么!我觉得刚开始接触的话,可以先了解下nginx可以做些什么会更好,闲话不多说,我们从刚安装完nginx开始。
一起来看下nginx的配置文件:
#user nobody;
worker_processes 1;
#error_log logs/error.log;
#error_log logs/error.log notice;
#error_log logs/error.log info;
#pid logs/nginx.pid;
events {
worker_connections 1024;
}
http {
include 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 logs/access.log main;
sendfile on;
#tcp_nopush on;
#keepalive_timeout 0;
keepalive_timeout 65;
#gzip on;
server {
listen 80;
server_name localhost;
charset utf-8;
# /表示根目录,该配置表示Nginx默认打开/www下的index.html
location / {
root index.html;
index index.html index.htm;
}
}
}
然后一起来看下这些的意思:
第一部分:
#user nobody; ------ 这里代表的是该nginx运行的worker进程的用户跟用户组,一般没什么指定的用户可以是默认
worker_processes 1; ------ 这里的意思是woker的进程数量,跟后面的连接数有关(后面再说)建议是CPU的核数
#error_log logs/error.log;
#error_log logs/error.log notice; ------ 这三个都是日志文件的级别,选择哪个,就是采用哪个日记级别还有warn和crit
#error_log logs/error.log info;
#pid logs/nginx.pid; ------ 指定进程id存储文件的位置,普通使用可以注释
第二部分:
events {
worker_connections 1024; ------ 每个进程可以处理的最大连接数,理论上每台nginx的连接数就是它X worker_processes数
}
第三部分:也是我们最常用的;饿
http {
include 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 logs/access.log main;
sendfile on; ------ 是否开启高效传输模式
#tcp_nopush on;
#keepalive_timeout 0;
keepalive_timeout 65; -----保持连接的时间
#gzip on; ------ 是否开启gzip压缩
server {
listen 80; ------ 监听的端口
server_name localhost; ------ 服务器的域名
# /表示根目录,该配置表示Nginx默认打开/www下的index.html
location / {
#------ 我们主要是改这里,一般改成我们应用的上下文,然后nginx拦截转到我们的应用里面,这里的意思就是别人如果访问80 # 端口可以跳转到本地8080端口的应用
proxy_pass http://127.0.0.1:8080
}
}
一开始,我觉得了解下这些就可以了,然后再实践下,除了这些nginx还能做到的事情很多,比如负载均衡、限制IP访问等等。