以下配置将会把多个请求重定向301到 https://www.域名.com

  • [http://域名.com]

  • [http://www.域名.com]

  • [https://域名.com]

以上三个地址将重定向301到下面地址

  • [https://www.域名.com]

配置文件内的server如下

server {
    listen 443;
    server_name 域名.com;
    ssl on; #打开认证
    #证书配置
    ssl_certificate /root/nginx/证书.pem;
    ssl_certificate_key /root/nginx/证书.key;

    location / {
        return 301 https://www.域名.com$request_uri;
    }
}

server {
    listen 80 default_server;
    listen [::]:80 default_server;

    server_name 域名.com;
    return 301 https://www.域名.com$request_uri;
}

server {
    listen 443;
    server_name www.域名.com;
    ssl on;
    ssl_certificate /root/nginx/证书.pem;
    ssl_certificate_key /root/nginx/证书.key;

    #静态页面访问
    location / {
        root /var/www/html;
        index index.html index.htm;
        try_files $uri $uri/ /index.html last;
    }
    #后端api访问-可以不要
    location /api/ {
        proxy_pass http://123.123.123.123:8080/;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
    }
    #图片资源自定义配置-可以不要
    location ~ ^/img/images/(\d+)/(.+\.(?:jpg|jpeg|png|gif))$ {
        proxy_pass http://123.123.123.123:8080/img/images/$1/$2;
        proxy_set_header Host $host;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
    }
    #爬虫读取君子配置-可以不要
    location = /sitemap.xml {
        root /var/www/html;
    }
}
### 多域名配置

server {
listen 443;
server_name 域名.com www.域名.com;
ssl on; #打开认证
#证书配置
ssl_certificate /root/nginx/证书.pem;
ssl_certificate_key /root/nginx/证书.key;

location / {
    return 301 https://www.域名.com$request_uri;
}

}

证书配置2

server {
    listen 80;
    server_name www.demo.com;

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

server {
    listen 443 ssl;
    server_name www.demo.com;

    ssl_certificate /root/nginx/cert/certificate.crt;  # 主证书文件
    ssl_certificate_key /root/nginx/cert/private.key;  # 私钥文件
    ssl_trusted_certificate /root/nginx/cert/ca_bundle.crt;  # CA 证书链文件

    ssl_protocols TLSv1.2 TLSv1.3;  # 启用的TLS协议
    ssl_ciphers HIGH:!aNULL:!MD5;  # 安全的加密套件
    ssl_prefer_server_ciphers on;  # 优先使用服务器端的加密套件
    ssl_session_cache shared:SSL:10m;  # 启用SSL会话缓存
    ssl_session_timeout 5m;  # 会话超时时间

    location / {
        root /var/www/html;
        index index.html index.htm;
        try_files $uri $uri/ /index.html last;
    }

    location /api/ {
        proxy_pass http://u.demo.com:7777/;
        proxy_set_header Host $host;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
    }

    location ~ ^/img/images/(\d+)/(.+\.(?:jpg|jpeg|png|gif))$ {
        proxy_pass http://u.demo.com:7777/img/images/$1/$2;
        proxy_set_header Host $host;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
    }

    location = /sitemap.xml {
        root /var/www/html;
    }
}

设置反向代理

server {
    listen 80; # 监听80端口

    server_name yourdomain.com; # 替换为你的域名

    location / {
        proxy_pass http://yy.demo.com;  # 将请求代理到目标服务器
        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;  # 添加X-Forwarded-For头
        proxy_set_header X-Forwarded-Proto $scheme;  # 添加X-Forwarded-Proto头
    }
}

负载均衡配置

upstream backend_servers {
    server blog.demo.com weight=1;      # 权重较低
    server blog.demo.cn:47780 weight=3;  # 权重较高
}

server {
    listen 80;
    server_name www.jaos.cn;

    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;
        proxy_set_header X-Forwarded-Proto $scheme;
    }
}

配置文件下载

location /load/ {
        alias /root/nginx/data/;
        autoindex on;
        autoindex_exact_size off;
        autoindex_localtime on;
        charset utf-8;
}