目录层级

/etc/nginx/
│
├── nginx.conf
├── conf.d/
│   ├── web1_server
│   └── web2_server
└── ssl/
    ├── web1.example.com.crt
    ├── web1.example.com.key
    ├── web2.example.com.crt
    └── web2.example.com.key

每个网站的单独server文件

/etc/nginx/conf.d/web2_server

# HTTP server block to redirect HTTP to HTTPS
# HTTP 服务器块,将 HTTP 请求重定向到 HTTPS
server {
    listen 80;  # 监听80端口
    server_name web2.example.com;  # 设置服务器名为 web2.example.com,请替换为你的实际域名

    location / {
        return 301 https://$host$request_uri;  # 将所有HTTP请求重定向到HTTPS
    }
}

# HTTPS server block with SSL configuration
# HTTPS 服务器块,配置SSL证书
server {
    listen 443 ssl;  # 监听443端口,并启用SSL
    server_name web2.example.com;  # 设置服务器名为 web2.example.com,请替换为你的实际域名

    ssl_certificate /etc/nginx/ssl/web2.example.com.crt;  # SSL证书路径,请替换为你的实际证书路径
    ssl_certificate_key /etc/nginx/ssl/web2.example.com.key;  # SSL证书私钥路径,请替换为你的实际私钥路径
    ssl_protocols TLSv1.2 TLSv1.3;  # 支持的SSL协议版本
    ssl_ciphers HIGH:!aNULL:!MD5;  # SSL密码套件

    location / {
        proxy_pass http://backend2;  # 将请求代理到后端服务器
        proxy_set_header Host $host;  # 设置代理请求的Host头信息
        proxy_set_header X-Real-IP $remote_addr;  # 设置代理请求的真实IP地址
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;  # 设置代理请求的原始客户端IP地址链
        proxy_set_header X-Forwarded-Proto $scheme;  # 设置代理请求的协议(HTTP或HTTPS)
    }

    error_page 404 /404.html;  # 定义404错误页面
    location = /404.html {  # 404错误页面的位置
    }

    error_page 500 502 503 504 /50x.html;  # 定义500系列错误页面
    location = /50x.html {  # 500系列错误页面的位置
    }
}

upstream backend2 {
    server 127.0.0.1:8082;  # 后端服务器地址和端口,请替换为你的实际后端服务器地址和端口
}

NGINX配置文件

user nginx;  # Nginx 运行的用户
worker_processes auto;  # 根据 CPU 核心数自动设置工作进程数量

error_log  /var/log/nginx/error.log warn;
pid        /var/run/nginx.pid;

events {
    worker_connections  1024;  # 每个工作进程的最大连接数
}

http {
    include       /etc/nginx/mime.types;  # 包含 MIME 类型配置文件
    default_type  application/octet-stream;  # 默认 MIME 类型

    log_format  main  '$remote_addr - $remote_user [$time_local] "$request" '
                      '$status $body_bytes_sent "$http_referer" '
                      '"$http_user_agent" "$http_x_forwarded_for" '
                      '"$host" "$upstream_addr"';  # 主日志格式,包含请求头和上游服务器信息

    access_log  /var/log/nginx/access.log  main;  # 访问日志文件路径及使用的日志格式

    sendfile        on;  # 开启文件传输
    tcp_nopush     on;   # 禁用TCP的推送功能
    tcp_nodelay    on;   # 禁用TCP的延迟确认
    keepalive_timeout  65;  # 保持连接的超时时间
    types_hash_max_size 2048;  # MIME 类型散列表的大小限制

    include /etc/nginx/conf.d/*;  # 包含 /etc/nginx/conf.d/ 目录下的所有文件
}

 

Logo

旨在为数千万中国开发者提供一个无缝且高效的云端环境,以支持学习、使用和贡献开源项目。

更多推荐