Nginx
Nginx (engine x) 是一个高性能的HTTP和反向代理web服务器,同时也提供了IMAP/POP3/SMTP服务。
1. 安装
1.1 win安装
-
去到Nginx官网:http://nginx.org/ ,然后点击“download”
-
windows 解压,并运行。
如果出现弹出框闪一下就消失,则通过命令行,跳转到nginx.exe 目录,执行nginx.exe 即可
-
注意:
windows下多次点击nginx.exe 可能会执行多个,修改nginx.conf会不生效 【20230506】
1.2 linux 安装
# 1. 安装依赖包
yum -y install gcc zlib zlib-devel pcre-devel openssl openssl-devel
# 2. 下载并解压安装包
# 创建一个文件夹
cd /usr/local
mkdir nginx
cd nginx
# 下载稳定版本 tar包
wget http://nginx.org/download/nginx-1.22.1.tar.gz
tar -xvf nginx-1.22.1.tar.gz
# 3. 安装nignx
# 进入nginx目录
cd /usr/local/nginx
# 进入目录
cd nginx-1.22.1
# 执行命令 考虑到后续安装ssl证书 添加两个模块
./configure --with-http_stub_status_module --with-http_ssl_module
# 执行make命令
make
# 执行make install命令
make install
# 4. 设置nginx环境变量
vim /etc/profile
PATH=$PATH:/user/local/nginx/sbin
export PATH
# 保存文件,并使配置生效
source /etc/profile;
# 5. 启动服务
nginx -c /usr/local/nginx/conf/nginx.conf
# 6. 配置conf文件(可修改端口、改路由等等)
vim /usr/local/nginx/conf/nginx.conf
# 7. 重启并查看nginx 是否启动成功
nginx -s relaod
ps -ef | grep nginx
# 8. 外部主机访问端口,则需要开放指定端口(默认开放80端口)
firewall-cmd --zone=public --add-port=80/tcp --permanent
# 查询㐰是否开启
firewall-cmd --query-port=80/tcp
# 保存防火墙配置(之后可通过外网IP访问)
firewall-cmd --reload
# 其他: 关闭防火墙(危险)
systemctl top firewalld
# 查看端口列表
firewall-cmd --list-port
# 移除端口号
firewall-cmd --zone=public --remove-port=80/tcp --permanent
2. 配置
2.1 基本配置
#配置文件目录: conf目录下
linux: /etc/nginx/conf 目录
# 或者
/user/local/nginx/config 目录
2.2 常见命令
# nginx 常用命令
# 1. 判断文件是否有异常。
nginx -t
# 2. 重启
nginx -s reload
# 3. 停止
nginx -s stop
# 4. 启动
nginx -s start
2.3 缓存
# 1. 启用缓存
location ~ .*\.(gif|jpg|jpeg|png|bmp|swf|js|css)$ {
#设置缓存上面定义的后缀文件缓存到浏览器的生存时间
expires 3d;
}
# 2. 禁用缓存
location ~ .*\.(gif|jpg|jpeg|png|bmp|swf|js|css)$ {
#禁止缓存,每次都从服务器请求
add_header Cache-Control no-store;
}
# 2.1 按时间处理
location / {
#如果expires 和 add_header 同时开启的情况下,则add_header优于expires生效
#Cache-Control比Expires可以控制的多一些, 而且Cache-Control会重写Expires的规则
#设置禁止浏览器缓存,每次都从服务器请求
add_header Cache-Control no-cache;
add_header Cache-Control private;
#设置缓存上面定义的后缀文件缓存到浏览器的生存时间
expires -1s;
}
# 2.2 失效因素
# http 请求头: 静态页面 https://my.oschina.net/foxidea/blog/99114
Cache-Control:
private,max-age=3600
# 如果是动态的 需要设置 http 头 Last-Modified
Cache-Control:
private,max-age=3600
# 可以控制 nginx 经过 3600 秒之后 重新请求源服务器生成缓存
# nginx 原理分析