首页 / 高防服务器 / 正文
Nginx配置Web服务器详解,nginx web服务器配置

Time:2025年01月07日 Read:6 评论:42 作者:y21dr45

一、背景介绍

Nginx配置Web服务器详解,nginx web服务器配置

互联网的快速发展促成了网站数量和访问量的激增,传统的Web服务器在处理大量并发请求时显得力不从心,Nginx作为高性能的HTTP服务器和反向代理服务器,凭借其异步非阻塞的事件驱动架构,能够在高并发情况下保持低资源消耗和快速响应,成为众多企业和开发者的首选,本文将详细介绍如何通过配置Nginx来搭建一个功能完善且高效的Web服务器。

二、安装Nginx

系统环境准备

在开始安装Nginx之前,确保你的服务器系统已经更新,并且安装了必要的依赖包,不同操作系统可能需要不同的准备步骤。

Ubuntu/Debian:

  sudo apt update
  sudo apt install curl gnupg2 ca-certificates lsb-release

CentOS/RHEL:

  sudo yum update
  sudo yum install epel-release

安装Nginx

安装Nginx的方法因操作系统不同而有所不同,以下是常见的两种方法:

使用包管理器安装:

Ubuntu/Debian:

    sudo apt install nginx

CentOS/RHEL:

    sudo yum install nginx

源码编译安装(适用于需要特定模块或功能的情况):

  wget http://nginx.org/download/nginx-1.21.4.tar.gz
  tar -zxvf nginx-1.21.4.tar.gz
  cd nginx-1.21.4
  ./configure
  make
  sudo make install

三、配置Nginx主配置文件

了解Nginx配置文件结构

Nginx的主配置文件通常位于/etc/nginx/nginx.conf,它包含了全局设置、事件模块设置以及HTTP模块设置等。

user www-data;
worker_processes auto;
pid /run/nginx.pid;
events {
    worker_connections 1024;
}
http {
    include       mime.types;
    default_type  application/octet-stream;
    log_format  main  '$remote_addr - $remote_user [$time_local] "$request" '
                    '$status $body_bytes_sent "$http_referer" '
                    '"$http_user_agent" "$http_x_forwarded_for"';
    access_log  /var/log/nginx/access.log  main;
    error_log   /var/log/nginx/error.log warn;
    sendfile        on;
    tcp_nopush     on;
    tcp_nodelay     on;
    keepalive_timeout  65;
    types_hash_max_size 2048;
    include /etc/nginx/mime.types;
    include /etc/nginx/conf.d/*.conf;
    include /etc/nginx/sites-enabled/*;
}

核心配置参数说明:

user: 定义运行Nginx的用户和组。

worker_processes: 定义Nginx的工作进程数量,通常设置为自动(auto),Nginx会根据CPU核心数自动调整。

worker_connections: 每个工作进程的最大连接数,默认是1024,可以根据实际情况调整。

include: 包括其他配置文件,比如mime.types文件定义各种文件类型的MIME类型,conf.dsites-enabled目录下的文件包含了具体的虚拟主机配置。

四、设置虚拟主机

创建虚拟主机文件

虚拟主机配置文件通常存储在/etc/nginx/sites-available/目录下,你可以创建一个新的虚拟主机文件,例如example.com

sudo nano /etc/nginx/sites-available/example.com

添加以下内容到文件中:

server {
    listen 80;
    server_name example.com www.example.com;
    root /var/www/example.com;
    index index.html index.htm;
    location / {
        try_files $uri $uri/ =404;
    }
    error_page 404 /404.html;
    location = /404.html {
        internal;
    }
}

上述配置定义了一个监听80端口的虚拟主机,根目录为/var/www/example.com,当请求的URI不存在时返回404页面。

启用虚拟主机

创建符号链接将配置文件链接到sites-enabled目录:

sudo ln -s /etc/nginx/sites-available/example.com /etc/nginx/sites-enabled/

测试Nginx配置并重新加载:

sudo nginx -t
sudo systemctl reload nginx

五、配置SSL/TLS证书

生成SSL证书

你可以使用Let’s Encrypt免费生成SSL证书,首先安装Certbot:

Ubuntu/Debian:

  sudo apt install certbot python3-certbot-nginx

CentOS/RHEL:

  sudo yum install certbot python3-certbot-nginx

获取证书:

sudo certbot --nginx -d example.com -d www.example.com

按照提示完成验证过程后,Certbot会自动修改Nginx配置文件以使用SSL证书。

配置SSL证书

检查并确保Nginx配置文件正确:

server {
    listen 443 ssl;
    server_name example.com www.example.com;
    ssl_certificate /etc/letsencrypt/live/example.com/fullchain.pem;
    ssl_certificate_key /etc/letsencrypt/live/example.com/privkey.pem;
    root /var/www/example.com;
    index index.html index.htm;
    
    location / {
        try_files $uri $uri/ =404;
    }
    
    error_page 404 /404.html;
    location = /404.html {
        internal;
    }
}

保存并退出,然后重新加载Nginx使配置生效:

sudo systemctl reload nginx

六、优化性能

启用Gzip压缩

Gzip压缩可以显著减少传输的数据量,提高加载速度,在nginx.conf文件中添加以下配置:

http {
    gzip on;
    gzip_types text/plain text/css application/json application/javascript text/xml application/xml application/xml+rss text/javascript;
}

通过缓存静态内容减少服务器负载:

http {
    server {
        location ~* \.(jpg|jpeg|png|gif|ico|css|js)$ {
            expires 30d;
        }
    }
}

调整缓冲区和超时设置

适当的缓冲区和超时设置可以提高Nginx的性能和稳定性:

http {
    client_max_body_size 10M;
    client_body_buffer_size 128k;
    send_timeout 30s;
    keepalive_timeout 30s;
    proxy_connect_timeout 60s;
    proxy_send_timeout 60s;
    proxy_read_timeout 60s;
    send_timeout 60s;
}

负载均衡配置

Nginx可以实现简单的负载均衡,配置如下:

http {
    upstream backend {
        server backend1.example.com;
        server backend2.example.com;
    }
    server {
        listen 80;
        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_set_header X-Forwarded-Proto $scheme;
        }
    }
}

这个

排行榜
关于我们
「好主机」服务器测评网专注于为用户提供专业、真实的服务器评测与高性价比推荐。我们通过硬核性能测试、稳定性追踪及用户真实评价,帮助企业和个人用户快速找到最适合的服务器解决方案。无论是云服务器、物理服务器还是企业级服务器,好主机都是您值得信赖的选购指南!
快捷菜单1
服务器测评
VPS测评
VPS测评
服务器资讯
服务器资讯
扫码关注
鲁ICP备2022041413号-1