nginx快速认知
nginx常用命令
linux
./nginx //启动
./nginx -s stop //直接停止
./nginx -s quit //优雅停止,如果还有用户在连接,则等用户不连接,再停止
./nginx -s reload //重新加载配置
./nginx -t 查看配置是否正确
window
start nginx.exe ## 启动服务
nginx.exe -s stop ## 快速停止服务
nginx.exe -s quit ## 优雅的 停止服务
nginx.exe -s reload ## 重新加载 配置文件,这命令可以不用停止nginx
nginx.exe -s reopen ## 重新打开日志文件
vim常用命令
vim nginx.conf //查看文件
i //编辑文件
:wq //保存文件并退出vim
:q! //不保存文件并退出vim
:w //只保存文件,但不退出viw
:q //退出vim
查看nginx进程
ps -ef | grep nginx
配置核心进程数量
./nginx -t
修改nginx.conf
vim nginx.conf
i
:wq
重新加载nginx,并查看
../sbin/nginx -s reload
ps -ef | grep nginx
日志切割
现有的日志都会存在 access.log 文件中,但是随着时间的推移,这个文件的内容会越来越多,体积会越来越大,不便于运维人员查看,所以我们可以通过把这个大的日志文件切割为多份不同的小文件作为日志,切割规则可以以天为单位,如果每天有几百G或者几个T的日志的话,则可以按需以每半天或者每小时对日志切割一下。
手动
1.创建一个shell可执行文件:cut_my_log.sh,
cd /usr/local/nginx/sbin
vim cut_my_log.sh
粘贴如下内容
#!/bin/bash
LOG_PATH="/var/log/nginx"
RECORD_TIME=$(date -d "yesterday" +%Y-%m-%d+%H:%M)
PID=/var/run/nginx/nginx.pid
mv ${LOG_PATH}/access.log ${LOG_PATH}/access.${RECORD_TIME}.log
mv ${LOG_PATH}/error.log ${LOG_PATH}/error.${RECORD_TIME}.log
#向Nginx主进程发送信号,用于重新打开日志文件
kill -USR1 `cat $PID`
2.为cut_my_log.sh添加可执行的权限
chmod +x cut_my_log.sh
- 测试日志切割后的结果
./cut_my_log.sh
定时
- 安装定时任务
yum install crontabs
- 编辑并添加一行新的任务
crontab -e
*/1 * * * * /usr/local/nginx/sbin/cut_my_log.sh
查看当前定时任务列表
crontab -l
- 重启定时任务
service crond restart
使用nginx为静态资源提供服务
静态资源
nginx
nginx.conf
http {
include /usr/local/nginx/conf/imooc.conf;
}
imooc.conf
server{
listen 90;
server_name localhost;
location / {
root /home/foodie-shop;
index index.html;
}
location /imooc {
root /home;
}
location /static {
alias /home/imooc;
}
}
效果
gzip
使用gzip压缩提升请求效率
配置
http {
# 开启gzip压缩功能,目的: 提高传输效率,节约带宽
gzip on;
# 限制最小压缩,小于1字节的文件不会压缩
gzip_min_length 1;
# 定义压缩的级别(压缩比,文件越大,压缩越多,但是cpu使用会越多)
gzip_comp_level 3;
# 定义压缩文件的类型
gzip_types ext/plain application/javascript application/x-javascript text/css application/xml text/javascript application/x-httpd-php image/jpeg image/gif image/png;
}
配置前
配置后
localhost的匹配规则
空格 : 默认匹配、普通匹配
server{
listen 91;
location / {
root /home/foodie-shop;
index index.html;
}
}
“=”:精确匹配(不能匹配该路径下的其他文件)
server{
listen 92;
location =/study/img/face1.png {
root /home;
}
}
“~*”:匹配正则表达式,不区分大小写
server{
listen 93;
location ~* .(GIF|jpg|png|jpeg) {
root /home;
}
}
“~”:匹配正则表达式,区分大小写
server{
listen 94;
location ~ .(GIF|jpg|png|jpeg) {
root /home;
}
}
nginx进阶与实战
跨域配置
浏览器请求
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8" />
<title>Vue 测试实例 - 菜鸟教程(runoob.com)</title>
<script src="https://cdn.staticfile.org/vue/2.7.0/vue.min.js"></script>
<script src="https://cdn.jsdelivr.net/npm/axios@1.6.2/dist/axios.min.js"></script>
</head>
<body>
<div id="app">
<p>{{ message }}</p>
</div>
<script>
new Vue({
el: "#app",
data: {
message: "Hello Vue.js!",
},
mounted() {
axios
.get("http://192.168.153.129:93/study/img/face1.png")
.then((res) => {
console.log("res", res);
});
},
});
</script>
</body>
</html>
配置前
server{
listen 93;
location ~* .(GIF|jpg|png|jpeg) {
root /home;
}
}
配置后
server{
#允许跨域请求的域,*代表所有
add_header 'Access-Control-Allow-Origin' *;
#允许带上cookie请求
add_header 'Access-Control-Allow-Credentials' 'true';
#允许请求的方法,比如 GET/POST/PUT/DELETE
add_header 'Access-Control-Allow-Methods' *;
#允许请求的header
add_header 'Access-Control-Allow-Headers' *;
listen 93;
location ~* .(GIF|jpg|png|jpeg) {
root /home;
}
}
图片防盗链
配置前
只允许某站点能访问
server{
listen 80;
#server_name localhost;
#对源站点验证
valid_referers none blocked www.imooc2.com;
#非法引入会进入下方判断
if ($invalid_referer) {
return 404;
}
location / {
root /home/foodie-shop;
index index.html;
}
location /imooc {
root /home;
}
location /static {
alias /home/imooc;
}
}
使用keepalived提高吞吐量
部署
安装jdk
虚拟机上安装centos7.x
或者centos6.x
,会默认帮你安装好OpenJKD
删除虚拟机自带jdk
rpm -qa | grep openjkd -i
新jdk
1.新建jkd安装目录
mkdir /usr/java
2.上传jdk到指定目录
mkdir /home/software
rz
- 解压jdk压缩包
tar -zxvf jdk-8u202-linux-x64.tar.gz
- 把解压后的jdk移到
/usr/java
mv jdk1.8.0_202/ /usr/java/
5.配置环境变量 修改profile文件
vim /etc/profile
在文件最后新增如下代码块
export JAVA_HOME=/usr/java/jdk1.8.0_202
export CLASSPATH=.:%JAVA_HOME%/lib/dt.jar:%JAVA_HOME%/lib/tools.jar
export PATH=$PATH:$JAVA_HOME/bin
- 刷新profile,使其生效
source /etc/profile
安装tomcat
- 上传tomcat
- 解压tomcat
tar -zxvf apache-tomcat-9.0.83.tar.gz
- 重命名tomcat
mv apache-tomcat-9.0.83 tomcat-frontend
- 把tomcat移到到
/usr/local
mv tomcat-frontend/ /usr/local/
- 进入到tomcat的
bin
目录执行startup.sh
cd /usr/local/tomcat-fontend/bin
./startup.sh
- 访问tomcat默认商品
部署另一台tomcat
- 上传tomcat
- 解压tomcat
tar -zxvf apache-tomcat-9.0.83.tar.gz
- 重命名tomcat
mv apache-tomcat-9.0.83 tomcat-api
- 把tomcat移到到
/usr/local
mv tomcat-api/ /usr/local/
- 修改tomcat配置,解决商品冲突
cd /usr/local/tomcat-api/conf
vim server.xml
- 进入到tomcat的
bin
目录执行startup.sh
cd /usr/local/tomcat-fontend/bin
./startup.sh
windows下操作
start nginx.exe
.\nginx -s stop
.\nginx -s reload
.\nginx -t