插件窝 干货文章 Linux下Nginx安装配置实例分析

Linux下Nginx安装配置实例分析

Nginx 配置 安装 sudo 250    来源:    2025-04-26

Linux下Nginx安装配置实例分析

一、Nginx简介

Nginx是一款高性能的HTTP和反向代理服务器,也是一个IMAP/POP3/SMTP代理服务器。它具有占用内存少、并发能力强等特点,在互联网公司中被广泛使用。

二、Nginx安装方法

1. 通过包管理器安装(推荐)

Ubuntu/Debian系统:

sudo apt update
sudo apt install nginx

CentOS/RHEL系统:

sudo yum install epel-release
sudo yum install nginx

2. 从源码编译安装

# 安装依赖
sudo apt install build-essential libpcre3 libpcre3-dev zlib1g zlib1g-dev libssl-dev

# 下载源码
wget http://nginx.org/download/nginx-1.21.6.tar.gz
tar -zxvf nginx-1.21.6.tar.gz
cd nginx-1.21.6

# 配置编译选项
./configure --prefix=/usr/local/nginx \
            --with-http_ssl_module \
            --with-http_stub_status_module \
            --with-http_realip_module

# 编译安装
make && sudo make install

三、Nginx基本配置

1. 配置文件结构

Nginx的主要配置文件通常位于: - /etc/nginx/nginx.conf(包管理器安装) - /usr/local/nginx/conf/nginx.conf(源码安装)

配置文件主要包含以下部分:

# 全局块
user www-data;
worker_processes auto;
pid /run/nginx.pid;

# events块
events {
    worker_connections 1024;
}

# http块
http {
    include /etc/nginx/mime.types;
    default_type application/octet-stream;

    # server块
    server {
        listen 80;
        server_name example.com;

        # location块
        location / {
            root /var/www/html;
            index index.html;
        }
    }
}

2. 常用配置示例

静态网站配置:

server {
    listen 80;
    server_name example.com www.example.com;

    root /var/www/example.com;
    index index.html;

    location / {
        try_files $uri $uri/ =404;
    }
}

PHP支持配置:

server {
    listen 80;
    server_name example.com;

    root /var/www/example.com;
    index index.php index.html index.htm;

    location / {
        try_files $uri $uri/ /index.php?$query_string;
    }

    location ~ \.php$ {
        include snippets/fastcgi-php.conf;
        fastcgi_pass unix:/var/run/php/php7.4-fpm.sock;
    }
}

四、Nginx常用操作命令

# 启动Nginx
sudo systemctl start nginx

# 停止Nginx
sudo systemctl stop nginx

# 重启Nginx
sudo systemctl restart nginx

# 重新加载配置(不中断服务)
sudo systemctl reload nginx

# 查看Nginx状态
sudo systemctl status nginx

# 设置开机启动
sudo systemctl enable nginx

五、性能优化配置

# 调整worker进程数
worker_processes auto;

# 每个worker的最大连接数
events {
    worker_connections 4096;
    multi_accept on;
}

http {
    # 开启高效文件传输模式
    sendfile on;

    # 减少网络报文段数量
    tcp_nopush on;

    # 禁用Nagle算法
    tcp_nodelay on;

    # 保持连接超时时间
    keepalive_timeout 65;

    # 客户端请求头缓冲区大小
    client_header_buffer_size 4k;

    # 开启Gzip压缩
    gzip on;
    gzip_min_length 1k;
    gzip_comp_level 2;
    gzip_types text/plain application/javascript application/x-javascript text/css application/xml text/javascript;
}

六、常见问题解决

1. 403 Forbidden错误

  • 检查目录权限:chmod -R 755 /var/www
  • 检查文件所有者:chown -R www-data:www-data /var/www
  • 检查nginx配置中的root路径是否正确

2. 502 Bad Gateway错误

  • 检查后端服务是否正常运行
  • 检查fastcgi_pass配置是否正确
  • 检查PHP-FPM是否运行:systemctl status php7.4-fpm

3. 性能问题

  • 检查worker_processes和worker_connections配置
  • 使用tophtop查看系统资源使用情况
  • 检查日志文件:/var/log/nginx/error.log

七、日志分析

Nginx日志通常位于/var/log/nginx/目录下: - access.log:访问日志 - error.log:错误日志

可以使用以下命令分析日志:

# 查看访问量最高的IP
awk '{print $1}' /var/log/nginx/access.log | sort | uniq -c | sort -nr | head -n 10

# 查看访问量最高的URL
awk '{print $7}' /var/log/nginx/access.log | sort | uniq -c | sort -nr | head -n 10

# 查看HTTP状态码统计
awk '{print $9}' /var/log/nginx/access.log | sort | uniq -c | sort -nr

通过以上配置和实例分析,您应该能够在Linux系统上成功安装和配置Nginx服务器,并解决常见的配置问题。