基于银河麒麟系统部署 Nginx(常见问题总结,建议收藏保存!)

250 阅读7分钟

基于银河麒麟系统部署 Nginx(常见问题总结,建议收藏保存!)

在当今的互联网时代,Nginx 作为一款高性能的 Web 服务器和反向代理服务器,因其轻量级、高并发处理能力和灵活的配置而被广泛应用于各种 Web 应用场景。银河麒麟操作系统(Kylin OS)作为一款国产操作系统,以其稳定性和安全性在众多领域得到了广泛应用。本文将详细介绍如何在银河麒麟操作系统上部署 Nginx,包括安装、配置、优化以及常见问题的排查与解决,帮助读者快速掌握在银河麒麟系统上部署 Nginx 的全过程。

因为最近做的项目都是国企的大项目要求国产化,所以只能写下这篇总结记录一下工作,nginx的目录和以前cetos系统有一些不一样,我这里是使用yum下载安装的.如果你们的服务器没有外网的话,就使用源码编译安装.

一、银河麒麟操作系统简介

银河麒麟操作系统是一款基于 Linux 内核的国产操作系统,具有高性能、高安全性和良好的兼容性。它广泛应用于政府、金融、能源等关键领域,为用户提供稳定可靠的操作系统环境。银河麒麟操作系统提供了多种软件包管理工具,如 yumapt,方便用户安装和管理软件。

二、安装 Nginx

在银河麒麟操作系统上安装 Nginx 有多种方式,最常见的是通过包管理器 yum 进行安装。这种方式简单快捷,适合大多数用户。

1. 使用 Yum 安装 Nginx

  1. 更新 Yum 软件包列表 在安装之前,建议先更新系统的软件包列表,以确保安装的软件包是最新版本:

    sudo yum update
    
  2. 安装 Nginx 使用以下命令安装 Nginx:

    sudo yum install -y nginx
    
  3. 启动 Nginx 服务 安装完成后,启动 Nginx 服务:

    sudo systemctl start nginx
    
  4. 设置开机自启 为了确保 Nginx 在系统启动时自动运行,可以设置开机自启:

    sudo systemctl enable nginx
    
  5. 验证安装 打开浏览器,访问服务器的 IP 地址(或 localhost),如果看到 Nginx 的默认欢迎页面,则说明安装成功。

2. 从源码编译安装 Nginx

如果需要自定义配置或安装特定版本的 Nginx,可以使用源码编译的方式。

  1. 安装编译依赖 在编译 Nginx 之前,需要安装一些必要的编译工具和库:

    sudo yum install -y gcc gcc-c++ make pcre pcre-devel zlib zlib-devel openssl openssl-devel
    
  2. 下载 Nginx 源码包 从 Nginx 官方网站下载源码包:

    wget http://nginx.org/download/nginx-1.26.2.tar.gz
    
  3. 解压源码包 解压下载的源码包:

    tar -zxvf nginx-1.26.2.tar.gz
    cd nginx-1.26.2
    
  4. 配置 Nginx 使用 ./configure 命令配置 Nginx 的编译选项。例如,启用 SSL 支持和状态模块:

    ./configure --prefix=/usr/local/nginx --with-http_ssl_module --with-http_stub_status_module
    
  5. 编译并安装 编译并安装 Nginx:

    make && make install
    
  6. 启动 Nginx 启动 Nginx 服务:

    /usr/local/nginx/sbin/nginx
    
  7. 验证安装 打开浏览器,访问服务器的 IP 地址(或 localhost),如果看到 Nginx 的默认欢迎页面,则说明安装成功。

三、配置 Nginx

安装完成后,需要对 Nginx 进行配置,以满足实际应用需求。Nginx 的配置文件通常位于 /etc/nginx/nginx.conf,也可以在 /etc/nginx/conf.d/ 目录下添加自定义的配置文件。

1. 基本配置

  1. 主配置文件 打开主配置文件 /etc/nginx/nginx.conf,可以进行全局配置。例如,设置工作进程数、连接数等:

    worker_processes  auto;
    events {
        worker_connections  1024;
    }
    
  2. 虚拟主机配置/etc/nginx/conf.d/ 目录下创建自定义的虚拟主机配置文件。例如,创建一个名为 example.conf 的文件:

    server {
        listen 80;
        server_name example.com;
    
        root /usr/share/nginx/html/example;
        index index.html;
    
        location / {
            try_files $uri $uri/ =404;
        }
    }
    

2. 配置 HTTPS

