nginx学习日记

nginx介绍

1.什么是nginx?

nginx就是c语言开发的一个高性能HTTP和反向代理Web服务器以及电子邮件(IMAP/POP3)代理服务器
nginx是轻量级的。

2.什么是反向代理?

代理服务可以简单的分为正向代理和反向代理。
正向代理:就是代理服务器替代访问方(用户)去访问目标服务器(服务器)是站在浏览器端来说的
例如:上一个外网,搭一个VPN,那么VPN和浏览器就是在同一个阵营
正向代理
反向代理: nginx代替tomcat服务器接收请求 是站在服务器端说的
例如:访问百度,那么百度的服务器不止一个,因此就用一个反向代理服务器,让此服务器去把请求分配给其他的百度服务器
反向代理
负载均衡: 把客户端的请求分摊给多台服务器上执行,减轻每台服务器的压力。
动静分离: 将静态的资源放到反向代理服务器,节省用户的访问时间

Web服务器分2类:

  • web应用服务器,如:
    • tomcat
    • resin
    • jetty
  • web服务器,如:
    • Apache 服务器
    • Nginx
    • IIS

区分:web服务器不能解析jsp等页面,只能处理js、css、html等静态资源。
并发:web服务器的并发能力远高于web应用服务器。

3.安装和启动?

安装步骤:
下载nginx:
官方网站:http://nginx.org/
1)安装C语言环境

yum -y install gcc pcre pcre-devel zlib zlib-devel openssl openssl-devel

2)解压安装包

tar -zxvf nginx-1.10.0.tar.gz

3)设置安装目录
cd /usr/upload
./configure --prefix=/usr/local/nginx
4) 编译并安装
make && make install
目录结构:

├── client_body_temp         # 临时目录
├── conf                     # Nginx所有配置文件的目录
│   ├── nginx.conf                 # Nginx主配置文件
├── fastcgi_temp             # fastcgi临时数据目录
├── html                     # Nginx默认站点目录
│   ├── 50x.html                   # 错误页面优雅替代显示文件,例如当出现502错误时会调用此页面
│   └── index.html                 # 默认的首页文件
├── logs                     # Nginx日志目录
│   ├── access.log			      # 访问日志文件
│   ├── error.log			      # 错误日志文件
│   └── nginx.pid			      # pid文件,Nginx进程启动后,会把所有进程的ID号写到此文件
├── proxy_temp               # 临时目录
├── sbin                     # Nginx命令目录
│   └── nginx			          # Nginx的启动命令
├── scgi_temp                # 临时目录
└── uwsgi_temp               # 临时目录

5)启动和关闭
在nginx目录下有一个sbin目录,sbin目录下有一个nginx可执行程序
cd /usr/local/sbin
启动:./nginx
关闭: ./nginx -s stop
重启: ./nginx -s reload #可以不关闭nginx的情况下更新配置文件
添加:如何查看nginx启动了?
在/usr/local/nginx/logs查看是否有nginx.pid;有了就是启动了,没有就是没有启动
或者使用ps -ef | grep nginx
或者直接在浏览器中输入,虚拟机的IP地址即可 如:http://192.168.164.127/
出现一下界面安装成功:
安装成功图片
6)nginx.conf配置文件介绍

完整配置:

#user  nobody;
#工作进程
worker_processes  1;

events {
    #连接池连接数
    worker_connections  1024;
}
#请求方式
http {
    #媒体类型
    include       mime.types;
    #默认媒体类型 二进制
    default_type  application/octet-stream;
    #上传文件
    sendfile        on;
    #超时时间
    keepalive_timeout  65;

    #gzip  on;
    #服务器配置
	server {
        #监听端口
        listen       80;
        #监听域名
        server_name  localhost;
        #请求头信息
        proxy_set_header X-Forwarded-Host $host;
        proxy_set_header X-Forwarded-Server $host;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        #请求映射规则,/代表所有请求路径
        location / {
             #请求转发地址
             #root html;  文件夹
			 proxy_pass http://manage.powershop.com:8080;
             #欢迎页
             #index  index.html index.htm;
             #转发连接超时时间
			proxy_connect_timeout 600;
             #转发读取超时时间
			proxy_read_timeout 600;
        }
    }
}

4 Nginx代理Tomcat服务器

1 在linux中安装两台tomcat
直接输入命令的时候是无法启动的,需要分配权限
进入bin目录分配执行权限:

chmod 777 startup.sh
chmod 777 catalina.sh

1)解压两个tomcat到/usr/java,分别命名为tomcat1,tomcat2

2)修改tomcat的配置文件server.xml,将端口进行修改:
在这里插入图片描述
3)将项目/webapps/test/index.html分别发布到两个tomcat中并测试

<h1>这是tomcat-1</h1>

2、nginx的6种负载均衡策略:

负载均衡策略说明解释
轮询默认
weight权重方式server http:x.x.x.x:p weight=5 权重级别高的,被访问到的几率就高
ip_hash依据ip分配方式根据客户端ip分配 例如:(192.168.8.128)%2
least_conn按连接数根据Tomcat连接数分配
fair按响应时间
url_hash依据URL分配根据url分配

3、 如何防止session丢失?
服务器中有一个session.浏览器里有一个cookie,用户访问浏览器的时候.服务器创建一个session发给浏览器存储到了cookie之中
session复制:多台tomcat复制时,非常耗时
session特点: 1 )key value形式; 2) 可以设置过期时间
方法一:保证一个ip地址永远的访问一台tomcat服务器,就不存在session共享问题了(只支持linux)

      即:upstream中添加 ip_hash;

方法二:session的共享

      一种使用tomcat广播机制完成session的共享(只支持windows,不推荐的方式)
      一种使用redis服务器的方式完成session的共享(推荐的方式)

session丢失解决

4、代理一台tomcat(反向代理)
修改nginx/conf/nginx.conf文件:
location / { root html; proxy_pass http://127.0.0.1:8080; }
5、代理多台tomcat(负载均衡)
1)在http节点上添加一个upstream
2)修改location /下的反向代理

upstream myTomcats{
server 127.0.0.1:8080;
server 127.0.0.1:8090;
}
server {
listen 80;
server_name localhost;
location / {
proxy_pass http://myTomcats;
}
# location ~* .(gif|jpg|png|jpeg)$ {
# root /usr/upload/images;
# }
}

5 动静分离

1)创建静态资源
在虚拟机中/usr/upload/新建images文件夹,并上传图片
2)配置nginx的nginx.conf

	location ~* \.(gif|jpg|png|jpeg)$ {
		root /usr/upload/images;
	}

3)在浏览器中输入对应的linux虚拟机网址,找到对应的路径即可访问:
例如

http://192.168.164.127/test.jpeg
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值