Nginx的配置文件详解

上一篇文章:nginx 的access log 指定格式设置

有咱们的小助理留言,希望分享更多nginx 的性能相关的文章,所以今天就先讲解 nginx的详细配置文件,为后续nginx的性能篇做为铺垫。

1 nginx的conf文件详细说明,先看示例。

user  nginx;
worker_processes  auto;

pid        /var/run/nginx.pid;
worker_rlimit_nofile 51200;

events {
use epoll;
worker_connections 51200;
multi_accept on;
}

http {
    include       /etc/nginx/mime.types;
    default_type  application/octet-stream;
    charset UTF-8;
    sendfile        on;
    tcp_nopush     on;
    tcp_nodelay on;
    error_log /var/log/nginx/error.log error;
    server_tokens  off;
    client_max_body_size 0;
    keepalive_timeout 120s;
    client_header_timeout 120s;
    client_body_timeout 120s;  
    reset_timedout_connection on; 
    send_timeout 10; 
    limit_conn_zone $binary_remote_addr zone=addr:5m; 
    limit_conn addr 100; 
    server_names_hash_bucket_size 128;
    client_header_buffer_size 32k;
    large_client_header_buffers 4 32k;
    fastcgi_connect_timeout 300;
    fastcgi_send_timeout 300;
    fastcgi_read_timeout 300;
    fastcgi_buffer_size 64k;
    fastcgi_buffers 4 64k;
    fastcgi_busy_buffers_size 128k;
    fastcgi_temp_file_write_size 256k;
    gzip on;
    gzip_disable   "MSIE [1-6]\.";
    gzip_min_length  1k;
    gzip_buffers     4 16k;
    gzip_http_version 1.1;
    gzip_comp_level 4;
    gzip_types     text/plain application/javascript application/x-javascript text/javascript text/css application/xml application/xml+rss;
    gzip_vary on;
    gzip_proxied   expired no-cache no-store private auth;
    log_format main '$remote_addr - $remote_user [$time_local] "$request" '  
                '$status $body_bytes_sent "$http_referer" '
                '"$http_user_agent" "$http_x_forwarded_for" "from: $http_referer"';
server
{
   listen 80;
   server_name www.91bangtu.com 91bangtu.com;
   return 301 https://$server_name$request_uri;
}


server
{
    listen 443;
    ssl on;
    #listen 80;
    server_name www.91bangtu.com 91bangtu.com;
    index index.html index.htm index.php;
    #root  /a/b/91bangtu/; 
    root  /a/b/91bangtu/;
    error_log /a/b/c/bangtu.com-error.log error;
    access_log  /a/b/c/bangtu.com-access.log main;

    include extra/*.conf;


#------------- SSL Start --------------
 ssl_certificate /a/b/91bangtu.com.pem;
 ssl_certificate_key //a/b/91bangtu.com.key;
#------------- SSL End  ---------------
}

2 各部分解析。

2.1全局配置:
        http:此部分包含了整个HTTP服务器的配置,包括全局性质的配置项,如日志、连接池大小等。
            include:这个指令用于包含其他配置文件,使配置文件结构更模块化和易于管理。
            server_tokens:这个指令控制服务器信息的显示。设置为off可以禁用服务器信息的显示,提高安全性。
            sendfile:这个指令决定是否启用系统调用sendfile来发送文件,可以提高文件传输效率。
            tcp_nopush:这个指令启用或禁用 TCP 的TCP_NOPUSH选项。如果启用,将在头部发送完毕后立即发送数据,提高响应速度。
            tcp_nodelay:这个指令启用或禁用 TCP 的TCP_NODELAY选项。如果启用,禁用 Nagle 算法,减小数据包的传输延迟。
            keepalive_timeout:这个指令设置客户端与服务器保持连接的超时时间,单位为秒。超过这个时间,如果没有新的请求进来,连接将被关闭。
            client_max_body_size:这个指令限制客户端请求的最大请求体大小。用于防止恶意用户发送大体积的请求。
            gzip:这个指令启用或禁用对客户端响应的内容进行 Gzip 压缩,以减小传输的数据量。2.2 服务器配置:
        server:此部分用于指定虚拟主机域名、IP和端口号。它还包括SSL证书、代理设置等特定于每个站点的配置。

2.3代理服务器设置:
        upstream:此部分主要用于设置一系列的后端服务器,设置反向代理及后端服务器的负载均衡。 以下是一个简单的示例。

http {  
    upstream backend_servers {  
        server backend1.example.com;  
        server backend2.example.com;  
        server backend3.example.com;  
    }  
  
    server {  
        listen 80;  
        server_name example.com;  
  
        location / {  
            proxy_pass http://backend_servers;  
            proxy_set_header Host $host;  
            proxy_set_header X-Real-IP $remote_addr;  
        }  
    }  
}

 2.4 URL匹配特定位置后的设置:
        location:此部分用于匹配网页位置(比如,根目录“/”, “/images”,等等)。它定义了如何响应特定的URL路径和模式。例如,可以使用它来重定向URL、代理请求到另一个服务器或应用特定的缓存策略。

 本次文章介绍nginx的配置文件,后续会讲解修改文件中的参数来满足性能的要求。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

poweredbytian

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值