一、常用命令
Linux的五个查找命令:find,locate,whereis,which,type
1、find
$ find <指定目录> <指定条件> <指定动作>
find . -name "my*" -ls
// 搜索当前目录中,所有文件名以my开头的文件,并显示它们的详细信息。
find . -type f -mmin -10
// 搜索当前目录中,所有过去10分钟中更新过的普通文件。如果不加-type f参数,则搜索普通文件+特殊文件+目录。
2、locate
locate /etc/sh
// 搜索etc目录下所有以sh开头的文件
locate -i ~/m
// 搜索用户主目录下,所有以m开头的文件,并且忽略大小写。
3、whereis
只能用于程序名的搜索
eg: whereis grep
4、which
在PATH变量指定的路径中,搜索某个系统命令的位置,并且返回第一个搜索结果)
eg: which grep
5、type
用来区分某个命令到底是由shell自带的,还是由shell外部的独立二进制文件提供的
type grep
二、java
1、jdk 安装
安装后地址一般在 /Library/Java/JavaVirtualMachines/jdk1.8.0_25.jdk/Contents/Home
2、环境变量
修改 ~/.profile
,加上
export JAVA_HOME=/Library/Java/JavaVirtualMachines/jdk1.8.0_25.jdk/Contents/Home
export PATH=$PATH:$JAVA_HOME/bin
export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
三、几个lib
1、openssl(apr需要的openssl版本在1.0.2之上)
-
which openssl
查看本机安装地址,删除旧版本 - 前往openssl下载较新版本,解压并进入目录
-
./Configure darwin64-x86_64-cc
(如果不是64位则略过) ./config --prefix=/usr/local/openssl -fPIC
sudo make
sudo make install
sudo ln -s /usr/local/openssl/bin/openssl /usr/bin/openssl
2、APR(在IDEA中启动tomcat会用到)
- 下载 apr apr-iconv apr-util & 解压
- 进入apr目录,
./configure --prefix=/usr/local/apr & make & make install
- 进入apr-iconv目录,
./configure --prefix=/usr/local/apr-iconv --with-apr=/usr/local/apr & make & make install
- 进入apr-util目录,
./configure --prefix=/usr/local/apr-util --with-apr=/usr/local/apr --with-apr-iconv=/usr/local/apr-iconv/bin/apriconv & make & make install
- 进入 tomcat /bin 下的 tomcat-native 目录
./configure --with-apr=/usr/local/apr --with-ssl=/usr/local/openssl & make & make install
- 修改 ~/.profile,加上
export LD_LIBRARY_PATH=/usr/local/apr/lib
注意:
1)安装tomcat-native 的时候一定要带上 --with-ssl=/usr/local/openssl
,否则出错Failed to initialize the SSLEngine. org.apache.tomcat.jni.Error: 70023: This function has not been implemented on this platform
2)如果安装后在执行sh catalina.sh run
时仍然报错
[main]org.apache.catalina.core.AprLifecycleListener.lifecycleEvent The APR based Apache Tomcat Native library which allows optimal performance in production environments was not found on the java.library.path: [xxx:/Library/Java/Extensions:/Network/Library/Java/Extensions:/System/Library/Java/Extensions:/usr/lib/java:.]
, 把 apr 加到路径中即可
sudo ln -s /usr/local/apr/lib/libtcnative-1.dylib /Library/Java/Extensions/
四、nginx & tomcat
1、 nginx
安装:brew install nginx
检查安装是否成功:nginx -V
查看路径:which nginx
启动:sudo nginx
使用指定配置文件启动:sudo nginx -c /opt/nginx/1.6.2/conf/nginx.conf
关闭:sudo nginx -s stop
优雅关闭(旧的请求完成后才退出):sudo nginx -s quit
重载配置文件:sudo nginx -s reload
测试配置是否有语法错误:sudo nginx -t
查看启动进程:ps -ef|grep nginx
浏览器打开:http://localhost:8080/
nginx.conf 地址一般是:/usr/local/etc/nginx/nginx.conf
2、tomcat
装了两个 tomcat, 地址如下:
/somefolder/apache-tomcat-8-no1
/somefolder/apache-tomcat-8-no2
修改./conf/目录下的 server.xml 文件,port 分别改为 81xx 和 82xx。
启动tomcat:
sh /somefolder/apache-tomcat-8-no1/bin/startup.sh
sh /somefolder/apache-tomcat-8-no2/bin/startup.sh
关闭tomcat:
sh /somefolder/apache-tomcat-8-no1/bin/shutdown.sh
sh /somefolder/apache-tomcat-8-no2/bin/shutdown.sh
浏览器打开:
- http://localhost:8180/
- http://localhost:8280/
3、用 nginx 做 tomcat 的反向代理
编辑 /usr/local/etc/nginx/nginx.conf
a. 在 http 下面加上
upstream localhost {
#ip_hash; # 用户的 IP 来 hash 的方式,这样每个 client 的访问请求都会被甩给同一个后端服务器
server localhost:8180;
server localhost:8280;
}
b. 在 http -> server 下面加上
location / {
root html;
index index.html index.htm;
proxy_pass http://localhost; // 对应上面添加的 upstream localhost
proxy_set_header X-Real-IP $remote_addr; // 获取用户的真实ip,如果不设置的话,开启反向代理后,request.getRemoteAddr() 取到的是 nginx 的 ip 地址
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; // 增加一个 $proxy_add_x_forwarded_for 到请求头里的 X-Forwarded-For 中去,
proxy_redirect HOST default;
}
遇到的问题:
- 在mac的Nginx环境中,修改了配置文件,重启或停止服务报了如下错误:
nginx: [error] invalid PID number "" in "/usr/local/var/run/nginx.pid"
解决方法:sudo pkill -9 nginx
4、网站动静分离
静态资源(HTML,JavaScript,CSS,img等文件)放到nginx中,动态资源转发到tomcat服务器中。
编辑 /usr/local/etc/nginx/nginx.conf
//动态资源
location ~ \.(jsp|jspx|do|action)(\/.*)?$ { //动态请求转发到tomcat服务器,匹配方式可自定义
#设置真实ip
proxy_set_header real_ip $remote_addr; //real_ip 设置变量名,可以通过web端获取
proxy_pass http://127.0.0.1:8080;
}
//静态资源
location ~ .*\.(js|css|htm|html|gif|jpg|jpeg|png|bmp|swf|ioc|rar|zip|txt|flv|mid|doc|ppt|pdf|xls|mp3|wma)$ { //静态资源到nginx服务器下static(具体目录自定义)获取
root static;
}
在nginx下创建static文件夹
mkdir /usr/local/etc/nginx/static
并且拷贝静态资源到static下