为了提高安全性,建议为 Nginx 配置 HTTPS。需要使用 SSL/TLS 证书,可以使用 Let's Encrypt 提供的免费证书。

  1. 安装 Certbot 使用 Certbot 获取 SSL 证书:

    sudo yum install -y certbot python3-certbot-nginx
    
  2. 获取证书 运行以下命令获取证书:

    sudo certbot --nginx -d example.com
    
  3. 配置 HTTPS Certbot 会自动修改 Nginx 配置文件,添加 HTTPS 配置。您也可以手动编辑配置文件,添加以下内容:

    server {
        listen 443 ssl;
        server_name example.com;
    
        ssl_certificate /etc/letsencrypt/live/example.com/fullchain.pem;
        ssl_certificate_key /etc/letsencrypt/live/example.com/privkey.pem;
    
        root /usr/share/nginx/html/example;
        index index.html;
    
        location / {
            try_files $uri $uri/ =404;
        }
    }
    
  4. 重新加载 Nginx 重新加载 Nginx 配置文件:

    sudo systemctl reload nginx
    

3. 配置反向代理

Nginx 也可以作为反向代理服务器,将请求转发到后端服务器。

  1. 配置反向代理 在虚拟主机配置文件中添加以下内容:

    server {
        listen 80;
        server_name proxy.example.com;
    
        location / {
            proxy_pass http://backend.example.com;
            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;
        }
    }
    
  2. 重新加载 Nginx 重新加载 Nginx 配置文件:

    sudo systemctl reload nginx
    

四、优化 Nginx

为了提高 Nginx 的性能,可以进行一些优化配置。

1. 调整工作进程数

/etc/nginx/nginx.conf 文件中,调整 worker_processes 的值。通常设置为 CPU 核心数:

worker_processes auto;

2. 调整连接数

events 块中,调整 worker_connections 的值:

events {
    worker_connections 1024;
}

3. 启用 Gzip 压缩

http 块中,启用 Gzip 压缩:

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

4. 配置缓存

在虚拟主机配置文件中,配置缓存:

location / {
    proxy_cache my_cache;
    proxy_cache_valid 200 302 10m;
    proxy_cache_valid 404 1m;
}

五、常见问题排查

在部署 Nginx 的过程中,可能会遇到一些问题。以下是一些常见问题的排查方法。

1. Nginx 无法启动

  1. 检查配置文件语法 使用以下命令检查配置文件语法是否正确:

    sudo nginx -t
    
  2. 查看日志文件 查看 Nginx 的错误日志文件,通常位于 /var/log/nginx/error.log

    tail -f /var/log/nginx/error.log
    
  3. 检查端口占用 确保 Nginx 的监听端口(如 80 和 443)没有被其他服务占用:

    sudo netstat -tuln | grep :80
    sudo netstat -tuln | grep :443
    

2. 访问 Nginx 时返回 404 错误

  1. 检查文件路径 确保请求的文件确实存在于服务器的指定目录下。检查 rootlocation 配置是否正确。

  2. 检查文件权限 确保 Nginx 有足够的权限访问文件。运行以下命令调整文件权限:

    sudo chown -R nginx:nginx /usr/share/nginx/html/
    sudo chmod -R 755 /usr/share/nginx/html/
    
  3. 重新加载 Nginx 修改配置文件后,重新加载 Nginx 配置文件:

    sudo systemctl reload nginx
    

3. SSL/TLS 证书问题

  1. 检查证书文件路径 确保 SSL 证书文件路径正确。检查 ssl_certificatessl_certificate_key 指令是否指向正确的文件。

  2. 检查证书文件权限 确保 Nginx 有足够的权限访问证书文件。运行以下命令调整文件权限:

    sudo chown nginx:nginx /etc/letsencrypt/live/example.com/fullchain.pem
    sudo chown nginx:nginx /etc/letsencrypt/live/example.com/privkey.pem
    sudo chmod 640 /etc/letsencrypt/live/example.com/fullchain.pem
    sudo chmod 640 /etc/letsencrypt/live/example.com/privkey.pem
    
  3. 重新加载 Nginx 修改配置文件后,重新加载 Nginx 配置文件:

    sudo systemctl reload nginx
    

六、总结

在银河麒麟操作系统上部署 Nginx 是一个相对简单的过程,通过使用 yum 包管理器或从源码编译安装,可以快速完成 Nginx 的安装。通过合理配置 Nginx 的配置文件,可以满足各种 Web 应用的需求,包括静态资源服务、HTTPS 支持和反向代理等功能。通过优化配置,可以进一步提高 Nginx 的性能。在部署过程中,如果遇到问题,可以通过检查配置文件语法、查看日志文件和调整文件权限等方式进行排查和解决。

Nginx 的灵活性和高性能使其成为 Web 开发和运维人员的首选工具之一。通过本文的介绍,读者应该能够在银河麒麟操作系统上顺利部署和管理 Nginx 服务,为 Web 应用提供稳定可靠的支持。