centos nginx 代理wss

1,下载nginx  和 pcre

wget http://nginx.org/download/nginx-1.8.0.tar.gz

安装nginx 需要pcre包的支持 (下载网址:http://www.pcre.org)解压

wget http://downloads.sourceforge.net/project/pcre/pcre/8.35/pcre-8.35.tar.gz

2,下载 tcp模块

git clone  https://github.com/yaoweibin/nginx_tcp_proxy_module

3, 下载OpenSSL  nginx_tcp_proxy_module会用到openssl的支持(下载网址:http://www.openssl.org)

wget https://www.openssl.org/source/openssl-1.0.2o.tar.gz

 4 下载zlib

 wget http://www.zlib.net/fossils/zlib-1.2.11.tar.gz

5,分别解压好  路径自己对应。编译nginx 如下配置。

添加模块用--add-module  

cd nginx-1.8.0

注意:一定要做个这个Nginx开源软件默认没有提供TCP协议的负载均衡,故需要打补丁并加入模块

 patch -p1 < /home/nginx-1.8.0/nginx_tcp_proxy_module/tcp.patch


开始配置nginx

 ./configure --prefix=/usr/local/nginx --add-module=/home/nginx-1.8.0/nginx_tcp_proxy_module --with-http_stub_status_module --with-http_ssl_module --with-pcre=/usr/local/src/pcre-8.36 --with-openssl=/home/nginx-1.8.0/openssl-1.0.2o --with-zlib=/home/nginx-1.8.0/zlib-1.2.11

6,编译安装 

make&&make install

7.建立软连接到/sbin目录下,这样就可以直接使用nginx来启动nginx服务

 ln -s /usr/local/nginx/sbin/nginx /sbin/nginx

8,启动  nginx

9.配置upstream
cd /usr/local/nginx/conf
备份默认的配置文件,并复制一份:
mv nginx.conf nginx.conf_back 
cp nginx.conf_back nginx.conf
vim nginx.conf
将内容修改如下保存退出:
worker_processes  auto;//nginx进程数,自动,也可指定个数 如:worker_processes 10;
worker_rlimit_nofile 100000; //修改nginx进程打开的文件fd数
events {
use epoll;  //使用epoll机制,linux下有其他的机制如:kqueue等,centos下使用epoll
worker_connections  51200;//工作进程最大连接数,此连接数受ulimit -n的限制
multi_accept on;     //如果multi_accept被禁用,工作进程将接受一次一个新的连接。 否则,工作进程将接受一次所有新连接。
}
tcp {
upstream ironappTCP {//upstream转发配置
server 192.168.1.212:22000; 
server 192.168.1.212:22001; //ESServer的ip地址和监听端口,可配置多个
}
server {  //nginx服务的监听端口和当前nginx的域名或者ip地址
listen 11181;
server_name 192.168.1.211;
proxy_pass ironappTCP;//转发代理列表,对应upstream项

}

include ./wss.conf;# 这里我们将反向代理新建一个文件引入进来
  client_max_body_size    3m;# 上传大小单位M 微信小程序上传大图片时可能需要设置

}



下面配置 wss 和 https

申请证书的方法在另一篇 https://blog.csdn.net/li87218677/article/details/52493236

在前面的nginx.conf 下面 加上包含该文件 

include ./wss.conf;# 这里我们将反向代理新建一个文件引入进来
 client_max_body_size    3m;# 上传大小单位M 微信小程序上传大图片时可能需要设置


vim wss.conf 


#主要是配置原来的ws 和 http 接口
upstream websocket {
    #server 43.249.30.68:8082;# 远程websocket服务器地址
    server 192.168.241.5:8082;# 远程websocket服务器地址
}
#upstream web{
#    server www.xxx.com;# 远程http接口
#}
# 通过下面的反向代理到上面的接口去
server {
  server_name 66.viddwjc.cn;
    listen 443;#默认https和wss协议端口
    ssl on;
   # ssl_certificate /usr/nginx/conf/server.crt;#你的上传到服务器的证书位置
    #ssl_certificate_key /usr/nginx/conf/server.key;#你的上传到服务器的证书位置
ssl_certificate /etc/letsencrypt/live/bl.viddddwjc.cn/fullchain.pem;
  ssl_certificate_key /etc/letsencrypt/live/bl.viddwjc.cn/privkey.pem;


    ssl_session_timeout 5m;
    ssl_session_cache shared:SSL:50m;
    ssl_protocols SSLv3 SSLv2 TLSv1 TLSv1.1 TLSv1.2;
    ssl_ciphers ALL:!ADH:!EXPORT56:RC4+RSA:+HIGH:+MEDIUM:+LOW:+SSLv2:+EXP;
    underscores_in_headers on;#开启自定义头信息的下划线
    #wss协议转发 小程序里面要访问的链接
    location /wss {
        proxy_pass http://websocket;#代理到上面的地址去66.viwjc.cn
        proxy_http_version 1.1;
        proxy_set_header Upgrade $http_upgrade;
        proxy_set_header Connection "Upgrade";
    }
    #https协议转发 小程序里面要访问的链接
  ##  location /{
  #  proxy_pass http://web;#代理到原有的http的地址去
  #  proxy_set_header   X-Real-IP        $remote_addr;
  #      proxy_set_header   X-Forwarded-For  $proxy_add_x_forwarded_for;
  #  add_header Access-Control-Allow-Origin *;#跨域访问设置
  #  }
}








你可能感兴趣的:(linux,https,ssl,配置)