web服务器环境搭建-阿里云开发者社区

开发者社区> zw4h4ucxienec> 正文

web服务器环境搭建

简介: 这里主要讲述如何搭建web服务器环境
+关注继续查看
  1. 前言
  2. JDK环境配置
  3. mysql环境配置
  4. nginx环境配置
  5. tomcat环境配置
  6. 项目的部署(nginx+tomcat实现部署)
  7. redis环境配置
  8. nginx+tomcat集群配置

ctrl+点击可以跳转到对应文档

前言

本文记录从零开始搭建web服务器环境,服务器采用ubuntu18.04操作系统

如果是采用虚拟机进行服务器搭建:

首先保证虚拟机设置里面的网络连接采用net模式(主机连接虚拟机需要保证和主机在同一网段),之后再虚拟机终端键入 ifconfig -a 查看虚拟机ipv4地址,如下

接着在主机(这里采用的是windows)打开命令行,键入ping 虚拟机的ip地址 如果显示如下,即表示主机和虚拟机连接成功(连接不成功检查虚拟机网络设置是否是net模式)

如果采用的是阿里云服务器,直接使用公网ipv4地址即可

要让主机和虚拟机连接起来(采用ssh协议)

注意是虚拟机的话服务器要安装ssh:

打开虚拟机命令行终端输入:sudo apt install ssh

另外如果不是root用户很多操作都是需要提高需求权限的。

下面环境的搭建以阿里云ubuntu18.04为例,虚拟机上操作步骤是一致的,首先为了在主机上操作服务器准备两个工具 xshell7(连接服务器的命令行终端) winscp(为了从主机上传输文件到服务器)

首先打开xshell连接命令行

之后输入服务器的用户名和密码即可连接成功,winscp用于传输文件连接操作一样

连接成功就可以在主机上控制服务器了

JDK环境安装(建议在root模式下面)

  1. 这里安装的是jdk1.8,首先在官网https://www.oracle.com/java/technologies/javase/javase-jdk8-downloads.html上下载压缩包到本地,然后利用winscp工具传输压缩包到服务器/usr/local目录下

虚拟机作为服务器如果是非root用户下传文件到local需要使用命 令行:

​ sudo chmod 777 local 增加权限以此来传输文件到local目录,

​ 传输完成之后sudo chmod 755 local可还原权限

​ 将文件传输到local目录之后,在该目录终端键入即可解压文件:

  1. 之后配置环境变量:

    打开/etc/profile文件底部输入(注意文件修改权限问题):

JAVA_HOME:jdk安装的路径

之后输入重启配置文件:

  1. source /etc/profile,然后 输入 java -version查看版本信息即安装成功

mysql环境安装

  1. apt-get install:更新软件源
  2. apt-get install mysql-server:安装mysql

    中途会提示你设置mysql的密码

  3. 安装成功之后启动mysql:

查看3306端口监听状态,可以看到mysql以及安装并且启动成功

  1. 之后设置mysql可以远程连接

    终端登入数据库:

use mysql

赋权限给所有用户:

其中 '2003'应该用之前安装mysql设置的密码代替

刷新:

进入/etc/mysql/mysql.conf.d/mysql.cnf修改配置文件(注意权限!)

注释掉 # bind-address = 127.0.0.1

之后重启mysql

这样远程连接数据库就成功了

nginx环境配置

首先官网http://nginx.org/en/download.html下载对应的nginx安装包,同上面一样采用远程文件传输把安装包传输到 /usr/local这个目录,然后解压到该目录

之后需要安装nginx编译器 gcc-c++ 安装nginx依赖包 pcre zlib

命令截图:

首先安装gcc-c++:

之后安装依赖库

apt-get install libssl-dev
apt-get install libpcre3 libpcre3-dev
apt-get install openssl libssl-dev
apt-get install zlib1g-dev
然后进入到刚刚解压的nginx目录,进行nginx的编译安装:

使用默认安装配置:

