【Nginx】基本使用及配置-项目部署

目录

Nginx

第一章

1、Nginx的使用

1、什么是Nginx

2、什么是反向代理

3、什么是负载均衡

4、什么是动静分离

2、window中配置Nginx

1、通过Nginx进行反向代理

2、域名解析

3、配置服务器集群,实现负载均衡

注意事项

第二章

1、在linux中部署Nginx

1-7

8-13

2、在linux中配置服务器集群

1-6

7-11

注意事项

解决方案


Nginx

第一章

1、nginx的使用 2、在linux下使用nginx 3、redis

在Linux中登录mysql的两种方式

@@@@@@@方式1:
    1、首先输入  mysql -u root -p 回车
    2、然后再输入密码
​
​
@@@@@@方式2:
1、输入 mysql -uroot -p123456 用户名与密码连接在一起

连接Linux在的mysql

windows中运行的程序如果要连接linux下的数据库,
连接的Url不能写localhost,也不能使用///,而是指定linux的Ip
​
将项目部署在linux下的tomcat,访问linux下的mysql
​
@@@@@@@@linux的tomcat中运行的项目,要访问linux下的数据库,系统要求db.properties文件所有设置的连接属性必须要以jdbc.开头
​
1、修改db.properties
    jdbc.url=jdbc:mysql://192.168.47.128/d113?useUnicode=true&characterEncoding=UTF-8&useSSL=false
    jdbc.driver=com.mysql.jdbc.Driver
    jdbc.user=root
    jdbc.pwd=root
​
2、修改applicationContext.xml
​
    <bean id="dataSource" class="com.alibaba.druid.pool.DruidDataSource">
        <property name="driverClassName" value="${jdbc.driver}"/>
        <property name="url" value="${jdbc.url}"/>
        <property name="username" value="${jdbc.user}"/>
        <property name="password" value="${jdbc.pwd}"/>
    </bean>
​

1、Nginx的使用

1、什么是Nginx
答:nginx是一个反向代理服务器,它的作用主要是体现在三个方面:
    1、反向代理 
    2、负载均衡
    3、动静分离
2、什么是反向代理
    正向代理:对客户端的代理就称为:正向代理 
    反向代理: 对服务器端的代理就称为:反向代理 
3、什么是负载均衡
通过nginx可以配置服务器集群,将原本应该由一台服务器处理的请求,分散到多台服务器共同处理
    
    假设超市促销,有1000人买东西,他们到收银台买单,此时只有一个收银员。此时,超市可以多开放一些收银窗口,这样可以
    共同处理请求,减少单个收银员的压力

负载均衡的好处

        1、在高并发环境下,大量请求可以分散到多个服务器进行处理,减少单台服务器压力
​
            @@@@@@@@@高并发:大量请求同时访问
​
        2、配置服务器集群,可以实现高可用
            
            @@@@@@@@高可用:在集群环境下,请求是由多台服务共同处理,即使某一些服务器出现问题,其他正常的服务器依然可以正常处理请求,不会影响用户体验 
4、什么是动静分离
 答:将静态资源(例如图片)放在静态资源服务器,将动态资源(例如:数据库的数据)放在web服务器中,数据从不同的服务器加载,
 可以提高处理效率

2、window中配置Nginx

1、将nginx解压缩到某一个目录(目录中不能有中文与空格)
​
2、进入nginx目录,启动nginx
​
    @@@@@@前提条件:要在环境变量中配置jdk以及JAVA_HOME
    
    启动方式有两种:
        方式1:直接双击nginx.exe文件启动(注意:启动后没有任何界面)
            @@@@启动成功后,直接访问localhost即可访问nginx,它的默认端口号是80,可以省略不写
            @@@@如果采用这种方式启动nginx,停止时需要在进程中停止
​
        
        方式2:使用命令启动
            1、通过cmd进入当前nginx所在目录 
            2、执行下列命令
                
                start nginx ------------启动nginx
                nginx -s stop-----------停止nginx
                nginx -s reload---------重新加载nginx
​
1、通过Nginx进行反向代理
1、解压一台tomcat服务器(localhost:8080)
    启动服务器
​
2、进入nginx/conf目录,修改Nginx.conf文件配置反向代理 
​
        location / {
            root   html;
            index  index.html index.htm;
        proxy_pass   http://127.0.0.1:8080;
​
        }
​
3、重启nginx
​
2、域名解析
如果我们希望通过域名访问指定服务器可以配置域名信息
​
域名解析的过程:       www.baidu.com
​
​
    @@@@@@首先是本地解析域
    当访问某一个域名时,系统会首先进行本地域名解析,将域名还原成ip地址,本地解析时,系统会查找一个系统文件
    C:\Windows\System32\drivers\etc\hosts文件
    如果在这个文件中可以找到对应的域名就会跳转到指定的Ip地址
​
​
    @@@@@@远程域名解析
    如果本地hosts文件中没有对应的域名信息,系统就会联网去查询dns服务器进行域名解析 
