一、linux环境下安装nginx
1、 下载nginx安装包 下载地址:https://nginx.org/download/nginx-1.9.9.tar.gz
在安装nginx前首先要确认系统中安装了 gcc、pcre-devel、zlib-devel、openssl-devel。由于我这是刚在阿里云新买的服务器,所以什么都没有安装,下面开始安装:
yum -y install gcc pcre-devel zlib-devel openssl openssl-devel
安装完成后将下载好的nginx包通过xftp放入到user/local/nginx目录下后解压
tar -zxvf nginx-1.9.9.tar.gz
解压后,进入解压后的nginx文件目录,配置nginx安装参数
./configure --prefix=/usr/local/nginx
编译安装
make
make install
编译安装完成之后,进入/usr/lcoal/nginx,查看是否安装成功
./sbin/mginx -t
启动 nginx
./nginx -- 启动nginx
./nginx -t stop -- 停止nginx ./nginx -t reload --重新加载nginx
二、nginx的应用
- 反向代理 : 就是通过nginx代理服务器将客服端的请求转到真正处理请求的服务器上,用户感知就是直接将请求发送到真正的服务器上。而正向代理就是用户在浏览器上配置一个服务器,通过这个服务器将自己的请求转到对应的服务器上,用户的感知就是将请求发送到自己配置好的代理服务器上。
- 负载均衡:就是利用多个服务器集群来分担客户端请求,减少服务器压力。
- 动静分离:就是将服务器中的静态资源剥离放到一个指定目录中,客户端请求访问的时候直接去指定目录中拿,不经过真正的服务器。减少服务器压力
- 高可用:nginx代理服务器也存在客户端请求上限,也有可能宕机。当nginx宕机时候,真正的服务器也不能使用。为了防止所以就需要用到高可用,高可用就是部署多台nginx代理服务器,利用keepalive或其他插件,当一台nginx宕机后立即启动另外一台nginx
1、反向代理nginx配置
server {
listen 80; -- nginx监听的端口 http ip访问默认是80段扣 https默认访问的是443端口
server_name localhost; -- lochast默认访问本机
location / {
root html;
proxy_pass http://127.0.0.1:8081; --代理的是本机8081端口
index index.html index.htm;
}
2、负载均衡
负载均衡有五种策略,轮询、权重、iphash、fair、url_hash
轮询:默认使用的是轮询策略
upstream wangdong {
server 127.0.0.1:8080 ;
server 127.0.0.1:8081 ;
}
server {
listen 80;
server_name localhost;
#charset koi8-r;#access_log logs/host.access.log main;
location / {
root html;
proxy_pass http://wangdong;
index index.html index.htm;
}
权重:指定轮询几率,weight和访问比率成正比,用于后端服务器性能不均的情况
upstream wangdong {
server 127.0.0.1:8080 weight:100;
server 127.0.0.1:8081 weight:50;
}
server {
listen 80;
server_name localhost;
#charset koi8-r;#access_log logs/host.access.log main;
location / {
root html;
proxy_pass http://wangdong;
index index.html index.htm;
}
iphash:每个请求按访问ip的hash结果分配,这样每个访客固定访问一个后端服务器,可以解决session的问题。
upstream wangdong {
iphash;
server 127.0.0.1:8080 ;
server 127.0.0.1:8081 ;
}
server {
listen 80;
server_name localhost;
#charset koi8-r;#access_log logs/host.access.log main;
location / {
root html;
proxy_pass http://wangdong;
index index.html index.htm;
}
fair:按后端服务器的响应时间来分配请求,响应时间短的优先分配
upstream wangdong {
server 127.0.0.1:8080 ;
server 127.0.0.1:8081 ;
fair;
}
server {
listen 80;
server_name localhost;
#charset koi8-r;#access_log logs/host.access.log main;
location / {
root html;
proxy_pass http://wangdong;
index index.html index.htm;
}
url_hash:按访问url的hash结果来分配请求,使每个url定向到同一个后端服务器,后端服务器为缓存时比较有效。