Yifans_Z's Blog.

Ubuntu JDK Nginx WildFly MySQL 环境配置

字数统计: 2k阅读时长: 24 min
2016/07/07 Share

新项目部署上线,主要参考 世雷博客 的内容,自己也总结了下。从 JDK 安装、Web 容器、数据库,都有涉及比较全面。

JDK8

安装 JDK8

1、添加软件源

sudo add-apt-repository ppa:webupd8team/java

2、更新软件源

sudo apt-get update

3、安装 jdk1.8

sudo apt-get install oracle-java8-installer

查看 Java 安装路径

sudo update-alternatives --config java
sudo update-alternatives --config javac

查看 Java 安装后的版本

java -version

(扩展)增加多版本 JDK 和切换方法

1、安装 JDK 6 和 JDK 7

sudo apt-get install oracle-java6-installer
sudo apt-get install oracle-java7-installer

2、查看所有 JDK 安装版本

sudo update-java-alternatives -l
java-6-oracle 3 /usr/lib/jvm/java-6-oracle
java-7-oracle 4 /usr/lib/jvm/java-7-oracle
java-8-oracle 2 /usr/lib/jvm/java-8-oracle

3、通过 -s 参数可以方便的切换到其它的 JDK 版本

sudo update-java-alternatives -s java-6-oracle

sudo update-java-alternatives -s java-7-oracle
sudo update-java-alternatives -s java-8-oracle

4、再次查看 JDK 版本

java -version

java version "1.6.0_45"
Java(TM) SE Runtime Environment (build 1.6.0_45-b06)
Java HotSpot(TM) 64-Bit Server VM (build 20.45-b01, mixed mode)

Nginx

Nginx 安装

1、更新软件源

sudo apt-get update

2、安装 Nginx

sudo apt-get install nginx

3、查看 Nginx 位置

whereis nginx

Nginx 禁止外网访问

防止 Google 收录

sudo vi /etc/nginx/sites-enabled/default

server 中添加

# server add
# 公司代理IP
allow *.*.*.*;
deny all;

Nginx 域名调整

域名 www 跳转 non wwwserver 中添加配置

server_name www.aaa.org aaa.org;
if ($host != 'aaa.org'){
rewrite ^/(.*)$ http://aaa.org/$1 permanent;
}

Nginx GZip

##
# Gzip Settings
##

gzip on;
gzip_disable "msie6";

gzip_vary on;
gzip_min_length 1k;
gzip_proxied any;
gzip_comp_level 6;
gzip_buffers 16 8k;
gzip_http_version 1.1;
gzip_types text/plain text/css application/json application/x-javascript text/xml application/xml application/xml+rss text/javascript application/x-httpd-php image/jpeg image/gif image/png image/x-icon

Nginx 静态文件缓存

location ~*\.(gif|jpg|jpeg|png|bmp|swf|woff|icon)$ {
proxy_cache my_zone;
proxy_cache_bypass $http_cache_control;
proxy_cache_valid 200 1d;
add_header X-Proxy-Cache $upstream_cache_status;
expires 15d;
}

location ~ .*\.(js|css|ttf)$ {
proxy_cache my_zone;
proxy_cache_bypass $http_cache_control;
proxy_cache_valid 200 1d;
add_header X-Proxy-Cache $upstream_cache_status;
expires 15d;
}

静态文件放在配置的 root

