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

相关推荐
大G哥5 小时前
记一次K8S 环境应用nginx stable-alpine 解析内部域名失败排查思路
运维·nginx·云原生·容器·kubernetes
妍妍的宝贝5 小时前
k8s 中微服务之 MetailLB 搭配 ingress-nginx 实现七层负载
nginx·微服务·kubernetes
叶北辰CHINA8 小时前
nginx反向代理,负载均衡,HTTP配置简述(说人话)
linux·运维·nginx·http·云原生·https·负载均衡
Lansonli10 小时前
云原生(四十八) | Nginx软件安装部署
nginx·云原生·ecs服务器
加油,旭杏16 小时前
【中间件学习】fastCG介绍和使用
学习·nginx·fastcgi
苹果醋319 小时前
大模型实战--FastChat一行代码实现部署和各个组件详解
java·运维·spring boot·mysql·nginx
tanxiaomi1 天前
vue 不是spa 单页面应用吗? 配置路由工作模式为history 后 ,为什么配置Nginx的 try_files 可以根据url 找到对应的文件?
前端·vue.js·nginx
twins35201 天前
配置Nginx以支持通过HTTPS回源到CDN
网络·nginx·https
astuv1 天前
在树莓派上部署开源监控系统 ZoneMinder
linux·nginx·树莓派·监控·摄像头·zoneminder·apache2
加油,旭杏2 天前
【中间件学习】Nginx快速入门(为了配置一个项目)
学习·nginx·中间件