[关闭]
@dungan 2018-09-21T09:12:14.000000Z 字数 2030 阅读 71

Nginx

Nginx 配置文件介绍

nginx.conf 是nginx的主配置文件,整个配置文件是以区块区分的,每个区块以'{}'来组织,nginx 配置文件主要分为六个区域:

  1. main
  2. events {
  3. ....
  4. }
  5. http {
  6. ....
  7. upstream myproject {
  8. .....
  9. }
  10. server {
  11. ....
  12. location {
  13. ....
  14. }
  15. }
  16. server {
  17. ....
  18. location {
  19. ....
  20. }
  21. }
  22. ....
  23. }

各个区块的参数说明如下

main

  1. user www www;
  2. worker_processes auto;
  3. error_log /data/wwwlogs/error_nginx.log crit;
  4. pid /var/run/nginx.pid;
  5. worker_rlimit_nofile 51200;

user: 指定 Nginx Worker 进程运行用户以及用户组;
worker_processes : 要开启的子进程数, 一般情况下,最好设置成auto,让系统自动检测;从理论上来说,worker_processes的值越大,可以支持的并发处理量就越多,如果是多核CPU,建议指定和CPU的数量一样的进程数即可;
error_log:用来定义全局错误日志文件。日志输出级别有debug、info、notice、warn、error、crit可供选择,其中,debug输出日志最为最详细,而crit输出日志最少;
worker_rlimit_nofile:用于指定一个nginx进程可以打开的最多文件描述符数目,可以使用命令“ulimit -n 数量”来设置;

event

  1. events {
  2. use epoll;
  3. worker_connections 51200;
  4. multi_accept on;
  5. }

use:指定nginx的 IO 模型;
wroker_connections:每个进程能够接收前端的最大请求数,进程的最大连接数受Linux系统进程的最大打开文件数限制;

http

  1. include mime.types;
  2. default_type application/octet-stream;
  3. server_names_hash_bucket_size 128;
  4. client_header_buffer_size 32k;
  5. large_client_header_buffers 4 32k;
  6. client_max_body_size 1024m;
  7. client_body_buffer_size 10m;
  8. sendfile on;
  9. tcp_nopush on;
  10. keepalive_timeout 120;
  11. server_tokens off;
  12. tcp_nodelay on;

include mime.types:nginx支持的媒体类型;
default_type::默认的媒体类型;
sendfile on:开启高效传输模式;
keepalive-timeout:客户端连接保持活动的超时时间,在超过这个时间之后,服务器会关闭该连接;

server

  1. listen 80;
  2. server_name www.test.com test.com;
  3. access_log /data/wwwlogs/access_nginx.log combined;
  4. root /data/wwwroot/test;
  5. index index.html index.htm index.php;
  6. #error_page 404 /404.html;
  7. #error_page 502 /502.html;

listen:提供服务的端口;
server_name:提供服务的域名,多个域名之间用空格分开;
root :站点根目录;
index:站点的默认入口文件,还可以在 'location /' 区块中重写;
access_log:访问日志,注意区分 main 区块的 error_log,前者是访问日志,后者是错误日志;

location

主要实现对 url 使用定好的规则进行匹配,匹配成功后就可以交给后续的处理程序实现 url 重写或重定向等功能!

  1. # 网站根目录的访问都重定向到根目录下 index.php 中去!
  2. location / {
  3. if( ! -e $request_filename) {
  4. rewrite ^(.*)$ /index.php?s=$1 last;
  5. break;
  6. }
  7. }
  1. # nginx 本身不会解析php脚本,它是通过 cgi(Common Gateway Interface 通用网关接口)来调用php 解析器的;
  2. # 这里的意思是凡是见到 .php 文件就把它交给php解析器去处理!
  3. location ~ [^/]\.php(/|$) {
  4. #fastcgi_pass remote_php_ip:9000;
  5. fastcgi_pass unix:/dev/shm/php-cgi.sock;
  6. fastcgi_index index.php;
  7. include fastcgi.conf;
  8. }
添加新批注
在作者公开此批注前,只有你和作者可见。
回复批注