普通http方式配置nginx

# Nginx 配置文件示例

# 全局配置段
user nginx;                           # Nginx 运行的用户
worker_processes auto;                # Nginx 进程数,通常设置为 auto 自动检测 CPU 核心数

error_log /var/log/nginx/error.log;  # 错误日志文件路径
pid /var/run/nginx.pid;               # Nginx 主进程 PID 文件路径

# events 配置段
events {
    worker_connections 1024;           # 每个 Nginx 进程的最大连接数
}

# http 配置段
http {
    include       /etc/nginx/mime.types;  # MIME 类型配置文件路径
    default_type  application/octet-stream;

    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;  # 访问日志文件路径及格式

    sendfile        on;                # 开启 sendfile,提高文件传输效率
    tcp_nopush     on;                # 开启 tcp_nopush,提高网络传输效率
    tcp_nodelay    on;                # 开启 tcp_nodelay,减少网络延迟
    keepalive_timeout  65;             # 客户端与服务器之间的连接超时时间

    gzip  on;                          # 开启 Gzip 压缩,减小传输数据量

    include /etc/nginx/conf.d/*.conf;  # 包含额外的配置文件,通常用于分割配置

    # 虚拟主机配置
    server {
        listen       80;               # 监听端口号
        server_name  localhost;        # 服务器名称,可以是域名或 IP

        location / {
            root   /usr/share/nginx/html;  # 网站根目录
            index  index.html index.htm;    # 默认索引文件
        }

        error_page   500 502 503 504  /50x.html;
        location = /50x.html {
            root   /usr/share/nginx/html;
        }
    }
}

在这个示例中:

user 指定 Nginx 运行的用户,通常为 nginx 用户。 worker_processes 指定 Nginx 进程数,通常设置为 auto 自动检测 CPU 核心数。 error_log 指定错误日志文件路径。 pid 指定主进程 PID 文件路径。 worker_connections 指定每个 Nginx 进程的最大连接数。 http 配置段包含了 HTTP 相关的配置。 include 指定包含其他配置文件,如 MIME 类型配置文件等。 log_format 指定日志格式。 access_log 指定访问日志文件路径及格式。 sendfile 开启 sendfile,提高文件传输效率。 tcp_nopush 和 tcp_nodelay 分别开启了 tcp_nopush 和 tcp_nodelay,提高网络传输效率。 keepalive_timeout 指定客户端与服务器之间的连接超时时间。 gzip 开启 Gzip 压缩。 include /etc/nginx/conf.d/*.conf 包含额外的配置文件,通常用于分割配置。 server 配置段定义了一个虚拟主机,包含了监听端口、服务器名称、网站根目录等信息。

https方式配置nginx并且配置反向代理

# 全局配置段
user nginx;                             # Nginx 运行的用户
worker_processes auto;                  # Nginx 进程数,通常设置为 auto 自动检测 CPU 核心数
error_log /var/log/nginx/error.log;     # 错误日志文件路径
pid /var/run/nginx.pid;                 # Nginx 主进程 PID 文件路径

# events 配置段
events {
    worker_connections 1024;             # 每个 Nginx 进程的最大连接数
}

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

    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;  # 访问日志文件路径及格式

    sendfile        on;                # 开启 sendfile,提高文件传输效率
    tcp_nopush     on;                # 开启 tcp_nopush,提高网络传输效率
    tcp_nodelay    on;                # 开启 tcp_nodelay,减少网络延迟
    keepalive_timeout  65;             # 客户端与服务器之间的连接超时时间

    gzip  on;                          # 开启 Gzip 压缩,减小传输数据量

    include /etc/nginx/conf.d/*.conf;  # 包含额外的配置文件,通常用于分割配置

    # HTTPS 配置
    server {
        listen 443 ssl;                 # 监听端口号并开启 SSL
        server_name example.com;        # 服务器名称,可以是域名或 IP

        ssl_certificate /etc/nginx/ssl/example.com.crt;   # SSL 证书文件路径
        ssl_certificate_key /etc/nginx/ssl/example.com.key;   # SSL 证书私钥文件路径

        # 路径转发
        location /app1 {
            proxy_pass http://backend1;   # 将请求转发到 backend1
        }

        location /app2 {
            proxy_pass http://backend2;   # 将请求转发到 backend2
        }
    }

    # 虚拟主机配置
    server {
        listen       80;               # 监听端口号
        server_name  localhost;        # 服务器名称,可以是域名或 IP

        location / {
            root   /usr/share/nginx/html;  # 网站根目录
            index  index.html index.htm;    # 默认索引文件
        }

        error_page   500 502 503 504  /50x.html;
        location = /50x.html {
            root   /usr/share/nginx/html;
        }
    }
}

# 反向代理后端服务器配置
upstream backend1 {
    server backend1.example.com:80;   # 后端服务器 backend1 的地址和端口
}

upstream backend2 {
    server backend2.example.com:80;   # 后端服务器 backend2 的地址和端口
}

在这个配置文件中:

添加了一个 HTTPS 的虚拟主机配置,监听 443 端口,指定了 SSL 证书和私钥文件。 使用 proxy_pass 将不同路径 /app1 和 /app2 转发到不同的后端服务器。 定义了两个后端服务器 backend1 和 backend2,分别代表了不同的后端服务器地址和端口