Nginx 配置记录

Nginx 配置设计为三部分组成

1. 默认配置 nginx.conf

user root;
worker_processes auto;
error_log /var/log/nginx/error.log notice;
pid /var/run/nginx.pid;

# Load dynamic modules. See /usr/share/doc/nginx/README.dynamic.
include /usr/share/nginx/modules/*.conf;

events {
    worker_connections 1024;
}

http {
    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/mime.types;
    default_type application/octet-stream;

    include /etc/nginx/conf.d/*.conf;
}

2. 本机服务的配置  service.conf


server {
    listen 9000;
    server_name localhost;
    location / {
        root /usr/local/publish/Web/;
        index index.html index.htm;
    }

    error_page 500 502 503 504 /50x.html;
    location = /50x.html {
    }
}

3. 负载均衡,做为主服务器的配置 load_balance.conf

upstream write_server {
    server 192.168.32.101:9000;
}

upstream read_server {
    server 192.168.32.101:9000;
    server 192.168.32.103:9000;
}

upstream hub {
    server 192.168.32.101:5000;
    server 192.168.32.103:5000 ;
}

upstream tv {
    server 192.168.32.101:9500 weight=5;
    server 192.168.32.103:9500 weight=5;
}

upstream web {
    server 192.168.32.101:9900;
    server 192.168.32.103:9900 ;
}


# 代理的服务配置
server {
    listen 80;
    server_name localhost;
    location / {
        rewrite /(.*)$ /$1 break;
        proxy_set_header Host $proxy_host; # 修改转发请求头,让8080端口的应用可以受到真实的请求
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_pass http://web;
    }
}

server {
    listen 9800;
    server_name localhost;
    location / {
        rewrite /(.*)$ /$1 break;
        proxy_pass http://tv;
        proxy_set_header Host $proxy_host; # 修改转发请求头,让8080端口的应用可以受到真实的请求
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
    }
}

server {
    listen 443;
    server_name localhost;
    location ~* /*(Hub)$ {
        proxy_pass http://hub;
        proxy_set_header Host $host:$server_port;
        proxy_http_version 1.1;
        proxy_set_header Upgrade $http_upgrade;
        proxy_set_header Connection "upgrade";
    }

    location / {
        #       add_header 'Access-Control-Allow-Origin' *;
        add_header 'Access-Control-Allow-Methods' 'GET, POST, OPTIONS'; # 允许请求方法
        add_header 'Access-Control-Allow-Headers' $http_access_control_request_headers; # 允许请求的 header,可以为 *
        if ($request_method = 'OPTIONS') {
            add_header 'Access-Control-Allow-Origin' $http_origin;
            add_header 'Access-Control-Allow-Methods' 'GET, POST, OPTIONS';
            add_header 'Access-Control-Allow-Headers' $http_access_control_request_headers;
            add_header 'Content-Type' 'text/plain; charset=utf-8';
            add_header 'Content-Length' 0;
            return 204;
        }

        if ($request_method = "POST") {
            proxy_pass http://write_server;
        }
        if ($request_method = "GET") {
            proxy_pass http://read_server;
        }
        rewrite /(.*)$ /$1 break;
        proxy_set_header Host $proxy_host; # 修改转发请求头,让8080端口的应用可以受到真实的请求
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
    }
}

    location ~* /*(Hub)$ {

        proxy_pass http://hub;

        proxy_set_header Host $host:$server_port;

        proxy_http_version 1.1;

        proxy_set_header Upgrade $http_upgrade;

        proxy_set_header Connection "upgrade";

    }

这段配置用于转发dotnet core webapi 中集成的SignalR hub 端点的请求

if ($request_method = "POST") {

            proxy_pass http://write_server;

        }

        if ($request_method = "GET") {

            proxy_pass http://read_server;

  }

这段用于读写分离

  • 8
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值