Nginx常用配置、反向代理

目录

[1. 常用配置](#1. 常用配置)

基本设置

HTTP配置

虚拟主机配置

[2. 高级配置](#2. 高级配置)

反向代理配置

SSL/TLS配置

负载均衡配置

1. 常用配置

基本设置
javascript 复制代码
user nginx;
worker_processes auto;
error_log /var/log/nginx/error.log warn;
pid /var/run/nginx.pid;
  • user nginx;: 指定Nginx worker进程的运行用户。
  • worker_processes auto;: 自动设置worker进程的数量。
  • error_log /var/log/nginx/error.log warn;: 错误日志的路径和日志级别。
  • pid /var/run/nginx.pid;: Nginx主进程的PID文件路径。
HTTP配置
javascript 复制代码
http {
    include       /etc/nginx/mime.types;
    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;
    tcp_nopush      on;
    tcp_nodelay     on;
    keepalive_timeout  65;
    types_hash_max_size 2048;

    include /etc/nginx/conf.d/*.conf;
    include /etc/nginx/sites-enabled/*;
}
  • include /etc/nginx/mime.types;: 引入MIME类型定义文件。
  • default_type application/octet-stream;: 默认的MIME类型。
  • log_format main ...: 定义日志格式。
  • access_log /var/log/nginx/access.log main;: 访问日志的文件路径。
  • sendfile on;: 开启sendfile功能。
  • tcp_nopush on; tcp_nodelay on;: 优化TCP传输。
  • keepalive_timeout 65;: 客户端与服务器之间的持久连接超时时间。
  • types_hash_max_size 2048;: MIME类型哈希表的最大大小。
虚拟主机配置
javascript 复制代码
server {
    listen 80;
    server_name example.com;

    location / {
        root /var/www/example.com;
        index index.html index.htm;
    }

    error_page 500 502 503 504 /50x.html;
    location = /50x.html {
        root /usr/share/nginx/html;
    }
}
  • server { ... }: 定义一个虚拟主机配置块。
  • listen 80;: 监听80端口。
  • server_name example.com;: 定义服务器的域名。
  • location / { ... }: 处理根路径请求。
  • error_page ...: 定义错误页面处理方式。

2. 高级配置

反向代理配置
javascript 复制代码
server {
    listen 80;
    server_name backend.example.com;

    location / {
        proxy_pass http://backend_servers;
        proxy_set_header Host $host;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
    }
}

upstream backend_servers {
    server backend1.example.com;
    server backend2.example.com;
}
  • server { ... }: 定义反向代理的虚拟主机配置。
  • listen 80;: 监听80端口。
  • server_name backend.example.com;: 定义服务器的域名。
  • location / { ... }: 配置反向代理。
  • proxy_pass http://backend_servers;: 将请求代理到后端服务器组。
  • upstream backend_servers { ... }: 定义后端服务器组。
SSL/TLS配置
javascript 复制代码
server {
    listen 443 ssl;
    server_name secure.example.com;

    ssl_certificate /etc/nginx/ssl/secure.example.com.crt;
    ssl_certificate_key /etc/nginx/ssl/secure.example.com.key;

    location / {
        root /var/www/secure.example.com;
        index index.html index.htm;
    }
}
  • server { ... }: 定义HTTPS的虚拟主机配置。
  • listen 443 ssl;: 监听443端口并启用SSL。
  • ssl_certificate ...; ssl_certificate_key ...;: 指定SSL证书和私钥的路径。
负载均衡配置
javascript 复制代码
upstream backend_servers {
    server backend1.example.com;
    server backend2.example.com;
    server backend3.example.com;
}

server {
    listen 80;
    server_name loadbalanced.example.com;

    location / {
        proxy_pass http://backend_servers;
        proxy_set_header Host $host;
        proxy_set_header X-Real-IP $remote_addr;
    }
}
  • upstream backend_servers { ... }: 定义负载均衡的后端服务器组。
  • proxy_pass http://backend_servers;: 将请求代理到后端服务器组。
相关推荐
XIAOHEZIcode19 小时前
Linux系统鼠标偏移常见原因以及修复方案
linux·运维·游戏
用户0328472220701 天前
如何搭建本地yum源(上)
运维
ping某3 天前
为什么 Nginx 明明监听了 80,转发后端时却用了 4xxxx 端口?
后端·nginx
大树884 天前
金刚石散热越强,管路越先见顶
大数据·运维·服务器·人工智能·ai
摇滚侠4 天前
Linux CentOS7 rpm 安装 MySQL 5.7
linux·运维·mysql
霸道流氓气质4 天前
领域驱动设计(DDD)在 Spring Boot 微服务中的实践指南
运维·spring boot·微服务
Inhand陈工4 天前
基于台达PLC与映翰通IG502的智慧水产养殖精准投喂与远程运维解决方案
运维·人工智能·物联网·阿里云·信息与通信
酣大智5 天前
ARP代理--工作原理
运维·网络·arp·arp代理
shushangyun_5 天前
2026年快消品B2B系统推荐:支持终端门店订货、促销政策自动化的工具?
java·运维·网络·数据库·人工智能·spring·自动化
施努卡机器视觉5 天前
SNK施努卡侧滑门锁上滑轮总成自动化装配线,从零件到组件,全流程精密制造方案
运维·自动化·制造