小程序使用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/;
}
}

最新文章

  1. poj3122-Pie(二分法+贪心思想)
  2. ASP.NET sync over async(异步中同步,什么鬼?)
  3. json接口
  4. jsonobject 遍历 org.json.JSONObject
  5. echarts之字符云tooltip显示混乱问题的解决办法
  6. Nodejs v4.x.0API文档学习(2)Assert断言测试模块
  7. android异步任务载入数据界面实现
  8. C#数据类型汇总
  9. 使用Windows USB-DVD制作U盘启动安装系统盘
  10. Android数据加载和Json解析——蓝本
  11. AngularJs开发——指令与控制器间的通信
  12. 微信access_token请求之简单缓存方法封装
  13. Common-io,FileUtils工具类的使用
  14. 项目总结15:JavaScript模拟表单提交(实现window.location.href-POST提交数据效果)
  15. AIM Tech Round 3 (Div. 1) B. Recover the String 构造
  16. Oracle Grid control 11g及Active DataGuard 11g安装部署
  17. .net MVC4 来一个简单的分页代码
  18. socket与http的区别
  19. PHP Libxml函数
  20. Java Swing简单的加法器

热门文章

  1. Java 冒泡排序算法
  2. PLSQL命令行创建用户 以及 JDBC简单操作
  3. 范仁义web前端介绍课程---5、webstorm的下载安装
  4. chrome离线安装包下载
  5. Ubuntu 命令行连接WiFi
  6. oracle取前10条记录
  7. vue+springboot上传和下载附件功能
  8. TP5 分页数据加锚点
  9. 码云 Gitee 云端软件平台学习--GitHub
  10. C# MVC Ajax上传多个图片,可预览,可重复上传等