root /opt/***;

还有个技巧,项目中大量资源文件,例如 PDF,在设计访问 url 时可以 **/pdf/**,这样在 Nginx 进行配置就可以将文件分离出项目;这些文件也放在 root 路径下。

location ^~ /html/ {
}
location ^~ /pdf/ {
}

Nginx Commands

sudo service nginx stop
sudo service nginx start
sudo service nginx restart

Nginx Show Log

sudo tail -f /var/log/nginx/error.log

WildFly 10.0.0.Final

WildFly 安装

1、下载 WildFly,并提取到 /opt 目录 WildFly 10.0.0.Final 下载地址

cd /opt
sudo wget -c http://download.jboss.org/wildfly/10.0.0.Final/wildfly-10.0.0.Final.tar.gz
sudo tar -xzvf wildfly-10.0.0.Final.tar.gz

2、创建 WildFly 用户和组

sudo addgroup wildfly
sudo useradd -g wildfly wildfly

改变 wildfly 文件夹的所有权:

sudo chown -R wildfly:wildfly /opt/wildfly-10.0.0.Final

创建一个链接映射(好处:如果你改变WildFly版本,不需要更新其他配置)

sudo ln -s wildfly-10.0.0.Final /opt/wildfly

3、安装 init.d 脚本
设置并使用 init.d 脚本来启动和停止WildFly。复制/opt/wildfly/bin/init.d/wildfly-init-debian.sh脚本到 /etc/init.d/wildfly,更改权限,并使其可执行

sudo cp /opt/wildfly/docs/contrib/scripts/init.d/wildfly-init-debian.sh /etc/init.d/wildfly
sudo chown root:root /etc/init.d/wildfly
sudo chmod ug+x /etc/init.d/wildfly

启动/停止WildFly 命令

sudo /etc/init.d/wildfly start
sudo /etc/init.d/wildfly stop

4、WildFly 做为系统服务,开机启动

sudo update-rc.d wildfly defaults

配置 WildFly 允许所有 ip 访问

1、打开配置文件 standalone.xml

sudo vi /opt/wildfly/standalone/configuration/standalone.xml

2、替换此处

<interface name="management">
<inet-address value="${jboss.bind.address.management:127.0.0.1}"/>
</interface>
<interface name="public">
<inet-address value="${jboss.bind.address:0.0.0.0}"/>
</interface>

改为

<interface name="management">
<any-address/>
</interface>
<interface name="public">
<any-address/>
</interface>

3、保存后,重新启动 WildFily

sudo service wildfly restart

删除默认欢迎内容(可选)

如果你部署了应用程序在上下文根目录里,欢迎你 将需要从WildFly配置删除默认内容。在 standalone.xml 文件里删除粗体突出显示的行

<server name="default-server">
<http-listener name="default" socket-binding="http"/>
<host name="default-host" alias="localhost">
**<!-- <location name="/" handler="welcome-content"/> -->**
<filter-ref name="server-header"/>
<filter-ref name="x-powered-by-header"/>
</host>
</server>
<handlers>
**<!-- <file name="welcome-content" path="${jboss.home.dir}/welcome-content"/> -->**
</handlers>

其它设置

改为可以修改JSP页面不用重启

<servlet-container name="default">
<jsp-config development="true"/>
</servlet-container>

注意事项

1、项目以站点根目录访问
你现在可以将应用程序部署到 WildFly 视图在 your_ip:8080
在你的项目目录 WEB-INF 下添加 jboss-web.xml,确保你的配置 context-root 设置为 /

<?xml version="1.0" encoding="UTF-8"?>
<jboss-web>
<context-root>/</context-root>
</jboss-web>

2、Linux 里设置端口 80 到 8080
注意:在之后的配置会使用 Nginx 反向代理,所用 WildFly 端口不用映射为 80,这里只是个方法的笔记

注意,在linux里,由于内核的限制,普通用户不能使用 1024 一下的端口。所以在配置文件(standalone.xml)里改成80,用普通用户是启动不了的。

此时,我们需要在 linux 下使用 root 用户运行一个命令,使访问80端口的应用转到8080上:

sudo iptables -t nat -A PREROUTING -p tcp --dport 80 -j REDIRECT --to-ports 8080

以上端口转发为临时操作,重启 linux 服务器后失效。如果要重启服务器不丢失FORWARD转发”操作,可写入配置。

在Linux的下面部署了tomcat,为了安全我们使用非root用户进行启动,但是在域名绑定时无法直接访问80端口号。众所周知,在unix下,非root用户不能监听1024以上的端口号,这个tomcat服务器就没办法绑定在80端口下。所以这里需要使用linux的端口转发机制,把到80端口的服务请求都转到8080端口上。

2.1、安装 iptables-persistent

sudo apt-get update
sudo apt-get install iptables-persistent

2.2、添加 80 端口跳转到 8080 规则

sudo iptables -t nat -A PREROUTING -p tcp --dport 80 -j REDIRECT --to-port 8080

2.3、保存跳转规则

sudo service iptables-persistent save

3、wildfly 不支持 struts2 的配置文件(.xml)里用通配符
这是原博文的内容,我没有使用 struts2;在 spring 中有用通配符,但是好像没什么影响
jboss wildfly 不支持 struts2 配置文件里用通配符 *.xml,如下:

<!-- <include file="struts/*.xml"></include> -->
<include file="struts/struts_post.xml"></include>
<include file="struts/struts_user.xml"></include>

4、增加部署扫描仪的超时设置
位置:

<subsystem xmlns="urn:jboss:domain:deployment-scanner:2.0">
<deployment-scanner path="deployments" relative-to="jboss.server.base.dir" scan-interval="5000" />
</subsystem>

<deployment-scanner> 内增加属性 deployment-timeout="1200" 如下:

<subsystem xmlns="urn:jboss:domain:deployment-scanner:2.0">
<deployment-scanner path="deployments" relative-to="jboss.server.base.dir" scan-interval="5000" deployment-timeout="1200" />
</subsystem>

Nginx 反向代理 WildFly

1、在 http 中添加

upstream jboss {
server 127.0.0.1:8080;
}

2、在 server 中修改

location /{
proxy_pass http://jboss;
proxy_redirect off;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header Host $http_host;
index index.html index.htm index.jsp;
# 动态网站要小心这个 缓存 选项
add_header Cache-Control max-age=1728000;
}

MySQL

MySQL5.6 安装

sudo apt-get install mysql-server-5.6

MySQL 创建数据库

CREATE DATABASE IF NOT EXISTS scrapy DEFAULT CHARSET utf8 COLLATE utf8_general_ci;

MySQL 数据库导出/导入

mysqldump -u root -p123456 db_name | gzip > /home/backup/db_name.sql.gz
mysqldump -u root -p123456 --all-databases | gzip > /home/backup/all.sql.gz

mysqldump -h192.168.1.100 -uroot -p db_name > db_name.sql
mysqldump -uroot -p db_name_1 db_name_2 > db_name_1_and_2.sql
gunzip < db_name.sql.gz | mysql -u root -p123456 db_name
gunzip < all.sql.gz | mysql -u root -p123456

mysql -uroot -p
show databases;
use db_name;
source ~/db_name.sql

MySQL 查看表结构

desc user

Project

robots.txt config 禁止所有爬虫爬取

User-agent: *
Disallow: /

Renference:

CATALOG
  1. 1. JDK8
    1. 1.1. 安装 JDK8
    2. 1.2. 查看 Java 安装路径
    3. 1.3. 查看 Java 安装后的版本
    4. 1.4. (扩展)增加多版本 JDK 和切换方法
  2. 2. Nginx
    1. 2.1. Nginx 安装
    2. 2.2. Nginx 禁止外网访问
    3. 2.3. Nginx 域名调整
    4. 2.4. Nginx GZip
    5. 2.5. Nginx 静态文件缓存
    6. 2.6. Nginx Commands
    7. 2.7. Nginx Show Log
  3. 3. WildFly 10.0.0.Final
    1. 3.1. WildFly 安装
    2. 3.2. 配置 WildFly 允许所有 ip 访问
    3. 3.3. 删除默认欢迎内容(可选)
    4. 3.4. 其它设置
    5. 3.5. 注意事项
    6. 3.6. Nginx 反向代理 WildFly
  4. 4. MySQL
    1. 4.1. MySQL5.6 安装
    2. 4.2. MySQL 创建数据库
    3. 4.3. MySQL 数据库导出/导入
    4. 4.4. MySQL 查看表结构
  5. 5. Project
    1. 5.1. robots.txt config 禁止所有爬虫爬取