对于我们后台开发人员来说,很多时候去了公司第一件事就是安装各种环境,有的是用在电脑上,有的是在虚拟机上面,电脑上面的一般都比较好装,虚拟机上面很多就是通过命令,一般情况,换一次工作使用一次,不知道有多少人能记得比较清楚,反正我是不记得的。所以写一点自己在自己虚拟机上面的搭建方式,哪天忘记了再来看看。当然百度一下也有一大堆的。我自己记一下加深一下印象吧。
首先我们的java,不说了,记得设置环境变量就可以了。win7在高级系统设置->环境变量->%JAVA_HOME%\bin; JAVA_HOME就是jdk的安装目录了,这样在任何目录下都可以执行java相关命令了,话说我没有专门配置classpath也运行的挺好的,所以我一直没有配。。。 mac的话稍微麻烦点,因为是仿linux的,所以需要命令进行打开/etc/profile文件,输入path和classpath内容,看这个链接吧https://www.cnblogs.com/zjx2711904647/p/7735556.html;
IDEA大家可能用习惯了eclipse之后不喜欢换这个,但是只要你熟悉了这个之后,你一定不喜欢再用eclipse了,比如我,用了半年就很不喜欢eclipse了,尴尬。关于破解版,我有一个方法,如下:(mac版)
下载旗舰版 https://www.jetbrains.com/idea/download/#section=mac
解压缩安装,启动IDEA一次。
访问 http://idea.lanyus.com ,下载JetbrainsCrack-2.7-release-str.jar
将JetbrainsCrack-2.7-release-str.jar 放置到 IDEA/Contents/bin 文件夹下面
编辑idea.vmoptions, 增加一行:
-javaagent:JetbrainsCrack-2.7-release-str.jar
重新启动IDEA
填入http://idea.lanyus.com 上面的注册码,注册后重启。
mysql:有两篇挺好的文章,分享一下,我win7和mac各装过一次,都是百度的,快忘光了。https://www.cnblogs.com/sshoub/p/4321640.html;https://www.cnblogs.com/chengxs/p/5986095.html;https://blog.csdn.net/u012721519/article/details/55002626(这个用来卸载了,mac版,我没干过)
好了,下面才是我想说的关于在linux下装的东西,nginx,tomcat,redis单机和集群,zookeeper单机和集群。
nginx:(有点杂乱,因为很多都是我以前的笔记复制的)
首先这个是c语言开发的,先yum –y install gcc-c++ 安装c的环境,然后安装pcre用于正则解析http模块,yum install -y pcre pcre-devel,还有http内容的压缩格式,gzip解压和压缩,yum install -y zlib zlib-devel。最后就是https的ssl密钥相关东西了,yum install -y openssl openssl-devel,这些都是基本环境的搭建。之后开始nginx的搭建;
上传,解压都不用重复了,之后就是nginx的一些配置了,有点多,建议初学者复制,参数设置如下:
./configure \
--prefix=/usr/local/nginx \
--pid-path=/var/run/nginx/nginx.pid \
--lock-path=/var/lock/nginx.lock \
--error-log-path=/var/log/nginx/error.log \
--http-log-path=/var/log/nginx/access.log \
--with-http_gzip_static_module \
--http-client-body-temp-path=/var/temp/nginx/client \
--http-proxy-temp-path=/var/temp/nginx/proxy \
--http-fastcgi-temp-path=/var/temp/nginx/fastcgi \
--http-uwsgi-temp-path=/var/temp/nginx/uwsgi \
--http-scgi-temp-path=/var/temp/nginx/scgi
注意:上边将临时文件目录指定为/var/temp/nginx,需要在/var下创建temp及nginx目录
mkdir -p /var/temp/nginx。。。之后编译安装,make make install,安装完成就是在sbin目录下直接启动nginx了。注意:执行./nginx启动nginx,这里可以-c指定加载的nginx配置文件,如下:./nginx -c /usr/local/nginx/conf/nginx.conf。如果不指定-c,nginx在启动时默认加载conf/nginx.conf文件,此文件的地址也可以在编译安装nginx时指定./configure的参数(--conf-path= 指向配置文件(nginx.conf))。
停止和重启nginx,./nginx -s quit(不要使用stop,那样会将正在执行的任务直接kill),重启:建议先quit再启动,reload是用于重新加载配置的。
配置虚拟主机,修改/usr/local/nginx/conf/nginx.conf文件,添加两个虚拟主机,如下:
#配置虚拟主机aaa.test.com
server {
#监听的ip和端口,配置本机ip和端口
listen 192.168.101.3:80;
#虚拟主机名称是aaa.test.com,请求域名aaa.test.com的url将由此server配置解析
server_name aaa.test.com;
#所有的请求都以/开始,所有的请求都可以匹配此location
location / {
#使用root指令指定虚拟主机目录即网页存放目录
#比如访问http://ip/test.html将找到/usr/local/aaa_html/test.html
#比如访问http://ip/item/test.html将找到/usr/local/aaa_html/item/test.html
root /usr/local/aaa_html;
#指定欢迎页面,按从左到右顺序查找
index index.html index.htm;
}
}
#配置虚拟主机bbb.test.com
server {
listen 192.168.101.3:80;
server_name bbb.test.com;
location / {
root /usr/local/bbb_html;
index index.html index.htm;
}
}
最后配置两个tomcat反向代理
#配置一个代理即tomcat1服务器
upstream tomcat_server1 {
server 192.168.101.5:8080;
}
#配置一个代理即tomcat2服务器
upstream tomcat_server2 {
server 192.168.101.6:8080;
}
#配置一个虚拟主机
server {
listen 80;
server_name aaa.test.com;
location / {
#域名aaa.test.com的请求全部转发到tomcat_server1即tomcat1服务上
proxy_pass http://tomcat_server1;
#欢迎页面,按照从左到右的顺序查找页面
index index.jsp index.html index.htm;
}
}
server {
listen 80;
server_name bbb.test.com;
location / {
#域名bbb.test.com的请求全部转发到tomcat_server2即tomcat2服务上
proxy_pass http://tomcat_server2;
index index.jsp index.html index.htm;
}
}
负载均衡配置,根据上边的需求在nginx.conf文件中配置负载均衡,如下:
upstream tomcat_server_pool{
server 192.168.101.5:8080 weight=10;
server 192.168.101.6:8080 weight=10;
}
server {
listen 80;
server_name aaa.test.com;
location / {
proxy_pass http://tomcat_server_pool;
index index.jsp index.html index.htm;
}
}
配置nginx的高可用,主备 ,首先需要keepalived的软件用于心跳检测,rpm –ivh keepalived-1.2.13-5.el6_6.i686.rpm。。之后配置keepalived。
修改主nginx下/etc/keepalived/keepalived.conf文件
! Configuration File for keepalived
#全局配置
global_defs {
notification_email { #指定keepalived在发生切换时需要发送email到的对象,一行一个
XXX@XXX.com
}
notification_email_from XXX@XXX.com #指定发件人
#smtp_server XXX.smtp.com #指定smtp服务器地址
#smtp_connect_timeout 30 #指定smtp连接超时时间
router_id LVS_DEVEL #运行keepalived机器的一个标识
}
vrrp_instance VI_1 {
state MASTER #标示状态为MASTER 备份机为BACKUP
interface eth0 #设置实例绑定的网卡
virtual_router_id 51 #同一实例下virtual_router_id必须相同
priority 100 #MASTER权重要高于BACKUP 比如BACKUP为99
advert_int 1 #MASTER与BACKUP负载均衡器之间同步检查的时间间隔,单位是秒
authentication { #设置认证
auth_type PASS #主从服务器验证方式
auth_pass 8888
}
virtual_ipaddress { #设置vip
192.168.101.100 #可以多个虚拟IP,换行即可
}
}
[if !supportLists]1.1.1.1 [endif]备nginx
修改备nginx下/etc/keepalived/keepalived.conf文件
配置备nginx时需要注意:需要修改state为BACKUP , priority比MASTER低,virtual_router_id和master的值一致
! Configuration File for keepalived
#全局配置
global_defs {
notification_email { #指定keepalived在发生切换时需要发送email到的对象,一行一个
XXX@XXX.com
}
notification_email_from XXX@XXX.com #指定发件人
#smtp_server XXX.smtp.com #指定smtp服务器地址
#smtp_connect_timeout 30 #指定smtp连接超时时间
router_id LVS_DEVEL #运行keepalived机器的一个标识
}
vrrp_instance VI_1 {
state BACKUP #标示状态为MASTER 备份机为BACKUP
interface eth0 #设置实例绑定的网卡
virtual_router_id 51 #同一实例下virtual_router_id必须相同
priority 99 #MASTER权重要高于BACKUP 比如BACKUP为99
advert_int 1 #MASTER与BACKUP负载均衡器之间同步检查的时间间隔,单位是秒
authentication { #设置认证
auth_type PASS #主从服务器验证方式
auth_pass 8888
}
virtual_ipaddress { #设置vip
192.168.101.100 #可以多个虚拟IP,换行即可
}
}
因为有可能出现nginx全部挂掉,但是keepalived没有挂掉的情况,这个可以写一个脚本,#!/bin/bash
#如果进程中没有nginx则将keepalived进程kill掉
A=`ps -C nginx --no-header |wc -l` ##查看是否有 nginx进程 把值赋给变量A
if [ $A -eq 0 ];then ##如果没有进程值得为 零
service keepalived stop ##则结束 keepalived 进程
fi 然后拷贝到/etc/keepalived下,即可。
修改主nginx的keepalived.conf,添加脚本定义检测:
注意下边红色标识地方:
#全局配置
global_defs {
notification_email { #指定keepalived在发生切换时需要发送email到的对象,一行一个
XXX@XXX.com
}
notification_email_from miaoruntu@itcast.cn #指定发件人
#smtp_server XXX.smtp.com #指定smtp服务器地址
#smtp_connect_timeout 30 #指定smtp连接超时时间
router_id LVS_DEVEL #运行keepalived机器的一个标识
}
vrrp_script check_nginx {
script "/etc/keepalived/check_nginx.sh" ##监控脚本
interval 2 ##时间间隔,2秒
weight 2 ##权重
}
vrrp_instance VI_1 {
state MASTER #标示状态为MASTER 备份机为BACKUP
interface eth0 #设置实例绑定的网卡
virtual_router_id 51 #同一实例下virtual_router_id必须相同
priority 100 #MASTER权重要高于BACKUP 比如BACKUP为99
advert_int 1 #MASTER与BACKUP负载均衡器之间同步检查的时间间隔,单位是秒
authentication { #设置认证
auth_type PASS #主从服务器验证方式
auth_pass 8888
}
track_script {
check_nginx #监控脚本
}
virtual_ipaddress { #设置vip
192.168.101.100 #可以多个虚拟IP,换行即可
}
}
修改后重启keepalived;
还有缓存配置,不写了,因为上次不了文件。。我这个已经很难看了,所以再写点其他的好了。