Web服务器Nginx的配置与优化

紫色风铃 2020-04-06 ⋅ 17 阅读

Nginx是一个高性能的开源Web服务器和反向代理服务器。它在许多大型网站和应用程序中被广泛使用,以提供快速、可靠和安全的服务。为了发挥Nginx的最佳性能和效果,我们可以对其进行一些配置和优化。本文将介绍一些常见的配置和优化技巧。

安装和基本配置

  1. 下载和安装Nginx:

    sudo apt-get update
    sudo apt-get install nginx
    
  2. 配置默认虚拟主机文件/etc/nginx/sites-available/default

    server {
        listen 80 default_server;
        listen [::]:80 default_server;
    
        root /var/www/html;
        index index.html index.htm;
    
        server_name _;
    
        location / {
            try_files $uri $uri/ =404;
        }
    }
    
  3. 启动Nginx服务:

    sudo systemctl start nginx
    

配置HTTPS

  1. 申请和配置SSL证书:

    sudo apt-get install certbot
    
    sudo certbot certonly --nginx
    
  2. 配置默认虚拟主机文件/etc/nginx/sites-available/default,增加HTTPS配置:

    server {
        listen 80 default_server;
        listen [::]:80 default_server;
    
        listen 443 ssl;
        listen [::]:443 ssl;
    
        ssl_certificate /etc/letsencrypt/live/example.com/fullchain.pem;
        ssl_certificate_key /etc/letsencrypt/live/example.com/privkey.pem;
    
        root /var/www/html;
        index index.html index.htm;
    
        server_name _;
    
        location / {
            try_files $uri $uri/ =404;
        }
    }
    
  3. 重启Nginx服务:

    sudo systemctl restart nginx
    

优化性能

  1. 配置文件/etc/nginx/nginx.conf中增加以下参数,以提高性能:

    worker_processes auto;
    worker_rlimit_nofile 8192;
    pid /var/run/nginx.pid;
    
    events {
        worker_connections 8000;
        multi_accept on;
        use epoll;
    }
    
    http {
        ...
        sendfile on;
        tcp_nopush on;
        tcp_nodelay on;
        keepalive_timeout 65;
        types_hash_max_size 2048;
        server_tokens off;
    
        gzip on;
        gzip_comp_level 2;
        gzip_min_length 1000;
        gzip_proxied any;
        gzip_types text/plain text/css application/json application/javascript text/xml application/xml application/xml+rss text/javascript;
    
        fastcgi_buffers 16 16k;
        fastcgi_buffer_size 32k;
    
        client_max_body_size 256M;
        client_body_buffer_size 128k;
    
        server_names_hash_bucket_size 64;
        server_name_in_redirect off;
    }
    
  2. 避免不必要的访问日志:

    access_log off;
    error_log /var/log/nginx/error.log crit;
    
  3. 使用反向代理缓存静态内容:

    location /static/ {
        alias /var/www/static/;
        expires 7d;
    }
    
  4. 平衡负载并提高可靠性:

    upstream backend {
        server backend1.example.com;
        server backend2.example.com;
        server backend3.example.com;
    }
    
    server {
        ...
        location / {
            proxy_pass http://backend;
            proxy_set_header Host $host;
            proxy_set_header X-Real-IP $remote_addr;
            proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
            proxy_http_version 1.1;
            proxy_set_header Connection "";
        }
    }
    

以上是一些常见的Nginx配置和优化技巧,它们可以提升Web服务器的性能和可靠性。根据具体的需求和应用场景,还可以进一步调整配置以获得更好的效果。希望这些技巧对你有所帮助!


全部评论: 0

    我有话说: