Nginx的配置解析(新手入门)

 Nginx功能简述

反向代理:简单来说就是代理多台服务器,客户端在访问的时候并不知道自己实际上是访问的是哪个服务器,具体的请求由nginx来进行服务器的分发

                          

负载均衡:Nginx提供的负载均衡策略有5种:

  • 轮询(默认):每个请求按时间顺序逐一分配到不同的后端服务器,如果后端服务器down掉,能自动剔除
  • 指定权重:指定轮询几率,weight和访问比率成正比,用于后端服务器性能不均的情况
  • IP绑定 ip_hash:每个请求按访问ip的hash结果分配,这样每个访客固定访问一个后端服务器,可以解决session的问题。 
  • fair(第三方):按后端服务器的响应时间来分配请求,响应时间短的优先分配。 
  • url_hash(第三方):按访问url的hash结果来分配请求,使每个url定向到同一个后端服务器,后端服务器为缓存时比较有效。

nginx的文件结构

...              #全局块

events {         #events块
   ...
}

http      #http块
{
    ...   #http全局块
    server        #server块
    { 
        ...       #server全局块
        location [PATTERN]   #location块
        {
            ...
        }
        location [PATTERN] 
        {
            ...
        }
    }
    server
    {
      ...
    }
    ...     #http全局块
}

关于各个块的详解:

  • 全局快:用于配置会影响全局的配置,如:日志文件的存放位置
  • events块:配置影响nginx服务器或者用户组的网络连接。如:每个进程的最大连接数,是否允许接受多个连接
  • http块:可以嵌套多个server,配置代理,缓存,日志等第三方模块
  • server块:配置虚拟主机的相关参数
  • locatation块:配置请求的路由,以及各种页面的处理情况,可以使用正则,也可以使用具体的页面

最后是一套完整的nginx的配置,搭建仅供参考

server {
    listen 80; #监听端口
    listen 9601; 
    server_name neusoft.edu.cn;#服务名称
    server_tokens off; #隐藏端口号

    root /home/q/system/sens/src/www/admin; #指定这个目录作为文件的检索

    if ($request_filename !~ \.(js|swf|ico|gif|jpg|png|php|css|xml|html|eot|svg|ttf|woff|woff2)$) {
        rewrite ^ /index.php; #rewrite是地址重定向
    } 

    try_files $uri $uri/ =404; #如果找不到文件,就直接在uri的下面找,如果在找不到,就报404
    
    index index.php;

    gzip on;
    gzip_comp_level 6;
    gzip_min_length 500;

    charset utf-8; #编码集

    access_log /usr/local/nginx/logs/sens_admin.log main; #成功的log
    error_log /usr/local/nginx/logs/sens_admin_error.log; #失败的log

    location = /index.php { #根据用户的请求来进行配置段的执行,这里如果请求的是index.php,那么执行配置
        #fastcgi_pass  unix:/tmp/fcgi.sock;
        fastcgi_pass  127.0.0.1:9000; #fastcgi(http服务器与你的或其它机器上的程序进行“交谈”的一种工具)监听的端口
        fastcgi_index index.php; # 接下来就是fastcgi的一些配置,有兴趣的话可以自己去查询一下
        fastcgi_param SCRIPT_FILENAME $document_root/$fastcgi_script_name;
        fastcgi_param PROJECT_INCLUDE_PATH  "/home/q/php:/home/q/system/sens/config/admin/:.";

        client_max_body_size 1m;
        include fastcgi.conf;
        fastcgi_connect_timeout 50s;
        fastcgi_send_timeout 50s;
        fastcgi_read_timeout 50s;
    }
}

猜你喜欢

转载自blog.csdn.net/zhttly/article/details/82592205