普通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,分别代表了不同的后端服务器地址和端口