1、项目的运行环境

  • linux版本
[root@localhost ~]# cat /proc/version
Linux version 2.6.-.el6.x86_64 (mockbuild@x86-.build.eng.bos.redhat.com) (gcc version 4.4. (Red Hat 4.4.-) (GCC) ) # SMP Tue Jan :: EST
  • jdk版本
[root@localhost ~]# java -version
openjdk version "1.8.0_171"
OpenJDK Runtime Environment (build 1.8.0_171-b10)
OpenJDK -Bit Server VM (build 25.171-b10, mixed mode)
  • mysql数据库

根据linux系统下载相应的mysql版本

[root@localhost ~]# mysql --help | grep Distrib
mysql Ver 14.14 Distrib 5.7., for Linux (x86_64) using EditLine wrapper
  • nginx静态资源服务器
[root@localhost sbin]# nginx -v
nginx version: nginx/1.14.
  • tomcat动态资源服务器
[root@localhost bin]# sh version.sh
Using CATALINA_BASE: /root/usr/tomcat8
Using CATALINA_HOME: /root/usr/tomcat8
Using CATALINA_TMPDIR: /root/usr/tomcat8/temp
Using JRE_HOME: /usr/lib/jvm/java-1.8.-openjdk-1.8.0.171-.b10.el6_9.x86_64/jre
Using CLASSPATH: /root/usr/tomcat8/bin/bootstrap.jar:/root/usr/tomcat8/bin/tomcat-juli.jar
Server version: Apache Tomcat/8.0.
Server built: Mar :: UTC
Server number: 8.0.21.0
OS Name: Linux
OS Version: 2.6.-.el6.x86_64
Architecture: amd64
JVM Version: 1.8.0_171-b10
JVM Vendor: Oracle Corporation

 2、nginx配置

  • nginx.conf主配置
