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 的高级功能和更复杂的配置。

相关推荐
苹果醋32 小时前
数据库索引设计:在 MongoDB 中创建高效索引的策略
java·运维·spring boot·mysql·nginx
✎﹏赤子·墨筱晗♪4 小时前
从反向代理到负载均衡:Nginx + Tomcat 构建高可用Web服务架构
nginx·tomcat·负载均衡
叶绪2584 小时前
Nginx 反向代理 + Tomcat 集群:负载均衡配置步骤与核心原理
nginx·tomcat·负载均衡
杏花春雨江南7 小时前
腾讯云 CLB (Cloud Load Balancer) 为例,详细讲解如何配置 Nginx 集群
nginx·云计算·腾讯云
牛奶咖啡139 小时前
Nginx+Tomcat集群Redis共享session方案
redis·nginx·tomcat·redisson·分布式session共享方案·分布式session实现·jdk1.8环境安装
荣光波比11 小时前
Nginx 实战系列(四)—— Nginx反向代理与负载均衡实战指南
运维·nginx·云计算·负载均衡
岚天start11 小时前
K8s Ingress Annotations参数使用指南
nginx·kubernetes·k8s·ingress·ingress控制器
Mr. Cao code12 小时前
探索OpenResty:高性能Web开发利器
linux·运维·服务器·前端·nginx·ubuntu·openresty
荣光波比1 天前
Nginx 实战系列(一)—— Web 核心概念、HTTP/HTTPS协议 与 Nginx 安装
linux·运维·服务器·nginx·云计算
m0_749299951 天前
Nginx主配置文件
java·服务器·nginx