【grep -v "^#" /etc/inittab | more】查看/etc/inittab文件,并过滤注释行
http://tengine.taobao.org/book/index.html nginx
https://www.w3cschool.cn/timlc/timlc-kzje24yn.html
https://www.cnblogs.com/bluestorm/p/4574688.html
http://www.cnblogs.com/linjiqin/p/5491654.html
https://blog.csdn.net/a19860903/article/details/49890013
https://blog.csdn.net/cheetahlover/article/details/78845553
https://blog.csdn.net/vanilla_he/article/details/79257884
https://blog.csdn.net/zll_0405/article/details/80501898
https://blog.csdn.net/u010921373/article/details/71038509
https://blog.csdn.net/kepoon/article/details/73253059
https://blog.csdn.net/m0_37681914/article/details/76599596 JDK安装
1.安装zlib-devel、pcre-devel等依赖包
# yum -y install gcc gcc-c++ make libtool zlib zlib-devel openssl openssl-devel pcre pcre-devel
2.创建nginx程序用户
# useradd -s /sbin/nologin www
-s:指定用户登入后所使用的shell。默认值为/sbin/nologin。
语法 nologin 实例 Linux禁止用户登录: 禁止用户登录后,用户不能登录系统,但可以登录ftp、SAMBA等
3.安装nginx
下载命令:wget http://nginx.org/download/nginx-1.12.2.tar.gz
解压:# tar -zxf nginx-1.12.2.tar.gz
进入nginx:# cd nginx-1.12.2/
进行配置(在此将Nginx安装指向/usr/local/nginx/ 目录下):
./configure --prefix=/usr/local/nginx1.12 --user=www --group=www --with-http_sub_status_module --with-http_realip_module --with-http_ssl_module --with-http_gzip_static_module --with-pcre --with-http_flv-Module
进行编译和安装:make && make install
优化nginx程序的执行路径,创建软链接:ln -s /usr/local/nginx1.12/sbin/nginx /usr/local/sbin/
检查是否安装成功:# /usr/local/nginx1.12/sbin/nginx -t 或 nginx -t
4.新建nginx服务脚本:# vim /etc/init.d/nginx
#!/bin/bash
# nginx Startup script for the Nginx HTTP Server
# chkconfig: - 85 15
# pidfile: /usr/local/nginx1.12/logs/nginx.pid
# config: /usr/local/nginx1.12/conf/nginx.conf
nginxd=/usr/local/nginx1.12/sbin/nginx
nginx_config=/usr/local/nginx1.12/conf/nginx.conf
nginx_pid=/usr/local/nginx1.12/logs/nginx.pid
RETVAL=0
prog="nginx"
# Source function library.
. /etc/rc.d/init.d/functions
# Start nginx daemons functions.
start() {
if [ -f $nginx_pid ] ; then
echo "nginx already running...."
exit 1
fi
echo -n "Starting $prog: "
$nginxd -c ${nginx_config}
RETVAL=$?
[ $RETVAL = 0 ] && touch /var/lock/subsys/nginx
}
# Stop nginx daemons functions.
stop() {
echo -n "Stopping $prog: "
$nginxd -s stop
RETVAL=$?
[ $RETVAL = 0 ] &&rm -f /var/lock/subsys/nginx
}
# reloadnginx service functions.
reload() {
echo -n "Reloading $prog: "
$nginxd -s reload
}
# statusngnx service functions
status() {
if [ -f $nginx_pid ] ; then
echo "$prog is running"
else
echo "$prog is stop"
fi
}
case "$1" in
start)
start
;;
stop)
stop
;;
reload)
reload
;;
restart)
stop
start
;;
status)
status
;;
*)
echo "Usage: $prog {start|stop|restart|reload|status}"
exit 1
;;
esac
# chmod +x /etc/init.d/nginx :添加可执行属性
# chkconfig --add nginx:将nginx服务加入chkconfig管理列表
# chkconfig nginx on:设置终端模式开机启动
# systemctl daemon-reload:刚刚配置的服务需要让systemctl能识别,就必须刷新配置
5.配置nginx反向代理:反向代理+负载均衡+健康探测
nginx.conf文件内容:# cat /usr/local/nginx1.12/conf/nginx.conf
配置Nginx多核CPU:4核CPU,开户4个进程
worker_processes 4;
worker_cpu_affinity 0001 0010 0100 1000;
worker_rlimit_nofile:为nginx工作进程改变打开最多文件描述符数目的限制。用来在不重启主进程的情况下增加限制。
use epoll;
#使用epoll的I/O 模型(值得注意的是如果你不知道Nginx该使用哪种轮询方法的话,它会选择一个最适合你操作系统的)
补充说明:
与apache相类,nginx针对不同的操作系统,有不同的事件模型
A)标准事件模型
Select、poll属于标准事件模型,如果当前系统不存在更有效的方法,nginx会选择select或poll
B)高效事件模型
Kqueue:使用于FreeBSD 4.1+, OpenBSD 2.9+, NetBSD 2.0 和 MacOS X.使用双处理器的MacOS X系统使用kqueue可能会造成内核崩溃。
Epoll:使用于Linux内核2.6版本及以后的系统。
/dev/poll:使用于Solaris 7 11/99+, HP/UX 11.22+ (eventport), IRIX 6.5.15+ 和 Tru64 UNIX 5.1A+。
Eventport:使用于Solaris 10. 为了防止出现内核崩溃的问题, 有必要安装安全补丁server_tokens off;server_tokens默认值是on,表示显示版本信息,设置server_tokens值是off,就可以在所有地方隐藏nginx的版本信息。
6.重启nginx服务,使修改生效
# service nginx restart
# systemctl start nginx.service 启动nginx服务
# systemctl stop nginx.service 停止服务
# systemctl restart nginx.service 重新启动服务
# systemctl list-units --type=service 查看所有已启动的服务
# systemctl status nginx.service 查看服务当前状态
# systemctl enable nginx.service 设置开机自启动
# systemctl disable nginx.service 停止开机自启动
Job for nginx.service failed because the control process exited with error code. See "systemctl status nginx.service" and "journalctl -xe" for details.
# systemctl status nginx.service:查看出错原因
# systemctl status nginx.service -l:查看错误的详情
# nginx -t :检查配置文件是否正确,并修改
# ./sbin/nginx -V : 可以看到编译选项
查看nginx进程命令:ps -ef | grep nginx
# chmod +x /web:添加root目录的执行权限
7.安装jdk
下载:# wget --no-cookies --no-check-certificate --header "Cookie: gpw_e24=http%3A%2F%2Fwww.oracle.com%2F; oraclelicense=accept-securebackup-cookie" "http://download.oracle.com/otn-pub/java/jdk/8u141-b15/336fa29ff2bb4ef291e347e091f7f4a7/jdk-8u141-linux-x64.tar.gz"
解压缩:# tar -zxf jdk-8u141-linux-x64.tar.gz
将解压的jdk-8u141-linux-x64目录移致动到/usr/local/下并重命名为java:# mv jdk1.8.141/ /usr/local/java
在/etc/profile文件中添加内容如下:
export JAVA_HOME=/usr/local/java
export PATH=$JAVA_HOME/bin:$PATH
通过source命令执行profile文件,使其生效:# source /etc/profile
检查路径:# echo $PATH
检查Java版本:# java -version
8.安装tomcat
下载:# wget http://mirror.bit.edu.cn/apache/tomcat/tomcat-8/v8.5.32/bin/apache-tomcat-8.5.32.tar.gz
解压:# tar -zxf apache-tomcat-8.5.32.tar.gz
将解压生成的文件夹移动到/usr/local/下,并改名为tomcat8:# mv apache-tomcat-8.5.32 /usr/local/tomcat8
配置tomcat环境变量/etc/profile文件内容如下:
export JAVA_HOME=/usr/local/java
export CATALINA_HOME=/usr/local/tomcat8
export PATH=$JAVA_HOME/bin:$CATALINA_HOME/bin:$PATH
通过source命令执行profile文件,使其生效:# source /etc/profile
查看PATH路径:# echo $PATH
查看tomcat的版本信息:# catalina.sh version
启动tomcat:# /usr/local/tomcat8/bin/startup.sh关闭tomcat:# /usr/local/tomcat8/bin/shutdown.sh
修改配置文件# vim /usr/local/tomcat8/conf/server.xml
防火墙规则配置:# firewall-cmd --permanent --add-port=8080/tcp
9.在 /usr/local 下部署两个Tomcat
复制tomcat8,重命名为:tomcat8-1
编辑环境变量:vi /etc/profile
加入以下代码(tomcat路径要配置自己实际的tomcat安装目录)
#tomcat
CATALINA_BASE=/usr/local/tomcat8
CATALINA_HOME=/usr/local/tomcat8
TOMCAT_HOME=/usr/local/tomcat8
export CATALINA_BASE CATALINA_HOME TOMCAT_HOME
#tomcat1
CATALINA_2_BASE=/usr/local/tomcat8_2
CATALINA_2_HOME=/usr/local/tomcat8_2
TOMCAT_2_HOME=/usr/local/tomcat8_2
export CATALINA_2_BASE CATALINA_2_HOME TOMCAT_2_HOME
使之生效:source /etc/profile
打开catalina.sh ,找到下面红字,
# OS specific support. $var _must_ be set to either true or false.
在下面增加如下代码
export CATALINA_BASE=$CATALINA_2_BASE
export CATALINA_HOME=$CATALINA_2_HOME
来到第二个tomcat的conf目录下
打开server.xml更改端口:
修改server.xml配置和第一个不同的启动、关闭监听端口。
修改后示例如下:
maxThreads="150" minSpareThreads="25" maxSpareThreads="75"
enableLookups="false" redirectPort="8443" acceptCount="100"
connectionTimeout="20000" disableUploadTimeout="true" />
enableLookups="false" redirectPort="8443" protocol="AJP/1.3" />
分别进入两个tomcat的bin目录,启动tomcat--./startup.sh
打开浏览器分别对tomcat和tomcat-2访问测试
192.168.6.22:8080192.168.6.22:8081
Tomcat默认运行在8080端口,运行netstat命令查看8080端口监听的信息:# netstat -anpt | grep java
# catalina.sh config test
用浏览器访问nginx主机,验证负载均衡:192.168.6.22
linux中查看IP命令:ifconfig -a
如何在Linux下查找文件内容包含某个特定字符串的文件
find ./ name "*.*" | xargs grep "要查询的特定字符串"
10.配置tomcat通过redis实现会话保持
下载redis源码:# wget http://download.redis.io/releases/redis-4.0.10.tar.gz
阿里redis连接不通:# wget -c http://download.redis.io/redis-stable.tar.gz redis-4.0.10.tar.gz
github:https://github.com/antirez/redis
解压安装redis:# tar zxf redis-4.0.10.tar.gz
开始安装:
# cd redis-4.0.10/
# make && make install
切换到utils目录下,执行redis初始化脚本install_server.sh:
# cd utils/
# ./install_server.sh
通过上面的安装过程,我们可以看出redis初始化后redis配置文件为/etc/redis/6379.conf,日志文件为/var/log/redis_6379.log,数据文件dump.rdb存放到/var/lib/redis/6379目录下,启动脚本为/etc/init.d/redis_6379
使用systemd,所以在 /etc/systemd/system 下创建一个单位文件名字为 redis_6379.service
# vi /etc/systemd/system/redis_6379.service
内容
[Unit]
Description=Redis on port 6379
[Service]
Type=forking
ExecStart=/etc/init.d/redis_6379 start
ExecStop=/etc/init.d/redis_6379 stop
[Install]
WantedBy=multi-user.target
启动redis
刷新配置:# systemctl daemon-reload,如果没有权限可以使用sudo:$ sudo systemctl daemon-reload
redis服务加入开机启动:$ systemctl enable redis
禁止开机启动:$ systemctl disable redis
启动redis:$ systemctl start redis
重启redis:$ systemctl restart redis
停止redis:$ systemctl stop redis
查看状态:# systemctl status redis_6379.service
查看redis版本:# redis-cli --version
配置redis
设置redis监听的地址,添加监听redis主机的ip
考虑到安全性,我们需要启用redis的密码验证功能requirepass参数
# grep -Ev '^#|^$' /etc/redis/6379.conf
bind 127.0.0.1 192.168.6.20
requirepass pwd@123
重新启动redis服务:# systemctl restart redis_6379.service
查看端口:# netstat -anpt | grep redis
启动redis并进行简单的操作
连接redis服务器:# redis-cli -h 192.168.6.20 -p 6379 -a pwd@123
查看redis所有的键值对:keys *
添加一个键值name:set name yn
查看name这个键值的内容:get name
配置tomcat session redis同步
下载tomcat-redis-session-manager相应的jar包,主要有三个
tomcat-redis-session-manage-tomcat8.jar
jedis-2.5.2.jar
commons-pool2-2.2.jar
参考下载地址:https://blog.csdn.net/lipc_/article/details/52766884
https://github.com/cc-chen/tomcat8.0-redis-session-manager
添加下面的配置到tomcat的context.xml中
tomcat8.0-redis-session-manager.jar:wget https://github.com/cc-chen/tomcat8.0-redis-session-manager/raw/master/output/tomcat8.0-redis-session-manager.jar
jedis-2.5.2.jar :wget https://github.com/cc-chen/tomcat8.0-redis-session-manager/blob/master/lib/jedis-2.5.2.jar
commons-pool2-2.2.jar: wget https://github.com/cc-chen/tomcat8.0-redis-session-manager/blob/master/lib/commons-pool2-2.2.jar
11.Linux下mysql5.6.33安装配置教程
https://www.jb51.net/article/111401.htm
https://www.jb51.net/article/102621.htm 推荐
#mysql -u root -p未找到命令;#加入环境变量export PATH=$PATH:/usr/local/mysql
//bin
source /etc/profile
access denied for user root @localhost
给mysql用户设置密码,输入命令:passwd mysql
linux mysql操作命令:http://www.cnblogs.com/xiaochaohuashengmi/archive/2011/10/18/2216279.html