在nginx.conf同级目录下创建文件夹ssl,用来放置证书,把访问对方需要的证书上传到ssl文件夹下,若证书是pem或cer在nginx.conf加上证书即可;若证书是.p12的,则先把证书转换成.pem格式的证书,分别执行下面命令,其中xxx是自己的证书名称:
(1)openssl pkcs12 -in xxx.p12 -out xxx.pem -nodes
(2)openssl pkcs12 -nocerts -nodes -out xxx.key -in xxx.p12
修改nginx.conf文件:
location /xxx/ {
proxy_ssl_certificate ssl/xxx.pem;
proxy_ssl_certificate_key ssl/xxx.key;
proxy_ssl_server_name on;
proxy_pass https://xxxxxx.com/;
}
例如:
upstream server {
server IP:443 weight=1;
server IP:443 weight=2;
}
location /crm/ {
limit_rate_after 5m;
limit_rate 2m;
proxy_ssl_certificate server.pem;
proxy_ssl_certificate_key server.key;
proxy_ssl_server_name on;
proxy_pass https://server/crm/;
}
然后重新启动nginx,即可通过访问此台服务器/xxx路由访问到https://xxx.com上
受限于服务器硬件设备带宽限制,为降低大量用户同时下载使得带宽被占满,导致常规功能请求无法正常处理,故使用Nginx对每个用户进行限速处理。
http{
limit_conn_zone $binary_remote_addr zone=add:10m rate=20r/s; #创建5M的一个名为名为add的限速池的容器对连接进行计数(每个连接占用32或64字节,若10M内存耗尽,将返回503),rate为每秒限制的请求数。
......
server{
listen 80;
server_name 192.168.1.1;
limit_conn add 2; #限制每个IP只能同时发起2个连接(add 要跟 limit_conn_zone 的变量名相同)
limit_rate 50k; #每个请求限速 50KB/秒
limit_rate_after 400k; #在下载400k后开始限速
}
......
}
对单个IP的限速上限为(同时发起的连接数)*(每个请求限速)