Nginx负载均衡
负载均衡就是:将本应该这台机器(或集群)要处理的请求(工作或负载),根据一定的算法,平均地分配到其他的机器(或集群)上去处理,这样可以大大减少这台机器(或集群)的工作量,防止因负载过大而造成响应超时或down机等意外情况的发生。一般大的网站和系统都使用了负载均衡!
首先进入/usr/local/nginx/conf/vhost/目录下
然后编辑文件 vim /usr/local/nginx/conf/vhost/load.conf
然后加入下列配置
upstream qq_com
{
ip_hash;
server 61.135.157.156:80;
server 125.39.240.113:80;
}
server
{
listen 80;
server_name www.qq.com;
location /
{
proxy_pass http://qq_com;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
}
}
其中upstream这个名字可以随便写,比如叫qq。
ip_hash同一个用户始终在同一个机器上,比方说我们在A机器上发一个帖子,刷新后发现自己没有登录,这是因为我们刷新后登录了B机器。所以我们要通过技术手段去让我们始终登录A机器上。所以我们加一个ip_hash就可以实现。
proxy_pass,这个比较重要,这里的名字要和upstream的名字一致才可以。
这里有一个知识点,nginx不支持https,它的端口是443。
ssl原理
生产ssl密钥对
我们现在可以在虚拟机上颁发一套证书,而这套证书就是公钥和私钥。
要想创建公钥和私钥,首先要有一套工具。我们将这套工具放到/usr/local/nginx/conf
这里需要的工具为openssl,如果没有,我们可以yum安装一下。
然后我们开始创建私钥
openssl genrsa -des3 -out tmp.key 2048//key (其中genrsa是生成rsa格式的私钥,名字为tmp.key,长度为2048)
Generating RSA private key, 2048 bit long modulus
...................+++
.................................+++
e is 65537 (0x10001)
Enter pass phrase for tmp.key:
Verifying - Enter pass phrase for tmp.key:
这里生产的私钥是需要密码的。我们输入自己想好的密码即可。
设置密码会比较麻烦,所以我们第二步取消密码,转换key。
openssl rsa -in tmp.key -out aminglinux.key (-in是指定需要转换的key,-out是指定输出的key)
openssl rsa -in tmp.key -out aminglinux.key
Enter pass phrase for tmp.key:
writing RSA key
这里需要输入我们刚才输入的密码。
操作完成后我们就可以删除tmp.key
rm -f tmp.key
然后我们去生成一个请求的文件,这个文件和私钥结合可以产生公钥。
openssl req -new -key aminglinux.key -out aminglinux.csr
然后出现的文字段我们可以直接回车,如果在生产环境中,我们就需要仔细的去填写了。
Nginx配置ssl
首先生成配置文件,vim /usr/local/nginx/conf/vhost/ssl.conf
然后将配置写入
server
{
listen 443;
server_name aming.com;
index index.html index.php;
root /data/wwwroot/aming.com;
ssl on;
ssl_certificate aminglinux.crt;
ssl_certificate_key aminglinux.key;
ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
}
-t && -s reload //若报错unknown directive “ssl” ,需要重新编译nginx,加上--with-http_ssl_module mkdir /data/wwwroot/aming.com echo “ssl test page.”>/data/wwwroot/aming.com/index.html 编辑hosts,增加127.0.0.1 aming.com curl https://aming.com/
原文地址:http://blog.51cto.com/13067688/2108683