返回

Ubuntu 搭建 Nginx 网站托管指南

后端

在 Ubuntu 上使用 Docker 和 Docker Compose 部署和配置 Nginx

摘要

在本文中,我们将指导您在 Ubuntu 服务器上使用 Docker 或 Docker Compose 部署和配置 Nginx。我们将涵盖从安装到配置的整个过程,包括 SSL 证书、性能优化和安全性方面的内容。

介绍

Nginx 是一种流行的开源 Web 服务器,以其高性能、可扩展性和可靠性而闻名。使用 Docker 或 Docker Compose,您可以在 Ubuntu 服务器上轻松部署和管理 Nginx。本文将向您展示如何做到这一点。

使用 Docker 安装 Nginx

1. 更新系统

sudo apt-get update
sudo apt-get upgrade

2. 安装 Docker

sudo apt-get install docker.io
sudo systemctl start docker
sudo systemctl enable docker

3. 拉取 Nginx 镜像

docker pull nginx

4. 运行 Nginx 容器

docker run -d -p 80:80 nginx

使用 Docker Compose 安装 Nginx

1. 创建 docker-compose.yml 文件

version: "3"

services:
  nginx:
    image: nginx
    ports:
      - "80:80"

2. 运行 Docker Compose

docker-compose up -d

配置 Nginx

1. 编辑 Nginx 配置文件

sudo nano /etc/nginx/sites-available/default

2. 配置虚拟主机

server {
    listen 80;
    server_name example.com;

    root /var/www/html;
    index index.html;
}

配置 SSL 证书

1. 生成证书签名请求

openssl req -x509 -nodes -days 365 -newkey rsa:2048 -keyout nginx.key -out nginx.crt

2. 配置 Nginx 使用 SSL

server {
    listen 443 ssl;
    server_name example.com;

    root /var/www/html;
    index index.html;

    ssl_certificate nginx.crt;
    ssl_certificate_key nginx.key;
}

优化 Nginx 性能

1. 调整 Nginx 参数

sudo nano /etc/nginx/nginx.conf
worker_processes auto;
max_connections 1024;
keepalive_timeout 65;

2. 启用 GZIP 压缩

gzip on;
gzip_types text/plain text/css application/javascript application/json;

确保 Nginx 安全性

1. 启用 HTTP/2

listen 443 ssl http2;

2. 限制请求大小

client_max_body_size 10M;

3. 启用 ModSecurity

sudo apt-get install libnginx-mod-security
sudo nano /etc/nginx/modsec/main.conf

结论

通过使用 Docker 或 Docker Compose,您可以在 Ubuntu 服务器上轻松部署和配置 Nginx。本文提供了详细的步骤,指导您完成从安装到配置的整个过程,并涵盖了 SSL 证书、性能优化和安全性等方面的内容。希望这些信息对您有所帮助,如果您有任何问题,欢迎随时留言或通过其他方式与我联系。

常见问题解答

1. 如何查看 Nginx 日志?

sudo tail /var/log/nginx/access.log

2. 如何配置 Nginx 反向代理?

在 Nginx 配置文件中使用 proxy_pass 指令。

3. 如何启用 Nginx 缓存?

使用 proxy_cache 指令。

4. 如何添加 Nginx 基本认证?

使用 auth_basic 指令。

5. 如何排除 Nginx 缓存?

使用 proxy_cache_bypass 指令。