Nginx 是一款高性能的开源 Web 服务器软件

文章推荐

1 作为程序员,开发用过最好用的AI工具有哪些?
2 Github Copilot正版的激活成功,终于可以chat了
3 idea,pycharm等的ai assistant已成功激活
4 新手如何拿捏 Github Copilot AI助手,帮助你提高写代码效率
5 Jetbrains的ai assistant已经激活成功,好用!

文章正文

Nginx 是一款高性能的开源 Web 服务器软件,它也可以用作反向代理服务器、负载均衡器和 HTTP 缓存等。以下是一个详细的 Nginx 教程,涵盖了 Nginx 的安装、基本配置、常用功能和性能优化等方面。

1. 安装 Nginx

Ubuntu / Debian:
bash 复制代码
sudo apt update
sudo apt install nginx
CentOS / RHEL:
bash 复制代码
sudo yum install epel-release
sudo yum install nginx
启动 Nginx 服务:
bash 复制代码
sudo systemctl start nginx
设置 Nginx 开机启动:
bash 复制代码
sudo systemctl enable nginx

2. 基本配置

Nginx 的主要配置文件是 /etc/nginx/nginx.conf。下面是一个简单的 Nginx 配置示例:

nginx 复制代码
worker_processes  1;

events {
    worker_connections  1024;
}

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

3. 虚拟主机配置

Nginx 支持虚拟主机配置,可以用来托管多个网站。

nginx 复制代码
http {
    server {
        listen 80;
        server_name example.com;
        root /var/www/example.com;

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

    server {
        listen 80;
        server_name anotherdomain.com;
        root /var/www/anotherdomain.com;

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

4. 反向代理配置

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

nginx 复制代码
http {
    server {
        listen 80;
        server_name example.com;

        location / {
            proxy_pass http://backend_server;
        }
    }
}

5. 负载均衡配置

Nginx 可以用来实现负载均衡,将请求分发给多个后端服务器。

nginx 复制代码
http {
    upstream backend_servers {
        server backend1.example.com;
        server backend2.example.com;
    }

    server {
        listen 80;
        server_name example.com;

        location / {
            proxy_pass http://backend_servers;
        }
    }
}

6. HTTPS 配置

Nginx 可以配置 HTTPS,提供加密连接和安全传输。

nginx 复制代码
server {
    listen 443 ssl;
    server_name example.com;

    ssl_certificate /path/to/certificate.crt;
    ssl_certificate_key /path/to/private.key;

    location / {
        proxy_pass http://backend_server;
    }
}

7. HTTP 缓存配置

Nginx 支持 HTTP 缓存,可以提高网站的性能。

nginx 复制代码
http {
    server {
        listen 80;
        server_name example.com;

        location / {
            proxy_cache cache_zone;
            proxy_cache_valid 200 1h;
            proxy_cache_key $request_uri;
            proxy_pass http://backend_server;
        }
    }
}

8. 日志配置

Nginx 可以配置访问日志和错误日志。

nginx 复制代码
http {
    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;
}

9. 安全配置

Nginx 可以配置安全相关的设置,如限制请求速率、禁止访问敏感目录等。

nginx 复制代码
http {
    limit_req_zone $binary_remote_addr zone=one:10m rate=1r/s;

    server {
        location / {
            limit_req zone=one burst=5;
            deny /admin;
        }
    }
}

10. 性能优化

Nginx 可以进行性能优化,如调整 worker_processes、worker_connections 和 keepalive_timeout 等参数。

nginx 复制代码
worker_processes  auto;
worker_connections  1024;
keepalive_timeout  65;

这些是 Nginx 的基础教程,覆盖了安装、基本配置、常用功能和性能优化等方面。随着你的使用和学习深入,你可以进一步探索 Nginx 的高级功能和更复杂的配置。

相关推荐
努力进修20 小时前
跨地域传文件太麻烦?Nginx+cpolar 让本地服务直接公网访问
运维·nginx·cpolar
rit84324991 天前
在Ubuntu上配置Nginx实现开机自启功能
数据库·nginx·ubuntu
一勺菠萝丶1 天前
芋道后端部署后总自己挂?从 Nginx 报错到 OOM Kill 的完整排查与修复(2核2G 服务器实战)
服务器·chrome·nginx
神奇侠20241 天前
基于spring-boot-admin实现对应用、数据库、nginx等监控
java·数据库·nginx
IT小哥哥呀1 天前
Nginx高可用配置实战:负载均衡 + 健康检查 + 动态扩展
运维·nginx·负载均衡·devops·日志分析·openresty·动态扩展
toooooop82 天前
Nginx 反向代理 HTTPS CDN 配置检查清单(避坑版)
运维·nginx·https·cdn
群联云防护小杜2 天前
国产化环境下 Web 应用如何满足等保 2.0?从 Nginx 配置到 AI 防护实战
运维·前端·nginx
尽兴-2 天前
[特殊字符] 微前端部署实战:Nginx 配置 HTTPS 与 CORS 跨域解决方案(示例版)
前端·nginx·https·跨域·cors·chrom
DARLING Zero two♡2 天前
云原生基石的试金石:基于 openEuler 部署 Docker 与 Nginx 的全景实录
nginx·docker·云原生
自由生长20242 天前
Nginx的代理原理和使用配置
网络协议·nginx