Nginx初步-环境搭建

Nginx的安装

1、weget下载:http://nginx.org/download/nginx-1.6.2.tar.gz

2、进行安装:tar -zxvf nginx-1.6.2.tar.gz

3、下载所需要的依赖库文件

   yum install pcre、yum install pcre-devel

  yum install zlib 、yum install zlib-devel

4、进行configure配置: cd nginx-1.6.2 && ./configure --prefix=/usr/local/nginx看是否报错

5、编译安装make&& make install

6、启动nginx

  cd /usr/local/nginx/目录下:

   conf:配置文件

   html:网页文件

   logs:日志文件

   sbin:主要二进制程序

启动命令:/usr/local/nginx/sbin/nginx 

重启:/usr/local/nginx/sbin/nginx -s reload

停止:/usr/local/nginx/sbin/nginx -s stop

7、成功:查看是否启动netstat -ano|grep 80 失败:可能是80端口被占用

  浏览器访问地址:http://192.168.43.126:80-->即可看到nginx的欢迎界面

cd nginx-1.6.2 && ./configure --prefix=/usr/local/nginx

 Nginx配置文件说明

Nginx的虚拟主机配置

#虚拟主机配置

server{
    listen:1234;    #设置nginx的端口号
    server_name bhz.com;    #设置服务器别名
    location /{
        root bhz.com;        #这是nginx的根目录
        index index.html;    #设置根目录中的界面
    }
}

负载均衡策略

1、使用硬件复杂均衡策略实现,如使用F5、Array等负载均衡器

2、使用软件进行负载均衡。

  如使用阿里云服务器负载均衡SLB

  如使用Keepalived+Nginx

  其他软件负载均衡如LVS(Linux Virtual Server)、haproxy等技术

Nginx优点

Nginx是一个很强大的高性能web和反向代理服务器。能够

keepalive_timeout 65;
#gzip on;
server{
    listen 80;
    server_name localhost;
    #charset utf-8;
    #access_log logs/host.access.log main;
    location /{
        root html;
        index index.html index.htm
    }
    error_page 500 502 503 504 /50x.html;
    location =/50x.html{
        root html;
    }
}

负载均衡服务器;在高并发的情况下,Nginx是Apache服务器不错的代理产品:Nginx能够支持高达50000个并发连接数的响应。

Nginx的使用

nginx启动后,使用命令

  ps -ef | grep nginx

则可以看到有master进程已启动,worker进程已启动,当然也可以看到他们的端口号;

停止命令后:/usr/local/nginx/sbin/nginx -s stop

则没有进程启动

重启nginx服务器:ps -ef | grep  nginx -s reload

C:\Windows\System32\drivers\etc,在该目录下编辑hosts文件

新加

192.168.1.114 bhz.com

192.168.1.171 www.bhz.com

192.168.1.174 www.bhz.com

编辑linux的hosts文件

vim /etc/hosts

192.168.1.114 bhz.com

这样重启nginx后即可在windows物理机上访问 bhz.com:1234.com

Nginx的日志文件详解

nginx访问的日志文件放在logs/host.access.log下,并且使用main格式(当然也可以自定义格式)

对于main格式如下定义:

  #日志文件输出格式 这个位置相当于全局设置

 #log_format main '$remote_addr-$remote_user[$time_local]"$request"'

 # ‘$staus $body_bytes_sent "$http_referer"’

# ' "$http_user_agent" "$http_x_forward_for" ';

#查看日志内容命令 :tail -n 100 -f nginx/logs/access.log

对Nginx的日志分析很重要,通常需要运维去对nginx的日志进行切割处理。比如实现一个定时任务,去处理nginx日志等。

第一步:分析如何去实现日志切分,编写shell脚本

第二步:定时任务对脚本进行调度: crontab -e

*/1****sh /usr/local/nginx/sbin/log.sh

把shell 脚本放到/skin下面;

根路径:/usr/local/nginx

日志名称: bhz.com.access.log

当前路径: /usr/local/nginx/logs

要备份到的路径:/usr/local/nginx/datalogs文件夹下

当前logs的文件路径:

Baktime:备份时间—备份昨天的日志

Bakfile:

crontab -e

Wq保存后

每一分钟执行一次

Nginx日志文件配置详解

location语法:表示uri方式定位

基础语法有三种:

  location= pattern{} 精准匹配

  location pattern{} 一般配置

  location ~pattern{} 正则匹配

Nginx语法

  if(条件为: = ~ ~*)、return 、break、rewrite  ~*表示忽略大小写

-f 是否为条件、-d是否为目录、-e是否存在

nginx可以对数据进行压缩,对一些图片、html、css、js等文件进行缓存、从而实现动静分离等优化功能。

if($remote_addr=192.168.1.114) {return 401}; 是禁止该物理机ip

if($http_user_agent ~* firefox){rewrite ^.*$/firefox.html ; break;}

查看浏览器类型 如果没有break,则报404错误;

可以在err.log中查看报错信息

cat bhz.com.access.log

Nginx的反向代理

Nginx反向代理proxy 与 负载均衡 upstream

配置反向代理proxy: proxy_pass url地址

配置负载均衡upstream :upstream

官方配置:http://nginx.org/en/docs

注意: 反向代理之后获取客户端ip地址为nginx服务器,这里需要对nginx进行forward,设置真实的ip地址;

  #设置客户端真实的ip地址

  proxy_set_header X-real-ip $remote_addr;

动静分离:

  动态的请求访问tomcat

  静态的请求访问nginx

Nginx的反向代理详解

Nginx先拦截请求,再把请求发送给不同的tomcat

location ~\.jsp${

  proxy_pass http://192.168.1.171:8080

}

解压tomcat:

/usr/local/apache-tomcat-7.0.29/bin/startup/sh

这是获取到的ip是nginx的ip;

location /{
    #设置客户端真实ip地址
    #proxy_set_header X-real-ip $remote_addr;
    #负载均衡反向代理
    #proxy_pass http://myapp
    #返回根路径地址(相对路径:相对于/usr/local/nginx/)
    root html;
    默认访问文件
    index index.html index.htm
}
#配置反向代理tomcat服务器:拦截.jsp结尾的请求转向到tomcat
#location ~\.jsp${
    #proxy_pass http://192.168.1.171:8080
}

经过反向代理之后,获取到的ip为物理机的ip

Nginx的负载均衡配置详解

#设定负载均衡的服务器列表
#upstream myproject{
    #weight参数表示权值,权值越高被分配到的概率越大
    #max_fails 当有#max_files个请求失败,就表示后端的服务器不可用,默认为1,将其设置为0可以关闭检查
    #fail_timeout 在以后的#fail_timeout时间内nginx不会再把请求发送已检查标记为不可用的服务器
}
#webapp
#upstream myapp{
    server 192.168.1.114:8000 weight=1 max_files=2 fail_timeout=30s
    server 192.168.1.115:8000 weight=1 max_files=2 fail_timeout=30s
}

myapp负载均衡了两个节点,114和115

#scp /usr/local/apache-tomcat-7.0.29/webapps/Root/test.jsp  192.168.1.115:/usr/local/apache-tomcat-7.0.29/webapps/Root/
##
##
/usr/local/apache-tomcat-7.0.29/bin/startup.sh

没做负载均衡之前:

       114:8080/test.jsp  显示test1.jsp

       115:8080/test.jsp  显示test2.jsp

做了负载均衡

       114:70/test.jsp 第一次显示test1.jsp,第二次显示test2.jsp

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值