​
    DNS一般指域名系统。 域名系统(英文:Domain Name System,缩写:DNS)是互联网的一项服务
        通过dns解析,可以将域名转换成ip地址 
​
        如果要在DNS域名系统中注册,需要花钱购买域名
​

配置本地域名

@@@@@@在hosts文件中配置本地域名:
​
    在windows10系统中修改Hosts文件不方便,需要权限,我们可以使用工具修改
3、配置服务器集群,实现负载均衡
@@@@@@@@@通过Nginx配置服务器集群,实现负载均衡
​
思路:配置多台tomcat服务器,在nginx中配置服务器集群,将java项目分别发布到每一台代理的服务器中,当访问项目时,请求会由每一台服务器轮流处理

步骤

1、创建一个tomcats文件夹,用于保存多台tomcat服务器
​
2、将tomcat解压到tomcats目录中,分别命名为: t1,t2
​
3、在同一台电脑中,由于多个tomcat的端口号不能冲突,所以,我们将t2的端口修改,t1不改变
    
    @@@@在实际应用中,一台tomcat服务器,就是一台独立电脑
    修改t2/conf/server.xml(需要修改5个位置)
​
4、修改nginx/conf/nginx.conf文件,配置服务器集群
​
         upstream d113{
        server 127.0.0.1:8080 weight=5;
        server 127.0.0.1:8081 weight=5;
         }
​
        location / {
            root   html;
            index  index.html index.htm;
        proxy_pass   http://d113;
​
        }
​
​
5、创建同一个项目打包后分别部署到两台tomcat服务器中
    首先将tomcat1的代码 打包后放到t1/webapps目录中
    再将tomcat2的代码 打包后放到t2/webapps目录中
​
​
​
6、分别启动T1,T2服务器
    进入bin执行 startup.bat
​
7、启动Ngin
    start nginx
​
修改tomcat/conf/server.xml的五处地方
​
    1、<Server port="8005" shutdown="SHUTDOWN"> ----------------------+1
    2-3、 <Connector port="8081" protocol="HTTP/1.1"
               connectionTimeout="20000"
               redirectPort="8444" />-------------------------------两处+1
              
    4-5、<Connector port="8010" protocol="AJP/1.3" redirectPort="8444" />----两处+1

准备访问 localhost/nginx02

大家要注意下列信息:
​
1、请求会不会由多台服务器轮流处理,实现负载均衡?
答:请求会由多台服务器轮流处理,这样可以减少单台服务器的压力 
​
2、当服务器切换时,session的id会不会改变?
答:sessionId变了同,但这样会导致一切换服务器,存储在session中的数据会全部丢失(这个问题需要解决)
​
3、当t2这台服务器挂了,请求是否还可以正常工作
答:如果集群中的一些主机挂了,请求将会由剩余的主机进行处理
​
注意事项
@@@@@@@@@配置服务器集群后,session不能改变,否则会导致切换服务器时,存储在session中的数据丢失
解决方案有三种:
​
    1、配置集群中的主机session共享
​
    2、使用redis缓存
​
    3、使用ip_hash绑定主机地址 
​
​
@@@@@@@@@@@@@配置集群中的主机session共享
1、停止T1,T2服务器
​
2、分别修改t1,t2的conf/server.xml启用服务器集群
​
     <Cluster className="org.apache.catalina.ha.tcp.SimpleTcpCluster"/>
​
​
3、将t1,t2中的webapps下的项目移除
​
4、修改项目的web.xml文件,配置session共享 
    然后将项目打包分别发布到t1,t2的webapps目录下
    <distributable/>
​
5、分别启动t1,t2

第二章

1、在linux系统中部署nginx 2、在linux系统中通过nginx进行反向代理 3、在linux系统中通过nginx配置服务器集群 4、redis

1、在linux中部署Nginx

安装步骤

1-7
1、下载linux版的nginx  (*.tar,   *.gz   *.tar.gz)
​
2、将它发布到linux下的/d113目录 
​
3、由于nginx是用c语言编写的,所以要先配置c语言运行环境(联网安装四个插件)
​
​
    yum install gcc-c++
​
    yum install -y pcre pcre-devel
​
    yum install -y zlib zlib-devel
    
    yum install -y openssl openssl-devel
​
​
4、将/d113目录的nginx压缩包解压缩到/usr/local/d113
    
    tar -xvPf /d118/nginx-1.8.1.tar.gz -C /usr/local/d118
​
​
5、进入到 /usr/local/d113/nginx-1.8.1目录中,执行下列命令编译nginx
    
    ./configure
​
6、在当前目录中,执行命令构建nginx
    
    make
​
7、在当前目录中,执行命令安装nginx
​
    make install
​
    @@@@@@如果安装成功,在/usr/local目录下,会产生一个名为:nginx的目录 
​
8-13
8、进入/usr/local/nginx/sbin目录中,执行命令启动nginx
​
    ./nginx
​
​
9、查看linux下的Nginx是否启动成功
​
    ps -ef  |  grep nginx