编译安装:

安装完成可以看到在/usr/local目录下面生成了nginx文件,这时候进入到该文件下面的sbin目录,启动nginx

在浏览器输入结果如下:

至此nginx环境安装完成

tomcat环境配置

首先官网https://tomcat.apache.org/下载对应的tomcat安装包,同上面一样采用远程文件传输把安装包传输到 /usr/local这个目录,然后解压到该目录

之后进入到解压的tomcat文件下面的bin目录,修改bin目录下面的startup.sh和shutdown.sh文件

在最后一行前面加入(注意java_home路径)

export JAVA_HOME=/usr/local/jdk1.8.0_291
export JRE_HOME=${JAVA_HOME}/jre
export CLASSPATH=.:%{JAVA_HOME}/lib:%{JRE_HOME}/lib
export PATH=${JAVA_HOME}/bin:$PATH
#tomcat
export TOMCAT_HOME=/usr/local/apache-tomcat-8.5.69

之后bin目录下面启动tomcat

浏览器放入即成功

项目的部署(nginx+tomcat实现部署)

前端采用vue框架,对vue进行打包npm run build生成dist文件夹,将dist文件夹放到/usr/local/nginx/html下面

修改nginx配置文件(位于nginx目录conf文件下面的nginx.conf)

在8080端口进行监听

后端采用spring boot框架,利用maven自动打包工具进行打包生成.jar包

在pom.xml文件当中配上

之后再命令行键入:

mvn clean package打包为.jar包

在把.jar包文件传输到服务器上面,运行因为spring boot自带tomcat所以直接运行.jar包

然后在nginx目录的sbin下面启动nginx

之后在网页上输入http://120.76.247.130:8080/category/main:就可以看到宠物商店首页(目前该公网端口已经上线其他项目)

redis环境配置

首先官网hhttps://redis.io/download下载对应的redis版本,同上面一样采用远程文件传输把安装包传输到 /usr/local这个目录,然后解压到该目录

解压

之后进入redis进行编译安装

命令行输入分别输入(先安装gcc-c++)

make

make install

之后输入 src/redis-server打开redis服务

也可以输入 src/redis-cli进入redis客户端

与此同时项目中进行配置:

引入依赖:

#配置文件

spring.redis.database=0
#redis服务器地址
spring.redis.host=127.0.0.1
#redis服务器端口
spring.redis.port=6379
#redis连接密码
spring.redis.password=
#链接超时时间 单位 ms
spring.redis.timeout=3000
################ Redis 线程池设置 ##############
# 连接池最大连接数(使用负值表示没有限制) 默认 8
spring.redis.lettuce.pool.max-active=8
# 连接池最大阻塞等待时间(使用负值表示没有限制) 默认 -1
spring.redis.lettuce.pool.max-wait=-1
# 连接池中的最大空闲连接 默认 8
spring.redis.lettuce.pool.max-idle=8
# 连接池中的最小空闲连接 默认 0
spring.redis.lettuce.pool.min-idle=0

nginx+tomcat集群配置流程

首先后端打包为war包放到tomcat/webapps目录下,利用maven打包为war包需要做的:

后端spring boot项目应该加入依赖:

<packaging>jar</packaging>
        <!-- 剔除掉自带的tomcat依赖-->
        <dependency>
           <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-tomcat</artifactId>
           <scope>provided</scope>
       </dependency>

<!--在build标签里面加入 -->
<!--            跳过测试-->
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-surefire-plugin</artifactId>
                <version>2.22.1</version>
                <configuration>
                    <skipTests>true</skipTests>
                </configuration>
            </plugin>

<!--                         没有web.xml文件的情况下构建WAR-->
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-war-plugin</artifactId>
                <version>3.2.3</version>
            </plugin>

同时在启动类目录新创建一个类:

public class MypetstoreApplication extends SpringBootServletInitializer {

