Nginx07---反向代理
小程序使用nginx反向代理https和wss
user www www;
worker_processes auto;
error_log /www/wwwlogs/nginx_error.log crit;
pid /www/server/nginx/logs/nginx.pid;
worker_rlimit_nofile ; events
{
use epoll;
worker_connections ;
multi_accept on;
} http
{
include mime.types;
#include luawaf.conf; include proxy.conf; default_type application/octet-stream;
map $http_upgrade $connection_upgrade {
default upgrade;
'' close;
}
server_names_hash_bucket_size ;
client_header_buffer_size 32k;
large_client_header_buffers 32k;
client_max_body_size 50m; sendfile on;
tcp_nopush on; keepalive_timeout ; tcp_nodelay on; fastcgi_connect_timeout ;
fastcgi_send_timeout ;
fastcgi_read_timeout ;
fastcgi_buffer_size 64k;
fastcgi_buffers 64k;
fastcgi_busy_buffers_size 128k;
fastcgi_temp_file_write_size 256k;
fastcgi_intercept_errors on; gzip on;
gzip_min_length 1k;
gzip_buffers 16k;
gzip_http_version 1.1;
gzip_comp_level ;
gzip_types text/plain application/javascript application/x-javascript text/javascript text/css application/xml;
gzip_vary on;
gzip_proxied expired no-cache no-store private auth;
gzip_disable "MSIE [1-6]\."; limit_conn_zone $binary_remote_addr zone=perip:10m;
limit_conn_zone $server_name zone=perserver:10m; server_tokens off;
access_log off; server
{
listen ;
server_name www.bt.cn;
index index.html index.htm index.php;
root /www/server/phpmyadmin; #error_page /.html;
include enable-php.conf; location ~ .*\.(gif|jpg|jpeg|png|bmp|swf)$
{
expires 30d;
} location ~ .*\.(js|css)?$
{
expires 12h;
} location ~ /\.
{
deny all;
} access_log /www/wwwlogs/access.log;
}
server {
listen http2;
server_name www.kangyuzhe.com;
ssl on;
ssl_certificate /www/server/nginx/1_www.kangyuzhe.com_bundle.crt;
ssl_certificate_key /www/server/nginx/2_www.kangyuzhe.com.key ;
ssl_session_timeout 5m;
ssl_protocols TLSv1 TLSv1. TLSv1.;
ssl_ciphers HIGH:!aNULL:!MD5;
ssl_prefer_server_ciphers on;
location ^~/ {
proxy_pass http://106.13.37.131:80;
proxy_set_header Accept-Encoding "";
proxy_set_header Referer "http://106.13.37.131/";
add_header Access-Control-Allow-Origin *;
sub_filter 'http://106.13.37.131' 'https://www.kangyuzhe.com';
sub_filter_types text/css text/xml text/html text/javascript application/json application/javascript;
sub_filter_once off;
}
location ~* \.(?:css|js|ttf|woff|svg|ico|png|jpg)$ {
proxy_set_header Accept-Encoding "";
proxy_set_header Referer "http://106.13.37.131/";
proxy_pass http://106.13.37.131/$request_uri; add_header Access-Control-Allow-Origin *; sub_filter 'http://106.13.37.131' 'https://www.kangyuzhe.com';
sub_filter_types text/css text/xml text/html text/javascript application/javascript application/json;
sub_filter_once off;
}
location /ws/chat{
proxy_pass http://106.13.37.131:80;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection $connection_upgrade;
proxy_set_header Origin "";
}
}
include /www/server/panel/vhost/nginx/*.conf;
}
map指令的作用:
根据客户端请求中$http_upgrade 的值,来构造改变$connection_upgrade的值
即根据变量$http_upgrade的值创建新的变量$connection_upgrade,
创建的规则就是{}里面的东西。其中的规则没有做匹配,因此使用默认的.
即 $connection_upgrade 的值会一直是 upgrade。然后如果 $http_upgrade为空字符串的话,
那值会是 close。
以上是nginx配置websocket,下面是由于自己在配置的时候发现对nginx还很生疏,就进行学习
什么是反向代理?
1、 proxy_pass:配置反向代理的路径。
需要注意的是如果 proxy_pass 的 url 最后为 /,则表示绝对路径。
否则(不含变量下)表示相对路径,所有的路径都会被代理过去
反向代理是指以代理服务器来接受网络上的连接请求,
然后将请求转发给内部网络上的服务器,
并将从服务器上得到的结果返回给请求连接的客户端,
此时代理服务器对外就表现为一个反向代理服务器。
什么是负载均衡?
2、 upstream:配置负载均衡,upstream 默认是以轮询的方式进行负载,
另外还支持四种模式,分别是:
(1)weight:权重,指定轮询的概率,weight 与访问概率成正比
(2)ip_hash:按照访问 IP 的 hash 结果值分配
(3)fair:按后端服务器响应时间进行分配,响应时间越短优先级别越高
(4)url_hash:按照访问 URL 的 hash 结果值分配
其背后一般有多台 server,系统会根据配置的策略
(例如 Nginx 有提供四种选择)来进行动态调整,
尽可能的达到各节点均衡,从而提高系统整体的吞吐量和快速响应
eg:
upstream api.niu12.com {
server 127.0.0.1:8001;
server 127.0.0.1:8002;
}
server {
listen 80;
server_name api.niu12.com;
location / {
proxy_pass http://api.niu12.com/;
}
}
Nginx07---反向代理的更多相关文章
- nginx配置反向代理或跳转出现400问题处理记录
午休完上班后,同事说测试站点访问接口出现400 Bad Request Request Header Or Cookie Too Large提示,心想还好是测试服务器出现问题,影响不大,不过也赶紧上 ...
- 使用python自动生成docker nginx反向代理配置
由于在测试环境上用docker部署了多个应用,而且他们的端口有的相同,有的又不相同,数量也比较多,在使用jenkins发版本的时候,不好配置,于是想要写一个脚本,能在docker 容器创建.停止的时候 ...
- Windos环境用Nginx配置反向代理和负载均衡
Windos环境用Nginx配置反向代理和负载均衡 引言:在前后端分离架构下,难免会遇到跨域问题.目前的解决方案大致有JSONP,反向代理,CORS这三种方式.JSONP兼容性良好,最大的缺点是只支持 ...
- Nginx反向代理,负载均衡,redis session共享,keepalived高可用
相关知识自行搜索,直接上干货... 使用的资源: nginx主服务器一台,nginx备服务器一台,使用keepalived进行宕机切换. tomcat服务器两台,由nginx进行反向代理和负载均衡,此 ...
- 使用Nginx反向代理 让IIS和Tomcat等多个站点一起飞
使用Nginx 让IIS和Tomcat等多个站点一起飞 前言: 养成一个好习惯,解决一个什么问题之后就记下来,毕竟“好记性不如烂笔头”. 这样也能帮助更多的人 不是吗? 最近闲着没事儿瞎搞,自己在写一 ...
- 使用nginx反向代理,一个80端口下,配置多个微信项目
我们要接入微信公众号平台开发,需要填写服务器配置,然后依据接口文档才能实现业务逻辑.但是微信公众号接口只支持80接口(80端口).我们因业务需求需要在一个公众号域名下面,发布两个需要微信授权的项目,怎 ...
- 腾讯云下安装 nodejs + 实现 Nginx 反向代理
本文将介绍如何给腾讯云上的 Ubuntu Server 12.04 LTS 64位主机安装 node 及 nginx,并简单配置反向代理. 笔者在整个安装过程中遇到不少麻烦(不赘述),如果你希望少踩坑 ...
- 简易nginx TCP反向代理设置
nginx从1.9.0开始支持TCP反向代理,之前只支持HTTP.这是我的系统示意图: 为何需要? 为什么需要反向代理?主要是: 负载均衡 方便管控 比如我现在要更新后端服务器,如果不用负载均衡的话, ...
- 反向代理与 Real-IP 和 X-Forwarded-For
开篇语:开涛新作<亿级流量网站架构核心技术>出版计划公布以来,博文视点遭受到一波又一波读者询问面世时间的DDos攻击.面对亿级流量的热情,感激之余,我们也很庆幸——这部作品质量的确过硬,不 ...
- Nginx服务器 之反向代理与负载均衡
一.反向代理 正向代理: 客户端要获取的资源就在服务器上,客户端请求的资源路径就是最终响应资源的服务器路径,这就是正向代理.正向代理的特点:就是我们明确知道要访问哪个网站地址. 反向代理: 客户端想获 ...
随机推荐
- 记一次vue+vuex+vue-router+axios+elementUI开发(二)
开发环境跟脚手架初始完毕后,我们开始配置axios请求后台接口 axios使用说明:https://www.kancloud.cn/yunye/axios/234845 1.本人是在脚手架中的sr ...
- Install LEDE on a BT Home Hub 5 / Plusnet One Router
Overview / Purpose of this guide These instructions are for aimed at users of Windows but a lot of t ...
- Python: 在CSV文件中写入中文字符
0.2 2016.09.26 11:28* 字数 216 阅读 8053评论 2喜欢 5 最近一段时间的学习中发现,Python基本和中文字符杠上了.如果能把各种编码问题解决了,基本上也算对Pytho ...
- R获取指定GO term和KEGG pathway的gene list基因集
clusterProfiler没有显性的接口,但是可以直接扣取clusterProfiler里的函数. 核心函数就是get_GO_data GO_DATA <- get_GO_data(&quo ...
- 在使用PhpSpreadsheet出现空行导入的问题
在使用PhpSpreadsheet出现空行导入的问题,项目一直报错,原来是读取excel后会多读取几行,或者说读取的行数有错误.因此必须加一个,去除空行.暂时没有研究源码可能源码里面有这样的功能. ...
- 即时通信系统IM--XMPP
即时通讯(Instant Messaging)是目前Internet上最为流行的通讯方式,各种各样的即时通讯软件也层出不穷:服务提供商也提供了越来越丰富的通讯服务功能. 不容置疑,Internet已经 ...
- Apollo的基本使用及常见问题
1. 创建项目 在创建项目页面中填写相关项目信息,最后点击提交即可创建项目. 注意:应用Id必须唯一并且与客户配置的app.id一致. 2. 发布 进入对应项目可通过文本(批量)或者表格模式添加配置, ...
- Android studio -SVN 使用笔记
1.Android studio 安装 中文组官网:http://www.android-studio.org/ 常见问题参考: 分支冲突合并 http://blog.csdn.net/tearsmo ...
- Centos7 卸载 Nginx 并重新安装 Nginx
1) 卸载nginx [root@locahost /]# yum remove nginx 2) 查看nginx是否还存在 [root@localhost /]# which nginx 3)重新 ...
- Angular中使用ECharts图表
1.安装: npm install echarts --save 2.在 TypeScript 文件中导入echarts import * as echarts from 'echarts'; 3.根 ...