[root@localhost nginx]# cat nginx.conf
user root;
worker_processes ;
error_log /var/log/nginx/error.log warn;
pid /var/run/nginx.pid;
events {
worker_connections ;
}
http {
include /etc/nginx/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 /var/log/nginx/access.log main;
sendfile on;
#tcp_nopush on;
keepalive_timeout ;
#gzip on;
include /etc/nginx/conf.d/*.conf; //加载conf.d目录下所有以.conf结尾的站点配置文件
}
  • conf.d目录下各站点的配置
[root@localhost nginx]# cd conf.d/
[root@localhost conf.d]# ll
总用量
-rw-r--r-- root root 5月 : host-.conf
-rw-r--r-- root root 5月 : host-.conf

host-01.conf配置:
server {
listen ;
server_name www.aaa.com; default_type 'text/html';
charset utf-; access_log /root/logs-nginx/host--access.log main; //站点 www.aaa.com访问日志配置
error_log /root/logs-nginx/host--error.log warn; //站点 www.aaa.com访问错误日志配置 location ~ .*\.(gif|jpg|jpeg|png)$ { //静态资源访问配置
root /root/static1; //静态资源访问的根目录
index index.html index.htm;
}
location / {//动态资源访问配置
root html;
proxy_pass http://127.0.0.1:8080; //配置的服务器地址,指向本地的tomcat服务器端口8080
proxy_read_timeout 600s;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header Host $host:$server_port;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
}
}
host-02.conf配置:
server {
    listen       80;
    server_name  www.ccc.com;     default_type 'text/html';
    charset utf-8;     access_log  /root/logs-nginx/host-02-access.log  main;
    error_log  /root/logs-nginx/host-02-error.log warn;     location ~ .*\.(gif|jpg|jpeg|png|css|js)$ {
       root   /root/static; //静态资源访问的根目录
       index  index.html index.htm;
    }     location / {
        root   html;
        proxy_pass http://127.0.0.1:8080;
        proxy_read_timeout 600s;
        proxy_set_header  X-Real-IP  $remote_addr;
        proxy_set_header Host $host:$server_port;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
   }
}

从上不难看出两个站点配置同时指向同一个tomcat服务器,但是是静态资源的访问路径不一样,其中host-01.conf静态资源根目录root: /root/static1是不存在的,host-02.conf的静态文件配置是对的,下面演示下效果。

由于本项目部署在内网环境中,不能直接访问其数据库和服务,可以通过xshell通道到本地,由于本服务的站点域名是随意指定,无法找到,可以修改客户端的hosts文件进行访问,如下图所示:

xshell通道设置:

修改客户机的hosts文件(本机的host文件路径:C:\WINDOWS\system32\drivers\etc):

在host中添加以下配置:
127.0.0.1 www.aaa.com
127.0.0.1 www.bbb.com
127.0.0.1 www.ccc.com
127.0.0.1 www.ddd.com

下面对配置的两个站点进行访问

站点1:www.aaa.com

由于站点1的静态资源配置为:location ~ .*\.(gif|jpg|jpeg|png),而配置的静态资源目录static1不存在,所以zt-logo.png图片无法显示。
下面演示下站点2:www.ccc.com,对比看看。

下面查看下nginx的日志:
站点1的访问日志:

站点1的错误日志:

站在2的访问日志:

站在2的错误日志:无

对比站点1、2可以发现,域名为:www.aaa.com的访问日志和错误日志分别记录在host-01-access.log、host-01-error.log,而域名为:www.ccc.com的访问日志和错误日志分别记录在host-02-access.log、host-02-error.log中。

注意事项

  • 启动tomcat时注意给tomcat启动脚本添加执行权限;
  • mysql数据库要根据系统的版本进行下载安装
  • nginx用户设置尽量和安装用户保持一致,以免权限不足无法启动nginx或修改默认的日志文件后造成无法记录日志的现象;
  • 在linux系统安装mysql、jdk、nginx等可以先安装个yum或apt-get管理工具,使用插件安装方便快捷;

关于linux下部署JavaWeb项目,nginx负责静态资源访问,tomcat负责处理动态请求的nginx配置的更多相关文章

  1. Linux系统部署JavaWeb项目(超详细tomcat,nginx,mysql)

    转载自:Linux系统部署JavaWeb项目(超详细tomcat,nginx,mysql) 我的系统是阿里云的,香港的系统,本人选择的是系统镜像:CentOS 7.3 64位. 具体步骤: 配置Jav ...

  2. Linux 下部署Django项目

    Linux 下部署Django项目   说明:本文所使用的环境为CentOS 6+Python2.7+Django1.11 安装Django.Nginx和uWSGI 1.确定已经安装了2.7版本的Py ...

  3. linux下部署php项目-Apache、php、mysql关联

    linux下部署php项目环境可以分为两种,一种使用Apache,php,mysql的压缩包安装,一种用yum命令进行安装. 使用三种软件的压缩包进行安装,需要手动配置三者之间的关系.apache和p ...

  4. Linux在Tomcat下部署JavaWeb项目

    一.Linux快速部署War包操作 1.先关闭Tomcat /home/java/tomcat8/bin/shutdown.sh 注意:进入tomcat bin目录下操作 2.进入War包存放目录(可 ...

  5. 6.linux下部署 web 项目

    安装java 1.下载 linux 环境的jdk 2.上传该压缩包到 linux 系统中并且解压 tar -zxvf 压缩包名 3.配置环境变量并且刷新配置 export JAVA_HOME=/ali ...

  6. Linux服务器部署javaweb项目,从环境配置,到最终系统运行

    部署准备:javaJDK1.7,Tomcat7.0,MySQL5.8,可运行的javaWeb项目,linux环境的服务器(可以是安装在windows电脑上的linux虚拟机,安装了linux系统的电脑 ...

  7. 基于阿里云服务器Linux系统部署JavaWeb项目

    前段时间刚完成一个JavaWeb项目,想着怎么部署到服务器上,边学边做,花了点时间终于成功部署了,这里总结记录一下过程中所遇到的问题及解决方法.之所以选择阿里云,考虑到它是使用用户最多也是最广泛的云服 ...

  8. Linux服务器部署JavaWeb项目完整教程

    本文大部分参考网上其他教程,是实际操作后回过头来的一些总结,希望可以对正在部署项目的你有所帮助. 基本环境:Centos7.tomcat8.jdk8,MySQL5.6.nginx 安装JDK yum ...

  9. Linux下部署springboot项目的步骤及过程

    最近在研究将springboot项目部署到Linux服务器上,由于springboot是内嵌了tomcat,所以可以直接将项目打包上传至服务器上.我是在idea上的项目,所以我就基于此说下过程. (一 ...

随机推荐

  1. CSS 文章链接

    文本溢出显示为省略号 Ellipsis for text overflow in table cell?

  2. 6 Tools To Jump Start Your Video Content Marketing

    http://www.forbes.com/sites/drewhendricks/2014/10/16/6-tools-to-jump-start-your-video-content-market ...

  3. linux下面调试C、C++

    (1)写好makefile文件(支持debug) objects = Main.o Satellite.o TimeSystem.o  SRPPara:$(objects) g++ -g -o SRP ...

  4. JQuery(三)-- AJAX的深入理解以及JQuery的使用

    HTTP HTTP http: 超文本传输协议.特点:  简单.快速.灵活.无状态.无连接 URL: 统一资源定位符. 组成:协议名://主机IP:端口号/项目资源地址?传递参数的键值对#锚点 ①ip ...

  5. JQuery制作基础的无缝轮播与左右点击效果

    在网页中我们想要的无缝轮播左右循环有好多好多中,这是我第一个轮播效果,也是最基础的,和大家分享一下,对于初学者希望你们能有所借鉴,对于大神我想让你们尽情的虐我给我宝贵的意见. 这个是我要的效果 进入正 ...

  6. 【机器学习】使用gensim 的 doc2vec 实现文本相似度检测

    环境 Python3, gensim,jieba,numpy ,pandas 原理:文章转成向量,然后在计算两个向量的余弦值. Gensim gensim是一个python的自然语言处理库,能够将文档 ...

  7. [ SSH框架 ] Spring框架学习之二(Bean的管理和AOP思想)

    一.Spring的Bean管理(注解方式) 1.1 什么是注解 要使用注解方式实现Spring的Bean管理,首先要明白什么是注解.通俗地讲,注解就是代码里的特殊标记,使用注解可以完成相应功能. 注解 ...

  8. maven使用与技巧

    1.Pom文件介绍与基本组成 说明:全称是Project Object Model,通俗点的话说就是要对构建的项目进行建模. 组成的基本元素: 元素 描述 modelVersion 超级pom版本 g ...

  9. 虚拟机搭建CentOS主机win10通过xshell连接

    目标:主机是win10系统,虚拟机搭建CentOS,在主机上通过XShell连接操作. 第一步 主机上安装虚拟机 第二步 下载CentOS 下载地址http://101.110.118.69/isor ...

  10. 远程代码仓库URL地址变更后本地仓库的配置方法

    作者:荒原之梦 原文链接:http://zhaokaifeng.com/?p=556 今天修改了一个远程仓库的项目名称,导致Git仓库的地址发生了变化,Push代码时显示"Git仓库找不到& ...