User-Profile-Image
hankin
  • 5
  • centos7
  • docker
  • mysql
  • PostgreSQL
  • git/gitlab
  • ELK
  • python
    • python-Tornado
    • python-django
  • redis
  • nginx
  • kvm
  • proxmox
  • mongo
  • kubernetes
  • prometheus
  • GlusterFs
  • nfs
  • freeswitch
  • httpd
  • shell脚本
  • linux
  • fastdfs
  • nextcloud
  • openssl
  • openvpn
  • rabbitmq
  • sqlite
  • svn
  • java
  • ubuntu
  • vue2
  • wordpress
  • php
  • IOT物联网
  • 项目
  • 故障处理
  • 树莓派
  • 博客存档
  • 未分类
  • 杂项
  • #1742(无标题)
  • 新视野
  • 分类
    • 项目
    • 树莓派
    • 杂项
    • 未分类
    • 新视野
    • 故障处理
    • 博客存档
    • 交换机
    • wordpress
    • vue2
    • ubuntu
    • svn
    • sqlite
    • shell脚本
    • redis
    • rabbitmq
    • python-django
    • python
    • proxmox
    • prometheus
    • PostgreSQL
    • php
    • openvpn
    • openssl
    • nginx
    • nfs
    • nextcloud
    • mysql
    • mongo
    • linux
    • kvm
    • kubernetes
    • java
    • IOT物联网
    • httpd
    • GlusterFs
    • git/gitlab
    • freeswitch
    • fastdfs
    • ELK
    • docker
    • centos7
  • 页面
    • #1742(无标题)
  • 友链
      请到[后台->主题设置->友情链接]中设置。
Help?

Please contact us on our email for need any support

Support
    首页   ›   nginx   ›   正文
nginx

nginx常用配置示例

2022-11-07 23:05:27
1254  0 0

常用基本配置

基本http
   server {
          listen 80;
          listen [::]:80;

          server_name localhost;

          root html;
          index index.html;

          location / {
                  try_files $uri $uri/ =404;
          }
   }
基本https
   server {
          listen 443 ssl;
          listen [::]:443 ssl;

             ssl_certificate /example/crt.pem;
             ssl_certificate_key /example/key.pem;

          server_name localhost;

          root html;
          index index.html;

          location / {
                  try_files $uri $uri/ =404;
          }
   }
基本多上游
   upstream backend {
          server backend1.example.com weight=1;
             server backend2.example.com weight=2;
             server backend3.example.com weight=3;
   }

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

          server_name localhost;

          location / {
                  proxy_pass http://backend;
          }
   }
基本反代
   server {
          listen 80;
          listen [::]:80;

          server_name localhost;

          location / {
                  proxy_pass http://example.com;
                           proxy_set_header Host $host;
                  proxy_set_header X-Real-IP $remote_addr;
                  proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
          }
   }
http转https
server {
       listen 80;
       listen [::]:80;
       return 301 https://$host$request_uri;
}
上传大小限制
   server {
          listen 80;
          listen [::]:80;

          server_name localhost;

          root html;
          index index.html;

             client_max_body_size 1024m;

          location / {
                  try_files $uri $uri/ =404;
          }
   }
自定义错误页面
   server {
          listen 80;
          listen [::]:80;

          server_name localhost;

          root html;
          index index.html;

          location / {
                  try_files $uri $uri/ =404;
          }

          error_page 404 /custom_404.html;
          location = /custom_404.html {
                  root /usr/share/nginx/html;
                  internal;
           }

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

多域名配置

第一步
  在nginx.conf同级目录下添加配置文件gooll-a.conf 和gooll-b.conf。
  在gooll-a.conf添加如下代码:
  server{
        listen 80;
       server_name a.gooll.live; 
        index b.html;
        root testabc;   //设置访问的根目录
     }
  在gooll-b.conf添加如下代码:
  server{
        listen 80;
       server_name a.gooll.live;
        index b.html;
        root testabc;
     }
第二步
  修改主配置文件nginx.conf,在http{ }作用域内添加
  include gooll-a.conf;
  include gooll-b.conf;
第三步
  在nginx目录下创建testabc文件夹,在文件夹内放置两个域名对应的html文件
  重启nginx ,然后访问a.gooll.live和b.gooll.live将打开不同页面

Nginx反向代理

打开nginx.conf文件在http{ }内添加如下内容:
upstream app2 {
        server 192.13.9.254:20000;          #被代理的ip和端口
        }
server {
        listen 80;
        server_name test;
        location / {
                proxy_pass http://app2; #使用代理
                  }
        }

NGINX访问限制

limit_req_moudle请求限制语法:
  1.声明一个存储空间(仅在http中)
  limit_req_zone $binary_remote_addr zone=one:10m rate=5r/s
  $binary_remote_addr(客户ip),区域名称zone为one(自定义),10m(占用空间大小),5r/s(平均请求频率5次/秒)
  或
  limit_req_zone $binary_remote_addr $uri zone=two:3m rate=1r/s; 
  # $uri:不带客户端请求参数
  或
  limit_req_zone $binary_remote_addr $request_uri zone=thre:3m rate=1r/s;
  # $request_uri:带客户端请求参数

  2.限制某个空间的并发(可在http,server,location中)
  limit_req zone=one burst=5 nodelay;
  burst=5(缓冲队列长度,访问超过频率后的延迟个数),nodelay(不做延迟处理),当请求超过rate+burst就会溢出,直接返回错误状态码(默认是503)
limit_conn_module连接限制语法
  1.声明存储空间(仅http中)
  limit_conn_zone $binary_remote_addr zone=addr:10m
  空间zone名称为addr(自定义)

  2.限制某个空间的并发(可在http,server,location中)
  limit_conn addr 2
  空间名称为addr,并发数量为2

  3.日志等级(可在http,server,location中)
  limit_conn_log_level **

  4.状态码(可在http,server,location中)
  limit_conn_status **
  超过限制后返回状态码**,默认是503
  http_access_module基于ip访问控制语法
  (可在http,server,location,limit_except中)
  deny 192.168.1.1;
  deny all;
  allow 192.168.1.0/24
  allow 10.1.1.0/16;
  allow (ipv6)
评论 (0)

点击这里取消回复。

欢迎您 游客  

Copyright © 2025 网站备案号 : 蜀ICP备2022017747号
smarty_hankin 主题. Designed by hankin
主页
页面
  • #1742(无标题)
博主
tang.show
tang.show 管理员
linux、centos、docker 、k8s、mysql等技术相关的总结文档
213 文章 2 评论 201582 浏览
测试
测试