​
​
​
10、在linux下的防火墙注册80端口
​
    firewall-cmd --zone=public --add-port=80/tcp --permanent
    firewall-cmd --reload
​
​
​
    启动: systemctl start firewalld
    关闭: systemctl stop firewalld ---------------------@@@@@@@@@@@@@@@@@@@@
​
    查看状态: systemctl status firewalld 
​
​
    开机禁用  : systemctl disable firewalld ----------------@@@@@@@@@@@@@@@@@@
    开机启用  : systemctl enable firewalld
​
​
11、通过nginx对tomcat服务器进行代理 
    
    代理情况分为两种:
        
        1、linux中的nginx可以代理linux下的tomcat服务器
​
        2、linux中的nginx可以代理windows下的tomcat服务器
​
​
    修改/usr/local/nginx/conf/nginx.conf文件
​
            @@@@@@代理linux下的tomcat
                    location / {
                    root   html;
                    index  index.html index.htm;
                    proxy_pass  http://127.0.0.1:8080;
                }
​
            @@@@@@代理windows下的tomcat
                    location / {
                    root   html;
                    index  index.html index.htm;
                    proxy_pass  http://windows系统下的主机ip:8080;
                }
​
12、重启nginx
    
        进入/usr/local/nginx/sbin目录
​
            ./nginx-------------启动nginx
​
            ./nginx -s stop------------停止nginx
​
            ./nginx -s reload----------重新启动nginx
​
​
13、启动linux下的tomcat
​
        进入/usr/local/d113/tomcat/bin执行   ./startup.sh
​

2、在linux中配置服务器集群

@@@@@@@@@在linux中配置nginx代理服务器集群
​
    在linux下配置代理集群的思路与windows中配置基本一样

步骤

1-6
1、在/usr/local/d113目录下,创建tomcats目录,用于放置多台tomcat服务器
    
    mkdir /usr/local/d113/tomcats
​
2、将/d113目录中的tomcat解压缩到 /usr/local/d113/tomcats目录中
    
    tar -xvPf /d113/apache-tomcat-7.0.57.tar.gz -C /usr/local/d113/tomcats
​
3、将tomcat的名称重命名为t1
​
    mv apache-tomcat-7.0.57/ t1
​
4、将t1复制一份名为t2
    
    cp t1 -r t2
​
@@@@@@@由于现在在一台主机中启动多台tomcat,它们的端口号不能冲突
​
5、修改t2的端口(t1不需要修改)
    一共修改5个位置,每一个位置+1
​
    1、进入t2/conf
​
    2、编辑server.xml
​
​
6、修改/usr/local/nginx/conf/nginx.conf
​
    1、vi /usr/local/nginx/conf/nginx.conf
​
    2、在文件中新增如下配置
​
            upstream d113{
              server 127.0.0.1:8080 weight=5;
              server 127.0.0.1:8081 weight=5;
              ip_hash;                                   
            }
    
​
            location / {
            root   html;
            index  index.html index.htm;
            proxy_pass  http://d113;
        }
​
7-11
7、重启nginx
    
    1、进入  cd /usr/local/nginx/sbin
​
    2、执行 ./nginx -s reload
​
8、启动t1,t2两台服务器
​
    cd /usr/local/d118/tomcats/t1/bin
    
    1、进入t1或者t2下的bin目录,执行 ./startup.sh
​
​
9、创建项目,并且打包成war
​
10、将war包发布到t1,t2目录下的webapps目录 
​
11、测试代码 
​
    注意:tomcat服务器的 8080,8081不需要在防火墙注册,因为我们是通过nginx进入访问
​
    192.168.47.128/nginx04
​
​
注意事项
@@@@@@@@@@@@@@@@@@大家要观察下列几个信息
​
1、请求会不会由多台服务器轮流留处理?
​
​
2、session的id会不会改变?
答:如果切换服务器,session的ID会改变
​
​
3、如果处理请求的服务器挂了,请求会不会被其他服务器处理?
​
解决方案
@@@@@@@@@@@通过nginx配置服务器集群后,要解决sessionID改变的问题
windows下有三种解决方案:
        
    1、配置集群中的主机session进行共享 
        这种方式只能在windows中使用,linux中无法使用
​
    2、使用redis进行存放
​
    3、使用ip_hash;
        这种方式是将客户端的IP地址与某一台tomcat服务器进行绑定,不再切换服务器
        当客户端请求,第1次到达nginx时,nginx会记录当前客户端的Ip地址,并且从集群中分配一台主机处理本次请求,
        当后续该客户端请求再次到达Nginx,nginx会判断它的ip地址,然后找到之前绑定的服务器进行处理,不会切换到其他服务器。此时,由于服务器没有切换,session也不会改变
​
        问题:如果处理请求的服务器挂了,只是nginx就会分配其他主机处理这个客户请求
​
linux中的解决方案:
​
    1、使用redis进行存放
​
    2、使用ip_hash;
  • 15
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

arjunna

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值