精华内容
下载资源
问答
  • Nginx部署多个Web应用

    千次阅读 2018-11-12 14:14:19
    、Nginx部署多个Web应用(不同IP地址) #user nobody; worker_processes 1;   #error_log logs/error.log; #error_log logs/error.log notice; #error_log logs/error.log info;   #pid logs/nginx.pid;     ...

    一、Nginx部署多个Web应用(不同IP地址)

    #user  nobody;
    worker_processes  1;
     
    #error_log  logs/error.log;
    #error_log  logs/error.log  notice;
    #error_log  logs/error.log  info;
     
    #pid        logs/nginx.pid;
     
     
    events {
        worker_connections  1024;
    }
     
     
    http {
        include       mime.types;
        default_type  application/octet-stream;
     
        #log_format  main  '$remote_addr - $remote_user [$time_local] "$request" '
        #                  '$status $body_bytes_sent "$http_referer" '
        #                  '"$http_user_agent" "$http_x_forwarded_for"';
     
        #access_log  logs/access.log  main;
     
        sendfile        on;
        #tcp_nopush     on;
     
        #keepalive_timeout  0;
        keepalive_timeout  65;
     
        #gzip  on;
        
        upstream www.yfscms.com {  
                server 127.0.0.1:8080;      
        }  
        
        upstream www.yfscms.net {
                server 127.0.0.1:9999;
        }
     
        upstream www.yfscms.cn {  
                server 127.0.0.1:8888;
        }
        
        upstream weixin.yfscms.com {  
                server 127.0.0.1:8080;
        }
        
        upstream www.gyhkyl.com {  
                server 127.0.0.1:8899;
        }
        
        upstream 120.26.234.50 {  
                server 127.0.0.1:8899;
        }
        
        upstream demo.zcgl.yfscms.com {  
                server 127.0.0.1:7777;
        }
        
        server {
            listen       80;
            server_name  www.yfscms.com;
     
            location / {
                index  index.html index.jsp;    
                proxy_pass  http://www.yfscms.com;    
                proxy_set_header    X-Real-IP   $remote_addr;    
                client_max_body_size    100m; 
            }
            error_page   500 502 503 504  /50x.html;
            location = /50x.html {
                root   html;
            }
        }
     
        server {
            listen       80;
            server_name  www.yfscms.net;
     
            location / {
                index  index.html index.jsp;    
                proxy_pass  http://www.yfscms.net;    
                proxy_set_header    X-Real-IP   $remote_addr;    
                client_max_body_size    100m; 
            }
            error_page   500 502 503 504  /50x.html;
            location = /50x.html {
                root   html;
            }
        }
        
        server {
            listen       80;
            server_name  www.yfscms.cn;
     
            location / {
                index  index.html index.jsp;    
                proxy_pass  http://www.yfscms.cn;    
                proxy_set_header    X-Real-IP   $remote_addr;    
                client_max_body_size    100m; 
            }
            error_page   500 502 503 504  /50x.html;
            location = /50x.html {
                root   html;
            }
        }
        
        server {
            listen       80;
            server_name  weixin.yfscms.com;
     
            location / {
                index  index.html index.jsp;    
                proxy_pass  http://weixin.yfscms.com;    
                proxy_set_header    X-Real-IP   $remote_addr;    
                client_max_body_size    100m; 
            }
            error_page   500 502 503 504  /50x.html;
            location = /50x.html {
                root   html;
            }
        }
        
        server {
            listen       80;
            server_name  www.gyhkyl.com;
     
            location / {
                index  index.html index.jsp;    
                proxy_pass  http://www.gyhkyl.com;    
                proxy_set_header    X-Real-IP   $remote_addr;    
                client_max_body_size    100m; 
            }
            error_page   500 502 503 504  /50x.html;
            location = /50x.html {
                root   html;
            }
        }
        
        server {
            listen       80;
            server_name  120.26.234.50;
     
            location / {
                index  index.html index.jsp;    
                proxy_pass  http://120.26.234.50;    
                proxy_set_header    X-Real-IP   $remote_addr;    
                client_max_body_size    100m; 
            }
            error_page   500 502 503 504  /50x.html;
            location = /50x.html {
                root   html;
            }
        }
        
        server {
            listen       80;
            server_name  demo.zcgl.yfscms.com;
     
            location / {
                index  index.html index.jsp;    
                proxy_pass  http://demo.zcgl.yfscms.com;    
                proxy_set_header    X-Real-IP   $remote_addr;    
                client_max_body_size    100m; 
            }
            error_page   500 502 503 504  /50x.html;
            location = /50x.html {
                root   html;
            }
        }
     
    }


    规则说明:

    1、一个upstream对应一个server

    2、server中的”server_name“跟”proxy_pass“跟upstream对应

    二、Nginx部署多个Web应用(同一个IP地址)

    #运行用户
    #user somebody;
     
    #启动进程,通常设置成和cpu的数量相等
    worker_processes  1;
     
    #全局错误日志
    error_log  C:/Users/wangcw/Desktop/nginx-1.13.12/logs/error.log;
    error_log  C:/Users/wangcw/Desktop/nginx-1.13.12/logs/notice.log  notice;
    error_log  C:/Users/wangcw/Desktop/nginx-1.13.12/logs/info.log  info;
     
    #PID文件,记录当前启动的nginx的进程ID
    pid        C:/Users/wangcw/Desktop/nginx-1.13.12/logs/nginx.pid;
     
    #工作模式及连接数上限
    events {
        worker_connections 1024;    #单个后台worker process进程的最大并发链接数
    }
     
     
    http {
         #设定mime类型,类型由mime.type文件定义
        include       C:/Users/wangcw/Desktop/nginx-1.13.12/conf/mime.types;
        default_type  application/octet-stream;
        
        #设定日志
        log_format  main  '[$remote_addr] - [$remote_user] [$time_local] "$request" '
                          '$status $body_bytes_sent "$http_referer" '
                          '"$http_user_agent" "$http_x_forwarded_for"';
                          
        access_log    C:/Users/wangcw/Desktop/nginx-1.13.12/logs/access.log main;
        rewrite_log     on;
     
        #设置访问的web应用列表
        upstream product_server{
            server www.aabbccdd.com:18080;
        }
        upstream admin_server{
            server www.aabbccdd.com:28080;
        }
        upstream finance_server{
            server www.aabbccdd.com:38080;
        }
     
       #HTTP服务器
       server {
            #监听80端口,80端口是知名端口号,用于HTTP协议
            listen       80;
            
            #定义使用www.xx.com访问
            server_name  www.aabbccdd.com;
            
            #首页
            index index.jsp
            
            #指向webapp的目录
            root C:/XMCARES_X/WorkSpace/nginx/src/main/webapp;
            
            #编码格式
            charset utf-8;
            
            #代理配置参数
            proxy_connect_timeout 180;
            proxy_send_timeout 180;
            proxy_read_timeout 180;
            proxy_set_header Host $host;
            proxy_set_header X-Forwarder-For $remote_addr;
            
           
     
            #默认指向product的server
            location / {
                proxy_pass http://product_server;
            }
     
            #使用location对不同请求做相应处理
            location /product/{
                proxy_pass http://product_server;
            }
     
            location /admin/ {
                proxy_pass http://admin_server;
            }
            
            location /finance/ {
                proxy_pass http://finance_server;
            }
        }
    }

     

    展开全文
  • 这里涉及到docker的一些使用(打包,发布,导入导出,运行等等),应用以小幺鸡(http://www.xiaoyaoji.cn/),简单好用的在线接口文档管理工具介绍,这是一个开源的工具,当然你也可用用你自己应用发布; 准备应用 ...

    作为使用Rancher的小白,昨天折腾了一天,终于搞定将自己的应用,使用Rancher部署并发布,今天就把过程记录下来,作为后来参考,也给个位小伙伴节省点儿时间
    这里涉及到docker的一些使用(打包,发布,导入导出,运行等等),应用以小幺鸡(http://www.xiaoyaoji.cn/),简单好用的在线接口文档管理工具介绍,这是一个开源的工具,当然你也可用用你自己的应用发布;

    准备应用

    1. 需要有Docker环境
    2. 需要有Rancher环境
    3. 需要有你自己的应用,我这里是使用小幺鸡(http://www.xiaoyaoji.cn/)
    4. 1和2有不会的参考我以前博客自己搭建

    我这里1和2已经准备好了,现在根据小幺鸡官网,点击下载源码,找到离线部署配置说明,需要满足如下条件:

    • 下载最新离线文件
    • 下载apache tomcat 版本需要7.x以上
    • 解压tomcat
    • 解压小幺鸡到tomcat/webapps/ROOT目录下
    • 如果使用一键安装集成tomcat版本可直接看这儿
    • 启动mysql。创建数据库xiaoyaoji, 并执行数据库脚本。这是脚本地址 https://github.com/zhoujingjie/xiaoyaoji/tree/dev/doc
    • 修改tomcat/webapps/ROOT/WEB-INF/classes/config.properties
    • 启动tomcat,访问http://localhost:8080/

    切入正题

    上面小幺鸡的官网上已经说了,如何部署运行,这里是要将自己的应用打包成docker镜像,然后使用Rancher取管理和部署;

    根据$准备应用里的介绍,可以看到一个应用发布,需有两部分:应用本身以及数据服务(mysql);

    使用Rancher部署数据服务

    这里就是MySQL的数据服务了,当然你也可以自己打包mysql的镜像,网上有很多,大概是先pull一个系统镜像,比如Centos:7.4,然后在系统里面安上mysql。。。。,我第一次也是这么做的,可惜,Docker我还玩不转,我打出来的镜像根本无法用。因此这里借助强大的Rancher就好了,配置几步就OK啦,步骤如下:

    1. 选择应用,从应用商店添加应用
      应用商店添加应用

    2. 搜索MySQL
      搜索MySQL

    3. 查看详情
      查看详情
      这里需要注意下,mysql服务的一些配置信息,必填项上图已经框出,其他信息可以保持默认,上图中给出:

    • 应用名称: mysql
    • 端口:3306
    • 密码:需要你指定root用户的密码
    • MySQL的docker镜像:这里就需要注意了,默认是:mysql:latest,但是最新的mysql我们一般是用不着的,目前(到2018-12-12日为止),最新的mysql是9.0+了,这个版本的安全验证变化比较大,跟5.0+版本的不一样,如果用最新的版本,很可能部署好后,假设你的客户端版本配合不上,那么你就没法用这个服务了,所以我这里选择了镜像myslq:5.7
    • MySQL数据库:因为我要部署小幺鸡,所以我这里直接就指定了一个数据库,xiaoyaoji,这个不是必填项,可以创建好服务好,直接创建数据库
    • 最后,需要选择创建后启动服务,然后点击启动按钮,Rancher就会为我们创建好相关应用
      创建好的Mysql服务
      可见上面,创建的mysql服务,同时为我们提供好了负载均衡服务,省去了我们自己一顿瞎折腾,最后还达不到Rancher的效果(Smile…)
    1. 连接数据库并导入数据
      现在赶紧用客户端工具试试
      用客户端工具试试
      然后把小幺鸡的数据库内容导入进去。

    构建自己的应用的镜像

    一开始我是参考如何使用Docker部署一个web项目并打包成镜像文件1,先pull的Centos的镜像,然后下载自己的jdk和tomcat,并上传到容器里面去,根据步骤一步一步来,也确实成功了,一直到第5步,后面步骤我就没法进行下去了,主要是我这里外网不了,无法注册dockerhub账户,其实我这里有私有的docker仓库,可以参考我以前博客,可以搭建一个私有的docker仓库,但是也有问题;在docker login的时候,会提示404错误在访问/v2的时候不成功,所以也就不了了之了。

    参考上面提到的博客,根据操作将应用打包成镜像后,就可以上传到仓库中,然后在随时随地拉取到本地使用,然而,结局并不尽人意,拉取后总是无法启动这个容器,然后又是一番搜索,发现可能跟我使用tomcat的方式有关,可以参考这里:docker纪录篇1-docker构建tomcat镜像,这位仁兄描述的就更加详尽了,从docker介绍,安装,命令使用,以及镜像构建整套流程都做了说明,其中在构建镜像部分就提到过:
    docker要求容器中 运行的程序必须是前端运行的(也就是运行后 不能再输入命令) 默认的tomcat8 是使用deamon方式运行(运行完成后 后台运行可以继续输入命令行 ),然后他也提到了解决方法,就是修改catalina.sh文件中有>> "$CATALINA_OUT" 2>&1 中去掉&符号。不过他那里是用的tomcat6,我这里用到的是tomcat8,我看了一下8的内容跟6不一样了,是>> "$CATALINA_OUT" 2>&1 "&",到底tomcat8.0是不是这样改,我就不知道了,后面我就没实验了。不过他提到的问题关键就是docker要求容器中 运行的程序必须是==前端运行==的是很有意义的。

    上面说的可能比较啰嗦,但是我昨天一天的折腾就是这样的。。。

    准备开源镜像

    实际上既然Rancher上MySQL的现成服务都有了,为什么tomcat的没有呢?在应用商店上搜索tomcat,发现确实没有,不过没关系,从docker仓库中搜索一下

    [root@namenode2 package]# docker search tomcat:8.0
    NAME                                       DESCRIPTION                                     STARS               OFFICIAL            AUTOMATED
    tomcat                                     Apache Tomcat is an open source implementati…   2215                [OK]                
    tomee                                      Apache TomEE is an all-Apache Java EE certif…   59                  [OK]                
    dordoka/tomcat                             Ubuntu 14.04, Oracle JDK 8 and Tomcat 8 base…   50                                      [OK]
    webgoat/webgoat-8.0                        Latest development version of WebGoat, see h…   41                                      
    davidcaste/alpine-tomcat                   Apache Tomcat 7/8 using Oracle Java 7/8 with…   31                                      [OK]
    bitnami/tomcat                             Bitnami Tomcat Docker Image                     27                                      [OK]
    cloudesire/tomcat                          Tomcat server, 6/7/8                            14                                      [OK]
    [root@namenode2 package]# 
    
    

    很显然,tomcat是提供镜像的,那么把这个镜像pull下来即可

    [root@namenode2 package]# docker pull tomcat:8.0
    [root@namenode2 package]# docker images
    REPOSITORY                TAG                 IMAGE ID            CREATED             SIZE
    xiaoyaoji                 2.1.7               485178ba848b        17 hours ago        474MB
    centos                    latest              1e1148e4cc2c        6 days ago          202MB
    mariadb                   latest              b468922dbbd7        3 weeks ago         366MB
    mysql                     latest              f991c20cb508        3 weeks ago         486MB
    rancher/server            latest              a0b9e05b2a03        2 months ago        1.08GB
    tomcat                    8.0                 ef6a7c98d192        3 months ago        356MB
    
    

    这里pull 8.0版本的。
    另外,查找容器,可以用search命令,但是最好,我还是推荐,去dockerhub的官方去查找,因为你能得到更多更详细的信息,比如搜索 tomcat,
    搜索 tomcat
    点击DETAILS按钮,你会得到非常有用的信息:
    tomcat镜像的详细信息
    详情中提供了这个镜像是如何使用,以及相关环境变量的配置等等以及其他的信息。这些信息非常重要。

    好了,现在启动tomcat:8.0的镜像

    [root@namenode2 package]# docker run -p 8889:8080 --name tomcat8 -d tomcat:8.0
    [root@namenode2 package]# docker ps -a
    CONTAINER ID        IMAGE                             COMMAND                  CREATED             STATUS              PORTS                              NAMES
    0130e08a30b7        tomcat:8.0                        "catalina.sh run"        17 hours ago        Up 2 hours          0.0.0.0:8889->8080/tcp             tomcat8
    

    访问: http://yourhostip:88889/ 就可以看到tomcat的管理界面了

    接下来就是,把小幺鸡的应用放到tomcat的目录下,根据提示,是将xiaoyao-2.1.7.zip这个安装文件解压,放到tomcat安装目录下webapps/ROOT/目录下。

    首先将zip解压,需要在自己本地解压,因为tomcat容器中不支持unzip命令,然后再将其打包成tar文件;
    再打包之前,需要根据小幺鸡安装提示修改数据库配置文件,将其设置成上面刚刚安装好的mysql服务的访问地址。

    最终打包成 xiaoyaoji.gz.tar的压缩包。

    将这个压缩包上传到容器里面,命令

    docker cp xiaoyaoji.gz.tar 0130e08a30b7:/usr/local/tomcat/webapps/ROOT
    # 上面命令是将本地本目录下的文件xiaoyaoji.gz.tar
    # 上传到容器:0130e08a30b7(也就是tomcat:8.0)的目录/usr/local/tomcat/webapps/ROOT
    

    上传后,就需要登录到这个容器里面去解压

    [root@namenode2 package]# docker exec -it 0130e08a30b7 bash
    root@0130e08a30b7:/usr/local/tomcat# cd webapps/ROOT/
    root@0130e08a30b7:/usr/local/tomcat/webapps/ROOT# ls
    META-INF	   WEB-INF   asf-logo-wide.svg	bg-button.png  
    bg-nav-item.png	bg-upper.png  index.html  robots.txt  
    tomcat-power.gif	tomcat.gif  tomcat.svg
    RELEASE-NOTES.txt  __MACOSX  assets		
    bg-middle.png  bg-nav.png	favicon.ico   index.jsp   test	      
    tomcat.css	tomcat.png  xiaoyaoji.gz.tar # 这个文件是刚刚上传的
    root@0130e08a30b7:/usr/local/tomcat/webapps/ROOT# tar -zvxf xiaoyaoji.gz.tar
    
    

    解压完成后,登录:http://yourhostip:8889/ 就会发现你的应用了
    你的应用

    打包自己的镜像

    上面是通过拉取tomcat的官方镜像,然后部署自己的应用上去,到这里已经可以提供服务了,但是这 并不是我要追求的最终结果,我所要的是用Rancher来集中管理我们的应用。

    因此,还需要将这个容器打包成我自己的镜像。

    原本打包镜像需要是参考如何使用Docker部署一个web项目并打包成镜像文件中的6,7,8步骤就行,但是我这里login不了,所以,只能再自己本地玩玩docker了,博文docker export import介绍的不错.

    1. 导出容器
      这里我们将tomcat:8.0的容器:0130e08a30b7
    docker export 0130e08a30b7 > xiaoyaoji.tar
    

    上面命令会将容器0130e08a30b7 导出到当前目录下,导出名为xiaoyaoji.tar
    docker export 命令会把容器的文件系统以tar包的格式导出到标准输出。将容器保存到本地后,我们就可以通过网络等方式将tar包分享给他人。

    我的Rancher有主机4台,那么我就需要将xiaoyaoji.tar分别发送到4台主机上去
    2. 导入容器为镜像

    cat xiaoyaoji.tar | docker import - xiaoyaoji:2.1.7
    

    上面命令是将导出的tar,转成镜像,镜像名为xiaoyaoji 标签是其版本2.1.7(当前小幺鸡的版本是2.1.7)
    3. 查看镜像

    docker images
    [root@namenode2 package]# docker images
    REPOSITORY                TAG                 IMAGE ID            CREATED             SIZE
    xiaoyaoji                 2.1.7               485178ba848b        18 hours ago        474MB
    centos                    latest              1e1148e4cc2c        6 days ago          202MB
    mariadb                   latest              b468922dbbd7        3 weeks ago         366MB
    mysql                     latest              f991c20cb508        3 weeks ago         486MB
    rancher/server            latest              a0b9e05b2a03        2 months ago        1.08GB
    tomcat                    8.0                 ef6a7c98d192        3 months ago        356MB
    
    

    上面第一条就是我们刚刚导入的xiaoyaoji的镜像了,然后将Rancher的4台主机,分别如上操作。使其每个主机都包涵xiaoyaoji:2.1.7的镜像。

    到这里,镜像我们就有了。

    使用Rancher发布自己的应用

    1. 添加应用
      添加应用

    名称:tomcat 描述:我的小幺鸡应用服务器
    后面的选项全部默认即可,点击创建按钮完成

    1. 添加服务
      应用添加完成后,界面会有显示
      添加服务

    2. 配置xiaoyaoji服务相关内容
      配置xiaoyaoji服务相关内容
      如下填写上基础信息以及端口映射信息
      这里注意:如图中,创建前总是拉取镜像,被我注销了,因为我的xiaoyaoji的镜像没有发布出去,只是在我本地中有xiaoyaoji:2.1.7的镜像,所以创建时候不应该再拉取镜像的。假设你的应用已经成功发布了,不论是在dockerhub上,还是你自己的私有docker仓库中,你需要勾选此项。

    还有一些更重要的配置选项:
    更重要的配置选项

    确保这些参数配置正确,否则服务总是会启动失败,这些参数那里来的?博文前面提到过,在dockerhub中搜索tomcat镜像的时候,其详细说明中有相关环境变量的描述。

    同时,遇到启动失败,需要经常查看日志信息,rancher有日志,docker也有日志。
    docker查看日志的命令

    docker logs 容器id
    

    根据日志提示能帮助你解决大部分问题。

    好了,现在可以点击创建按钮了,过一会服务启动成功。
    创建服务成功
    现在就可以访问:http://yourrancherhostip:8089/
    success

    如此你的应用就在Rancher中发布完成了。

    最后

    这篇博文的完成,离不开广大博主的支持,现把所有参考博文列出:



    1. 这篇博客主要参考docker的常用命令,感觉很全乎了 ↩︎

    展开全文
  • Eclipse部署和发布Web应用

    千次阅读 2018-03-30 19:39:28
    部署前条件:JDK、Tomcat、Eclipse都已经安装完成前两配置完成1.启动Eclipse新建动态工程2.找到Dynamic Web Projec并确认3.输入项目名4.选择new Runtime选择Tomcat服务器(如果Eclipse之前已经建立过服务器则可以...

    部署前条件:JDK、Tomcat、Eclipse都已经安装完成前两个配置完成

    1.启动Eclipse新建动态工程


    2.找到Dynamic Web Projec并确认


    3.输入项目名


    4.选择new Runtime选择Tomcat服务器(如果Eclipse之前已经建立过服务器则可以跳过),注意和自己安装的版本对应


    5.选择Browse然后找到Tomcat的安装路径


    6.选择完成后选择结束


    7.在项目中可以看到刚刚新建的web项目


    8.在WebContent上单击右键选择new->JSP file


    9.输入JSP文件名为index.jsp,别的默认



    10.改一下文中的编码为UTF-8并在body中随意输入内容


    11.在项目文件上单击右键选择Run as->run on server


    12.首次运行会提示,选择版本后勾选上Always这个选项避免每次都弹出


    13.等待服务器启动之后成功看到信息


    温馨提示:通过Eclipse启动Tomcat时不要通过Tomcat bin中的startup.bat获取tomcatxW.exe这个启动,这样就相当于启动了两个,可能会提示8080端口被占用

    展开全文
  • 一个简单的web应用开始

    千次阅读 2018-07-15 18:35:41
    使用IDEA创建一个maven项目2、调整maven配置搭建web项目框架1、转为Java web项目

    文章内容来源于:《架构探险:从零开始写 JavaWeb 框架》     作者:黄勇


    思考1、一个最简单的Web应用需要哪些jar、配置?欢迎大家留言讨论!

            1、新建一个Maven项目

            2、调整Maven配置文件pom.xml

                        统一源代码编码方式;

                        统一源代码与编译输出的JDK版本;

                        Maven打包是跳过单元测试(非必须,可选)。

            注:至此,一个Maven项目就搭建完毕了。

            3、转为Java Web项目

                           在main目录下,添加webapp目录。

                            在webapp目录下,添加WEB-INF目录。

                            在WEB-INF目录下,添加web.xml文件。

                                 (实际上,使用Servlet3.0框架是可以省略web.xml的。因为Servlet无须在web.xml里 配置,只需要通过Java注解的方式来配置即可) 

            4、添加Java Web的Maven依赖

                            由于Web项目是需要打War包的,因此需要在pom.xml文件中设置packaging为war,默认为jar;

                            添加Java Web所需的Servlet、JSP、JSTL等依赖;

            5、编写简单的Web应用

                            编写Servlet类,接收Get类型的/hello请求,转发到/WEB-INF/jsp/hello.jsp页面;

                                    (继承HttpServlet,让它成为一个Servlet类;覆盖父类的doGet方法,用于接收doGet请求; 在doGet方法中获取系统当前的时间,并将其放入HttpServletRequest对象中,最后转发到/WEB-INF/jsp/hello.jsp页面;使用WebServlet注解并配置请求路径,对外发布

                                            Servlet服务。)

                                  编写JSP页面,使用JSTL表达式来获取从HelloServlet里传过来的currentTime请求属性。

            6、在IDEA中配置Tomcat

                                    部署的时候以exploded方式部署

                              热部署设置

                                    

                            注:war与war exploded的区别见:理解 IntelliJ IDEA 的项目配置和Web部署

    应该还有更简单的方法,待后续补充。。。。。。


    1.1  使用IDEA创建一个maven项目






    1.2  搭建web项目框架







        



    1.3  编写一个简单的Web应用







    1.4  让Web应用跑起来





    1.5  将代码放入Git仓库中





    附:pom.xml

    <?xml version="1.0" encoding="UTF-8"?>
    <project xmlns="http://maven.apache.org/POM/4.0.0"
             xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
             xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
        <modelVersion>4.0.0</modelVersion>
    
        <groupId>org.chengtao</groupId>
        <artifactId>chapter1</artifactId>
        <version>1.0-SNAPSHOT</version>
        <packaging>war</packaging>
    
        <!--统一源代码的格式,统一使用UTF-8进行编码-->
        <properties>
            <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
        </properties>
    
        <dependencies>
            <!-- S  ervlet -->
            <dependency>
                <groupId>javax.servlet</groupId>
                <artifactId>javax.servlet-api</artifactId>
                <version>3.1.0</version>
                <scope>provided</scope>
            </dependency>
    
            <!-- JSP -->
            <dependency>
                <groupId>javax.servlet.jsp</groupId>
                <artifactId>jsp-api</artifactId>
                <version>2.2</version>
                <scope>provided</scope>
            </dependency>
    
            <!-- JSTl -->
            <dependency>
                <groupId>javax.servlet</groupId>
                <artifactId>jstl</artifactId>
                <version>1.2</version>
                <scope>runtime</scope>
            </dependency>
        </dependencies>
    
        <build>
            <plugins>
                <!-- Compile -->
                <plugin>
                    <groupId>org.apache.maven.plugins</groupId>
                    <artifactId>maven-compiler-plugin</artifactId>
                    <version>3.5</version>
                    <configuration>
                        <source>1.8</source>
                        <target>1.8</target>
                    </configuration>
                </plugin>
    
                <!-- Test -->
                <plugin>
                    <groupId>org.apache.maven.plugins</groupId>
                    <artifactId>maven-surefire-plugin</artifactId>
                    <configuration>
                        <skipTests>true</skipTests>
                    </configuration>
                    <version>2.18.1</version>
                </plugin>
    
                <plugin>
                    <groupId>org.apache.tomcat.maven</groupId>
                    <artifactId>tomcat7-maven-plugin</artifactId>
                    <version>2.2</version>
                    <configuration>
                        <path>/${project.artifactId}</path>
                    </configuration>
                </plugin>
            </plugins>
        </build>
    </project>
    展开全文
  • Nginx是由伊戈尔·赛索耶夫为俄罗斯访问量第二的Rambler.ru站点(俄文:Рамблер)开发的,第一个公开版本0.1.0发布于2004年10月4日。 其将源代码以类BSD许可证的形式发布,因它的稳定性、丰富的功能集、示例...
  • VS2017 Web应用程序发布网站步骤

    千次阅读 2020-10-20 08:42:21
    VS2017 Web应用程序发布网站步骤新的改变功能快捷键合理的创建标题,有助于目录的生成如何改变文本的样式插入链接与图片如何插入一段漂亮的代码片生成一个适合你的列表创建一个表格设定内容居中、居左、居右...
  • WEB应用发布管理平台的设计与实现

    千次阅读 2017-05-17 01:18:55
    一、设计的初衷 应用发布上线、版本回退以及配置管理是每个运维人员都要面对的工作内容,有时候甚至还会占用非常多的精力。 ...这也是我思考、设计和实现一个WEB应用发布管理平台的初衷。 一定会
  • 参考 成功 打开IIS,右键“网站",选择”添加网站“ 弹出的添加网站对话框中,输入网站名称,应用程序池,内容目录的物理路径,就是刚才我们发布项目的路径,输入端口号,最后点击“确定” 选中我们刚创建的网站,在...
  • 主流的Web应用程序平台

    千次阅读 2017-09-06 20:15:40
    动态网站应用程序平台的搭建需要使用Web服务器发布网页,而Web服务器软件又需要安装在操作系统上,并且动态网站都需要使用脚本语言对服务器端进行编程,所以也要在同一个服务器中为Web服务器捆绑安装一个应用程序...
  • 一Web应用程序  (1)什么是Web应用程序  应用程序有两种模式C/S、B/S。C/S是客户端/服务器端程序,也就是说这类程序一般独立运行。而B/S就是浏览 器端/服务器端应用程序,这类应用程序一般借助浏览器来运行。 ...
  • 如何使用Flutter开发web应用

    万次阅读 2019-06-21 22:48:53
    进行运行,初次编译可能会下一些本项目所依赖的包,需要一分多钟,后面编译会快很多,编译完成后会弹出一个浏览器的窗口(注意,这里建议使用 Chrome 浏览器,其他浏览器笔者没有测试过,按照官方的说法,目前支持...
  • Web应用程序发布到Tomcat服务器的三种方法: 1、将Web应用程序目录复制到Tomcat的应用程序目录下。 2、创建Web应用程序存档文件(WAR),将.war文件复制到应用程序目录webapps下。 3、建立虚拟路径。 编写...
  • 使用Docker部署一个以Tomcat 为服务器的支持HTTPS的web站点。其原理和在普通服务器上部署类似,只需要将自己开发的软件包放到Tomcat 工程目录下即可。不同的是,Tomcat服务器要在容器中启动,相应的工程源码也要导入...
  • Web基础(三)Python Web

    千次阅读 多人点赞 2018-11-14 19:11:49
    文章目录Python Web基础1. WSGI1.1 概述1.2 实现原理1、WSGI Server/gateway2、WSGI Application3、WSGI MiddleWare1.3 测试 WSGI服务器代码简析1.4 实现WSGI服务器1.5 生产环境中的Web服务器[Gunicorn]...
  • IIS发布个WEB网站应用程序

    千次阅读 2011-12-28 20:11:58
     在同一台服务器上或者一个IP上,创建或发布多个WEB网站应用程序  经过查阅相关文档资料,我这里提供三种比较传统的方式来实现该需求,TCP端口实现法,IP地址实现法,主机头实现法  一、TCP端口实现法  利用...
  • tomcat部署web应用的4种方法 在Tomcat中有四种部署Web应用的方式,简要的概括分别是: (1)利用Tomcat自动部署 (2)利用控制台进行部署 (3)增加自定义的Web部署文件(%Tomcat_Home%\conf\Catalina\...
  • 基于Azure搭建web应用发布个人网页

    千次阅读 2018-05-23 21:47:04
    1.实验目的 通过azure创建发表自己的个人网站 2.实验环境 Microsoft Azure3. 实验步骤(1)在Azure环境下:创建资源--&gt;Web应用 (2)点击Web应用开始创建 (3)创建完成后点击进入开始部署 (4)点击...
  • WebSphere 安装部署,发布web应用

    万次阅读 2017-11-20 23:51:08
    五、访问web应用 、WebSphere 是什么?WebSphere 为 SOA 环境提供软件,以实现动态的、互联的业务流程,为所有业务情形提供高度有效的应用程序基础架构。WebSphere 是 IBM 的应用程序和集成软件平台,包含所有必要...
  • web应用程序的部署

    千次阅读 2017-06-03 14:35:25
    一个Web容器可以运行多个web应用程序,每个web应用程序都有一个唯一的上下文根。对于Tomcat来说,%CATALINA_HOME(安装路径)%\webapps目录下的每一个子目录都是一个独立的Web应用程序,这个子目录的名字就是这个Web...
  • Web应用的测试内容

    千次阅读 2018-11-01 16:25:49
     链接是Web应用系统的一个主要特征,它是在页面之间切换和指导用户去一些不知道地址的页面的主要手段。链接测试可分为三个方面。首先,测试所有链接是否按指示的那样确实链接到了该链接的页面;其次,测试所链接的...
  • 常用Web应用服务器

    千次阅读 2017-12-07 11:37:45
    常用Web应用服务器有: nginx、Apache、Tomcat、JBoss、WebSphere、WebLogic、Resin、Glassfish nginx介绍 Nginx (engine x) 是一个高性能的HTTP和反向代理服务器,也是一个IMAP/POP3/SMTP服务器。Nginx是由...
  • docker入门(利用docker部署web应用)

    万次阅读 多人点赞 2019-05-26 10:44:15
    前言:本课程是在慕课网上学习 第一个docker化的java应用 课程时所做的笔记,供本人复习之用 目录 第一章 什么是docker 1.1 docker的发展史 1.2 docker国内应用史 1.3 什么是Docker 第二章 了解docker 2.1 ...
  • 如何用纯 Python 写 Web 应用

    千次阅读 多人点赞 2020-01-20 14:45:52
    王树义读完需要16分钟速读仅需 6 分钟不用学前端编程,你就能用 Python 简单高效写出漂亮的交互式 Web 应用,将你的数据分析成果立即展示给团队和客户。1 痛点从我开始折腾数...
  • Web应用程序与Web网站及部署在IIS中

    千次阅读 2015-09-07 22:19:17
    通过选择 新建项目 或 打开项目 创建或打开一个 Web 应用程序项目在Visual Studio 文件 菜单。 通过选择 新建网站 或 打开网站 创建或打开一个网站项目在"文件"菜单。 每种项目类型各有优缺点,要选择...
  • Windows下Docker部署tomcat及发布web应用方式1、tomcat镜像下载2、启动tomcat2.1 守护式启动容器2.2 交互式启动容器3、发布web应用3.1 将自己打包的war包上传在容器webapps目录下3.2 在容器挂载时将war包传入3.3 ...
  • Eclipse的配置  (1)Eclipse配置JRE  在打开的页面中找到Window->Prefereneces->Java->Installed JREs  打开的Prefereneces对话框中我们看到系统默认使用的是自带的JDK版本,我们推荐使用自己安装的JDK ...
  • web应用存在的10大安全问题

    千次阅读 2018-11-04 22:00:27
    1 在web应用程序中是什么导致安全性问题呢?一般有以下几原因 1、复杂应用系统代码量大、开发人员多、难免出现疏忽 2、系统屡次升级、人员频繁变更,导致代码不一致 3、历史遗留系统、试运行系统等多Web系统...
  • web应用的自动化打包和发布--Docker

    千次阅读 2015-11-10 09:45:05
    强大的自动化 推荐网址 http://www.docker.org.cn/   http://www.docker.com/ 现在是学习中
  •   Web服务器是运行及发布Web应用的大容器,只有将开发的Web项目放到该容器中,才能使网络中的所有用户通过浏览器进行访问。常用的有BEA WebLogic服务器、IBM WebSphere应用服务器、Tomcat服务器。   ...
  • 这样的话启动tomcat会自动生成一个同名的应用文件夹里面会有tomcat解压后的应用目录,还有些不用拷贝到webapps目录下,通过tomcat的server配置指定任意的文件夹为web应用发布目录。  基本上目录结构

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 493,201
精华内容 197,280
关键字:

自己发布一个web应用