    @Override
    protected SpringApplicationBuilder configure(SpringApplicationBuilder builder) {
        return builder.sources(MypetstoreApiApplication.class);//这里是加载项目的启动类
    }
}

之后再进行打包操作

打包完成之后

在tomcat中conf目录下面server.xml文件更改(主要是为了访问端口根路径就直接访问war包,docBase放的就是war的路径)

<Context path="/" docBase="/usr/local/apache-tomcat-8.5.69/webapps/mypetstore-api-0.0.1-SNAPSHOT" reloadable="false"></Context>

注意前端若是vue打包,在vue打包的时候在main里面配的axios请求根路径注释掉(利用nginx做反向代理):

axios.defaults.baseURL='http://127.0.0.1:8088/'

之后进入到tomcat目录下的bin目录下启动tomcat:

到此项目就启动成功了,这个时候网页输入服务器地址+端口+路径显示如下:

接下来nginx配置:

先向之前一样nginx的dist放在html目录下面:

然后在nginx.conf里面再对需要请求服务器的路径进行代理,即加上

下面这个表示前端对后端请求是/catalog/categories就进行代理转发,其中 proxy_pass是代理转发的根路径,注意根路径后面加上'/'和不加到导致根路径不一样,其余是请求头

location /catalog/categories{
    proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
    proxy_set_header X-Forwarded-Proto $scheme;
    proxy_set_header X-Forwarded-Port $server_port;
    proxy_pass http://127.0.0.1:8080;
    }

之后再重启nginx服务,可以看到 nginx+tomcat的部署就完成了。

前端已经拿到服务器给的数据

到这里我们再进行nginx+tomcat的集群配置

这里采用一台服务器多个tomcat的形式,先在/usr/local下面新建一个目录 tomcat2.0存在准备安装的第二个tomcat:

可以看到有两个tomcat目录,这个时候再按照上文所讲的再重新配一个tomcat环境。

同时因为是跑在一个服务器上面,所以我们改变第二个tomcat的端口号,进入tomcat下面的conf目录的server.xml文件,找到8080,8005,8009这几个端口,把8080改为自己想要设置的端口,其余的改变就可

之后再到bin目录(首先保证这个tomcat环境配好了)下面再运行这个tomcat,这个时候就有两个tomcat运行了。

为了实现集群,我们再回到nginx的配置文件里面:

在相应位置加上:

upstream mypetstore{
    //weight表示权重
    server 127.0.0.1:8080 weight=5; 
    server 127.0.0.1:8081 weight=3;    
   }

然后修改之前的请求转发路径为:

好的这是时候可以看到集群就部署完成了,经过测试,我们再断掉一个tomcat之后,网站仍然能够正常访问

版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

相关文章
06 入门 - Web服务器
  目录索引:《ASP.NET MVC 5 高级编程》学习笔记     开发和调试ASP.NET MVC程序,需要Web服务器的支持。   Visual Studio 2012+开发环境提供了两种Web服务器,分别是IIS Express和开发服务器。
905 0
使用ECS服务器搭建javaweb项目
在领取了阿里云的学生服务器试用后,使用宝塔面板进行javaweb项目的搭建
169 0
[WS]Web服务系列(二) Web服务的结构
我发现写日志可以帮助自己整理思路,有些技术在一段时间不用后,如果以日志的形式写出来,对于巩固记忆是十分有效的。比如这个Web服务系列,为了尽量避免错误,我会重新查阅资料,在这个过程中又能学到新的知识。
998 0
在IIS上搭建WebSocket服务器(三)
原文:在IIS上搭建WebSocket服务器(三) 编写客户端代码 1.新建一个*.html文件。 ws = new WebSocket('ws://192.168.85.128:8086/Handler1.
1551 0
2
文章
0
问答
文章排行榜
最热
最新
相关电子书
更多
《2021云上架构与运维峰会演讲合集》
立即下载
《零基础CSS入门教程》
立即下载
《零基础HTML入门教程》
立即下载