Nginx 的配置是其实非常多的,对于这些基本配置,有的同学可能会觉得,这些网上就可以找到,用到的时候查询就可以了,这里,我想说的是,作为架构师修练,就不能像一般人看齐了,深入了解Nginx的配置,你才能更好地去使用它。
Nginx自身提供的模块,以及第三方模块,将他们以配置的方式集成进来是非常方便的,这就意味着想要真正用好nginx,就要学习很多很多的模块,下面咱们还是从零开始吧。
一、基本概念
1、Nginx在启动时默认会使用 安装路径/conf/nginx.conf文件,也可以在启动时使用-c来指定要使用的配置文件:
nginx -c /etc/nginx/nginx.conf
2、Nginx最常用的配置文件是nginx.conf : 应用程序配置文件,我们在后面主要针对这个配置文件做讲解
3、Nginx的进程结构:
启动Nginx的时候,会启动一个Master进程,这个进程不处理客户端的任何请求,主要用来创建worker进程,一个worker进程用来处理一个request。
4、Nginx基本模块指的是它默认的功能模块,它们提供的指令允许你使用定义Nginx基本功能的变量,在编译的时候不能被禁用,包括:
核心模块:基本功能和指令,如进程管理和安全
事件模块:在Nginx内配置网络使用的能力
配置模块:提供包含机制
二、配置实例
vi nginx.conf 打开nginx.conf配置文件,以下介绍基本的配置
1、nginx 的进程号目录配置
pid /var/run/nginx/nginx.pid;
2、nginx的事件配置,worker_connections 设置worker进程最大打开的连接数,以允许同时处理更多连接
events {
worker_connections 1024;
}
3、导入其他配置文件配置,在http{}中,以下均为
include mime.types;
4、日志格式化配置
log_format main '$remote_addr - $remote_user [$time_local] "$request" '
'$status $body_bytes_sent "$http_referer" ''"$http_user_agent" "$http_x_forwarded_for"';
5、日志存放位置,并指定使用上面定义的日志格式main
access_log logs/access.log main;
6、长链接保持时间配置
keepalive_timeout 65;
7、设定负载均衡的服务器列表,这里可以配置多个tomcat地址,weigth参数表示权值,权值越高被分配到的几率越大
8、开启gzip压缩
gzip on;
gzip_disable "MSIE [1-6]\.(?!.*SV1)";
9、配置服务器相关
server {
#侦听80端口
listen 80;
#定义使用www.mayi.com访问
server_name www.mayi.com;
#设定本虚拟主机的访问日志
access_log logs/www.mayi.com.access.log main;
#默认请求
location / {
#定义服务器的默认网站根目录位置
root /root;
#定义首页索引文件的名称
index index.php index.html index.htm;
#fastcgi相关配置
$document_root/$fastcgi_script_name;
include /etc/nginx/fastcgi_params;
}
#定义错误提示页面
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root /root;
}
#静态文件,nginx自己处理
location ~ ^/(images|javascript|js|css|flash|media|static)/ {
root /var/www/virtual/htdocs;
#静态文件过期30天,过期可以设大一点,如果频繁更新,则可以设置得小一点。
expires 30d;
}
#设定查看Nginx状态的地址
location /NginxStatus {
stub_status on;
access_log on;
auth_basic "NginxStatus";
auth_basic_user_file conf/htpasswd;
}
#禁止访问 .htxxx 文件
location ~ /\.ht {
deny all;
}
}
}
好了,基本的配置说明就到这里,接下来还会有几篇Nginx的文章来详细说明每个模块的配置。
领取专属 10元无门槛券
私享最新 技术干货