新项目部署上线,主要参考 世雷博客 的内容,自己也总结了下。从 JDK 安装、Web 容器、数据库,都有涉及比较全面。
JDK8
安装 JDK8
1、添加软件源
sudo add-apt-repository ppa:webupd8team/java
|
2、更新软件源
3、安装 jdk1.8
sudo apt-get install oracle-java8-installer
|
查看 Java 安装路径
sudo update-alternatives --config java sudo update-alternatives --config javac
|
查看 Java 安装后的版本
(扩展)增加多版本 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 "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、更新软件源
2、安装 Nginx
sudo apt-get install nginx
|
3、查看 Nginx 位置
Nginx 禁止外网访问
防止 Google 收录
sudo vi /etc/nginx/sites-enabled/default
|
在 server
中添加
# server add # 公司代理IP allow *.*.*.*; deny all;
|
Nginx 域名调整
域名 www
跳转 non www
,server
中添加配置
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
下
还有个技巧,项目中大量资源文件,例如 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 查看表结构
Project
robots.txt config 禁止所有爬虫爬取
Renferences