Linux服务器开发——Nginx(二)服务器配置

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接: https://blog.csdn.net/qq_25490573/article/details/102703786

目录

虚拟主机

Nginx配置

nginx结构

添加工作进程worker

配置文件解析

配置负载均衡


虚拟主机

配置文件地址: /usr/local/nginx/conf/nginx.conf 

有效信息只有开头到location{}处,大括号之后的部分可以删除掉,文件末尾大括号不要删除。如下图

server 代表一个主机,新建一个server代表新建一个虚拟主机

server_name 代表一个网站

lication(匹配) 【url】{

      root(指令,启动相应模块) html;

      index(默认引导页) index.php ......;

}

修改如下

保存信息,重启服务

配置windows访问机器的host文件  添加192.168.0.127      www.haha.com

在nginx文件下html目录新建文件夹haha,将index。html 拷贝到haha文件夹中。随便修好这个index内容

在浏览器中访问www.haha.com  效果如下图

进阶方法:

将nginx.conf 文件中的两个server拷贝到其他文件夹,在ngin.conf中include   类似于apche中的用法

nginx.conf文件

vhosts/www.haha.com文件

Nginx配置

新增url 需要在配置文件中添加该url,如下图

nginx结构

核心模块:HTTP模块,EVENT模块,MAIL模块

基础模块:HTTP Access模块  HTTP FastCGI模块  HTTP Proxy模块,HTTP Rewrite模块

第三方模块:HTTP Upstream Request Hash 模块 Notice模块   HTTP Access Key模块

添加工作进程worker

修改配置文件nginx.conf  中的worker_processes 后面对应的数量

master process进程用来管理工作进程

配置文件解析

#定义Nginx运行的用户和组
user www www;
#启动进程,通常设置成和cpu的数量相等(逻辑内核)
worker_processes 8;
#为每个进程分配cpu,将8个进程分配到8个cpu,当然可以写多个,或者将一个进程分配到多个cpu。
worker_cpu_affinity 00000001 00000010 00000100 00001000 00010000 00100000 01000000 10000000;
#这个指令是 一个nginx进程最多打开的文件描述符数目,理论上应该写最多
#ulimit -n 查看
worker_rlimit_nofile 102400;
#全局错误日志和pid文件   错误日志界别 [debug | info | notice | warn | error |crit ]
error_log /usr/local/nginx/logs/error.log info;
pid /usr/local/nginx/nginx.pid

#工作模式及连接上线
events{
    use epoll;               #工作方式
    worker_connections 1240; #单个进程连接数上线
    multi_accept on;         #尽可能多的接收请求
}

#设置http服务器,利用它的反向代理功能提供负载均衡支持
http{
    #设定mime类型,类型由mime.type文件定义
    include    mime.types;
    default_type application/octet-stream;
    #设置日志格式
    access_log    /usr/local/nginx/log/nginx/access.log;

    sendfile    on;
    #sendfile指令 指定nginx是否调用sendfile函数(zero copy 方式)输出文件。普通应用设置为on
    #如果用来下载应用等重负载应用,可以设置为off,以平衡磁盘与网络io速度,降低系统的uptime
    #autoindex on; #开启目录列表访问,适合下载服务器,默认关闭
    
    tcp_nopush on; #防止网络阻塞
    keepalive_timeout 60; #超时时间 同时避免重新建立连接
    tcp_nodelay on; #提高数据的实时响应性
    
    #开启gzip压缩
    gzip  on;
    gzip_min_length 1k; #压缩的最小文件大小,小于1k,不压缩
    gzip_bufers 4 16k; #压缩缓存
    gzip_http_version 1.1;
    gzip_comp_level 2;#压缩级别大小,最大9 值越小,压缩比例越小,cpu处理更快。
    gzip_types text/plain application/x-javascript text/css application/xml;
    gzip_vary on;
    client_max_body_size 10m; #允许客户端请求的最大单个文件字节数
    client_body_buffer_size 128k; #缓冲区代理缓冲用户端请求的最大字节数
    #gzip_disable "MSIE [1-6].";
 
    proxy_connect_timeout 90; #nginx跟后端服务器连接超时时间(代理)
    proxy_send_timeout 90; #后端数据库数据回传时间(代理)
    proxy_read_timeout 90; #连接成功,后端服务器响应时间(代理接收超时)
    proxy_buffer_size 4k; #设置代理服务器(nginx)保存用户头信息的缓冲区大小
    proxy_buffer 4 32k; #proxy_buffers缓冲区,网页平均在32k以下的话 这样设置
    proxy_busy_buffers_size 64k; #高负荷下缓冲区大小
    
 
    #设定请求缓冲
    client_header_buffer_size    128k;
    large_client_header_buffers  4 128k;
 
    #设定虚拟主机配置
    server {
        #侦听80端口
        listen    80;
        #定义使用 www.nginx.cn访问
        server_name  www.nginx.cn;
 
        #定义服务器的默认网站根目录位置
        root html;
 
        #设定本虚拟主机的访问日志
        access_log  logs/nginx.access.log  main;
 
        #默认请求
        location / {
            
            #定义首页索引文件的名称
            index index.php index.html index.htm;   
 
        }
 
        # 定义错误提示页面
        error_page   500 502 503 504 /50x.html;
        location = /50x.html {
        }
 
        #静态文件,nginx自己处理
        location ~ ^/(images|javascript|js|css|flash|media|static)/ {
            
            #过期30天,静态文件不怎么更新,过期可以设大一点,
            #如果频繁更新,则可以设置得小一点。
            expires 30d;
        }
 
        #PHP 脚本请求全部转发到 FastCGI处理. 使用FastCGI默认配置.
        location ~ .php$ {
            fastcgi_pass 127.0.0.1:9000;
            fastcgi_index index.php;
            fastcgi_param  SCRIPT_FILENAME  $document_root$fastcgi_script_name;
            include fastcgi_params;
        }
 
        #禁止访问 .htxxx 文件
            location ~ /.ht {
            deny all;
        }
 
    }
}

配置负载均衡

1.在nginx.conf中http中添加负载均衡 可以添加多个server

       weight 服务器权重,越小越高,向他转发的数量就越多    

       在fail_timeout时间内,有max_fails次失败连接,则该服务器不可用,只要fail_timeout时间后再次验证,直到可用为止

2.在www.haha.com虚拟主机的配置文件中,添加模块名称,访问来临时,代理转发

猜你喜欢

转载自blog.csdn.net/qq_25490573/article/details/102703786