Nginx部署
本文最后更新于100 天前,其中的信息可能已经过时,如有错误请发送邮件到erdoujoy@163.com

Nginx 是一款高性能的开源 HTTP 和反向代理服务器,广泛用于部署静态网站、负载均衡、反向代理等场景。以下是关于 Nginx 部署的详细步骤和注意事项:

一、部署环境

  • 操作系统:Linux(如 CentOS、Ubuntu)或 Windows(Windows 版本功能有限,建议在 Linux 上部署)。
  • 硬件要求:根据网站流量和应用需求,至少需要 1 核 CPU、1GB 内存和足够的磁盘空间。

二、安装 Nginx

1. 在 Linux 上安装

  • 通过包管理器安装(推荐)
    • Ubuntu/Debian
      bash sudo apt update sudo apt install nginx
    • CentOS/RHEL
      bash sudo yum install epel-release sudo yum install nginx
  • 从源码编译安装(适用于定制化需求)
    1. 安装依赖库:
      bash sudo apt install build-essential libpcre3 libpcre3-dev libssl-dev
    2. 下载 Nginx 源码:
      bash wget http://nginx.org/download/nginx-<version>.tar.gz tar -zxvf nginx-<version>.tar.gz cd nginx-<version>
    3. 配置、编译并安装:
      bash ./configure --prefix=/usr/local/nginx make sudo make install

2. 在 Windows 上安装

  • 下载 Nginx Windows 版本(官网下载)。
  • 解压到指定目录(如 C:\nginx)。
  • 启动 Nginx:
    bash start nginx

三、配置 Nginx

1. 主配置文件

  • 位置
    • Linux:/etc/nginx/nginx.conf
    • Windows:<nginx安装目录>/conf/nginx.conf
  • 基本配置示例user nginx; worker_processes auto; events { worker_connections 1024; } http { include mime.types; default_type application/octet-stream; sendfile on; keepalive_timeout 65; server { listen 80; server_name localhost; location / { root html; index index.html index.htm; } } }

2. 虚拟主机配置

  • 创建虚拟主机配置文件
    • Linux:/etc/nginx/sites-available/example.com
    • 示例配置:
    server { listen 80; server_name example.com; location / { root /var/www/example.com; index index.html; } }
  • 启用虚拟主机
    bash sudo ln -s /etc/nginx/sites-available/example.com /etc/nginx/sites-enabled/ sudo nginx -t sudo systemctl restart nginx

四、启动和管理 Nginx

1. 在 Linux 上

  • 启动
    bash sudo systemctl start nginx
  • 停止
    bash sudo systemctl stop nginx
  • 重启
    bash sudo systemctl restart nginx
  • 查看状态
    bash sudo systemctl status nginx

2. 在 Windows 上

  • 启动
    bash start nginx
  • 停止
    bash nginx -s stop
  • 平滑重启
    bash nginx -s reload

五、常见问题及优化

1. 防火墙配置

  • 确保防火墙允许 HTTP(80 端口)和 HTTPS(443 端口)流量。
  • 在 Linux 上
    bash sudo ufw allow 'Apache Full' sudo ufw enable

2. 性能优化

  • 开启 Gzip 压缩
    nginx gzip on; gzip_types text/plain text/css application/json application/javascript text/xml application/xml application/xml+rss text/javascript;
  • 调整 worker_processes 和 worker_connections
    • 根据 CPU 核心数设置 worker_processes
    • 增大 worker_connections 以支持更多并发连接。

3. 日志管理

  • 日志路径
    • Linux:/var/log/nginx/
    • 配置日志格式:
      nginx log_format custom '$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 custom;

六、示例应用

1. 部署静态网站

  • 将静态文件(HTML、CSS、JavaScript 等)放在 root 指定的目录中。
  • 示例配置: server { listen 80; server_name example.com; location / { root /var/www/example.com; index index.html; } }

2. 作为反向代理

  • 配置 Nginx 将请求转发到后端应用服务器。
  • 示例配置: server { listen 80; server_name example.com; location / { proxy_pass http://backend_server:8080; proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; } }

七、安全配置

1. 启用 HTTPS

  • 获取 SSL 证书(如 Let’s Encrypt)。
  • 配置 HTTPS: server { listen 443 ssl; server_name example.com; ssl_certificate /etc/ssl/certs/example.com.crt; ssl_certificate_key /etc/ssl/private/example.com.key; location / { root /var/www/example.com; index index.html; } }

2. 限制访问

  • 使用 allowdeny 指令限制 IP 访问:
    nginx location /admin { allow 192.168.1.0/24; deny all; root /var/www/example.com; index index.html; }

八、总结

Nginx 的部署和配置相对简单,但需要根据具体需求进行调整。通过合理配置,可以实现高性能的静态内容服务、反向代理、负载均衡等功能。同时,建议定期检查日志和性能指标,确保服务器稳定运行。

如果你有更具体的需求(如特定的部署场景或功能),可以告诉我,我会为你提供更详细的指导!

文末附加内容
暂无评论

发送评论 编辑评论


				
|´・ω・)ノ
ヾ(≧∇≦*)ゝ
(☆ω☆)
(╯‵□′)╯︵┴─┴
 ̄﹃ ̄
(/ω\)
∠( ᐛ 」∠)_
(๑•̀ㅁ•́ฅ)
→_→
୧(๑•̀⌄•́๑)૭
٩(ˊᗜˋ*)و
(ノ°ο°)ノ
(´இ皿இ`)
⌇●﹏●⌇
(ฅ´ω`ฅ)
(╯°A°)╯︵○○○
φ( ̄∇ ̄o)
ヾ(´・ ・`。)ノ"
( ง ᵒ̌皿ᵒ̌)ง⁼³₌₃
(ó﹏ò。)
Σ(っ °Д °;)っ
( ,,´・ω・)ノ"(´っω・`。)
╮(╯▽╰)╭
o(*////▽////*)q
>﹏<
( ๑´•ω•) "(ㆆᴗㆆ)
😂
😀
😅
😊
🙂
🙃
😌
😍
😘
😜
😝
😏
😒
🙄
😳
😡
😔
😫
😱
😭
💩
👻
🙌
🖕
👍
👫
👬
👭
🌚
🌝
🙈
💊
😶
🙏
🍦
🍉
😣
Source: github.com/k4yt3x/flowerhd
颜文字
Emoji
小恐龙
花!
下一篇