学习nginx,就要先了解什么是nginx,为什么使用nginx,最后才是了解怎么使用nginx
nginx简介 nginx是一个高性能的HTTP和反向代理Web服务器,还支持正向代理、透明代理、负载均衡、HTTP缓存等功能。nginx始于2004年10月4日,使用C语言编写,2013年4月24日,nginx发布了v1.4.0稳定版,建议大家使用的版本高于此版本。
免费开源的nginx能够在众多同类产品中脱颖而出,是因为它具备低内存、高并发的优势,且配置简单,支持URL重写、GZIP,内置健康检查,能自动检测集群服务器状态,跳过宕机服务器。 nginx安装 一、Linux中安装nginx 1.安装编译工具和库文件 yum -y install make pcre pcre-devel zlib zlib-devel gcc-c++ libtool openssl openssl-devel 2.下载nginx并安装
nginx下载地址:
cd /usr/local/src/ # 下载特定版本 nginx 压缩包,这里以v1.18.0为例 wget # 解压 tar -zxvf nginx-1.18.0.tar.gz # 进入到 nginx-1.18.0 目录下 cd nginx-1.18.0/ # 生成 Makefile ./configure # 编译并且安装(默认输出到/usr/local/nginx,可在configure中看到) make && make install如果想要编译输出到指定目录
# 设置编译输出目录为 /home/jjj/nginx ./configure --prefix=http://www.likecs.com/home/jjj/nginx # 编译并且安装(输出到/home/jjj/nginx) make && make install 3.防火墙开放端口号开放端口号外网才可访问
练习期间,推荐将防火墙关闭,避免因其导致无法访问而卡住:systemctl stop firewalld.service
# 开启 80 firewall-cmd --zone=public --add-port=80/tcp --permanent # 重启防火墙 firewall-cmd --reload # 查询端口号80是否开启 firewall-cmd --query-port=80/tcp # 查询哪些端口已开启 firewall-cmd --list-port 4.自己动手测试一下能否访问吧启动nginx(命令要在nginx安装目录的sbin目录下执行)
在浏览器中输入nginx所在的主机ip
/usr/local/nginx/sbin/nginx # 启动nginx /usr/local/nginx/sbin/nginx -s reload # 重新加载nginx配置 /usr/local/nginx/sbin/nginx -s stop # 快速关闭nginx(先查出nginx进行id,然后使用kill命令强制杀死进程),可能不保存相关信息(不推荐) /usr/local/nginx/sbin/nginx -s quit # 平稳关闭nginx,保存相关信息(推荐) /usr/local/nginx/sbin/nginx -s reopen # 重新打开日志文件 /usr/local/nginx/sbin/nginx -s <filename> # 为 nginx 指定一个配置文件 /usr/local/nginx/sbin/nginx -t # 不运行,仅测试配置文件正确性 /usr/local/nginx/sbin/nginx -v # 显示nginx版本 /usr/local/nginx/sbin/nginx -V # 显示 nginx 的版本,编译器版本和配置参数 netstat -anput | grep nginx # 检测 nginx 运行状态(如无任何信息显示则是未运行) 4.配置开机启动关机重启了你不会想自己动手再启动一遍nginx吧?
新建 nginx.service 文件
vim /usr/lib/systemd/system/nginx.service然后在文件中添加以下配置
配置详情参考:https://www.cnblogs.com/yyxianren/articles/10677332.html
# 服务说明项 [Unit] # 描述 Description=nginx # 在哪些服务启动之后启动该服务,多个服务用空格隔开 After=network.target # 在哪些服务启动之前启动该服务 # Before=xxx # 弱依赖,如果xxx服务启动失败或停止运行,不影响该服务 # Wants=xxx # 强依赖,如果xxx服务启动失败或停止运行,该服务也必须退出 # Requires=xxx # 运行参数设置 [Service] # 启动类型 # simple(默认值):ExecStart字段启动的进程为主进程 # forking:ExecStart字段将以fork()方式启动,此时父进程将会退出,子进程将成为主进程 # oneshot:类似于simple,但只执行一次,Systemd 会等它执行完,才启动其他服务 # dbus:类似于simple,但会等待 D-Bus 信号后启动 # notify:类似于simple,启动结束后会发出通知信号,然后 Systemd 再启动其他服务 # idle:类似于simple,但是要等到其他任务都执行完,才会启动该服务。一种使用场合是为让该服务的输出,不与其他服务的输出相混合 Type=forking # Start命令 ExecStart=http://www.likecs.com/usr/local/nginx/sbin/nginx # Reload命令 ExecReload=http://www.likecs.com/usr/local/nginx/sbin/nginx -s reload # Stop命令 ExecStop=http://www.likecs.com/usr/local/nginx/sbin/nginx -s quit # 是否给服务分配独立的临时空间 PrivateTmp=true # 配置开机启动方式 [Install] # 该服务所在的 Target,Target的含义是服务组,表示一组服务 # multi-user.target 默认被配置为开机启动 WantedBy=multi-user.target纯净版(去除注释)
[Unit] Description=nginx After=network.target [Service] Type=forking ExecStart=http://www.likecs.com/usr/local/nginx/sbin/nginx ExecReload=http://www.likecs.com/usr/local/nginx/sbin/nginx -s reload ExecStop=http://www.likecs.com/usr/local/nginx/sbin/nginx -s quit PrivateTmp=true [Install] WantedBy=multi-user.target