目录
前言
Nginx一个具有高性能的【HTTP】和【反向代理】的【WEB服务器】,同时也是一个【POP3/SMTP/IMAP代理服务器】,是由伊戈尔·赛索耶夫(俄罗斯人)使用C语言编写的,Nginx的第一个版本是2004年10月4号发布的0.1.0版本。另外值得一提的是伊戈尔·赛索耶夫将Nginx的源码进行了开源,这也为Nginx的发展提供了良好的保障。
一、Nginx 概述
1.什么是 Nginx
一款高性能、轻量级Web服务软件
稳定性高
系统资源消耗低
对HTTP并发连接的处理能力高
单台物理服务器可支持30 000~50 000个并发请求
2.Nginx并发连接
NG并发连接能力受以下二个因素的影响:
1.CPU个数
2.本地物理服务器系统的最大文件打开数
3.Nginx 应用场景
- 静态服务器(图片,视频服务)
- 动态服务
- 反向代理,负载均衡
- 缓存服务
二、Nginx安装
1. 安装前准备
[root@lamp /opt]#rz -E #上传安装包
rz waiting to receive.
[root@lamp /opt]#ls
nginx-1.12.2.tar.gz rh
[root@lamp /opt]#systemctl stop firewalld.service #关闭防火墙及开机自启功能
[root@lamp /opt]#systemctl status firewalld.service
● firewalld.service - firewalld - dynamic firewall daemon
Loaded: loaded (/usr/lib/systemd/system/firewalld.service; disabled; vendor preset: enabled)
Active: inactive (dead)
Docs: man:firewalld(1)
[root@lamp /opt]#systemctl disable firewalld.service
[root@lamp /opt]#setenforce 0
setenforce: SELinux is disabled
[root@lamp /opt]#vim /etc/resolv.conf #定义DNS服务器的地址
[root@lamp /opt]#cat /etc/resolv.conf
nameserver 114.114.114.114
[root@lamp /opt]#ping baidu.com #确保网络连通
PING baidu.com (220.181.38.251) 56(84) bytes of data.
64 bytes from 220.181.38.251 (220.181.38.251): icmp_seq=1 ttl=128 time=32.0 ms
......
[root@lamp /opt]#hostnamectl set-hostname nginx #更改主机名
[root@lamp /opt]#su
[root@nginx /opt]#
2. 编译安装
- Nginx 的配置及运行需要 pcre、zlib 等软件包的支持
[root@lamp /opt]#yum -y install pcre-devel zlib-devel gcc gcc-c++ make
[root@nginx /opt]#tar zxvf nginx-1.12.2.tar.gz
[root@nginx /opt]#ls
nginx-1.12.2.tar.gz nginx-1.12.2 rh
[root@nginx /opt]#cd nginx-1.12.2/
[root@nginx /opt/nginx-1.12.2]#ls
auto CHANGES CHANGES.ru conf configure contrib html LICENSE man README src
[root@nginx /opt/nginx-1.12.2]#./configure \
> --prefix=/usr/local/nginx \ #指定nginx安装路径
> --user=nginx \ #指定用户名
> --group=nginx \ #指定组名
> --with-http_stub_status_module #启用 httpd_stub_status_module 模块以支持状态统计
./configure --prefix=/usr/local/nginx --user=nginx --group=nginx --with-http_stub_status_module
[root@nginx /opt/nginx-1.12.2]#make -j 4 && make install
- 为了使 Nginx 服务器的运行更方便,可以为主程序 nginx 创建链接文件,以便管理员直接执行 “nginx” 命令就可以调用 Nginx 的主程序
[root@nginx /opt/nginx-1.12.2]#ln -s /usr/local/nginx/sbin/nginx /usr/local/sbin/
[root@nginx /opt/nginx-1.12.2]#ls -l /usr/local/sbin/nginx
lrwxrwxrwx 1 root root 27 9月 30 15:43 /usr/local/sbin/nginx -> /usr/local/nginx/sbin/nginx
- 创建运行用户、组
#Nginx 服务程序默认以nobody身份运行,建议为其创建专门的用户账号,以便更准确的控制其访问权限,增加灵活性、降低安全风险
[root@nginx /opt/nginx-1.12.2]#useradd -M -s /sbin/nologin nginx
#创建一个名为nginx的用户,不建立宿主目录,禁止登录到Shell环境中
3. 检查配置文件
[root@nginx /opt/nginx-1.12.2]#nginx -t
nginx: the configuration file /usr/local/nginx/conf/nginx.conf syntax is ok
nginx: configuration file /usr/local/nginx/conf/nginx.conf test is successful
#若要检查其他位置的配置文件,可以使用"-c"选项来指定路径
4. 启动、停止 Nginx、添加 Nginx 系统服务
- 直接运行 Nginx 即可启动 Nginx 服务器,这种方式将使用默认的配置文件,若要改用其他配置文件,需添加"-c 配置文件路径"选项来指定路径。这里需要注意,如果服务器中已装有 httpd 等其他 Web 服务软件,应修改端口或停用、卸载,以免造成冲突。
nginx #启动服务
- 在浏览器中访问此 Web 服务,可以确认 Nginx 服务是否正常运行,默认页面为 “welcome to nginx!”
[root@nginx /opt/nginx-1.12.2]#yum install -y elinks.x86_64
[root@nginx /opt/nginx-1.12.2]#elinks http://nginx
- 查看 nginx 的 PID 号
[root@nginx /opt/nginx-1.12.2]#cat /usr/local/nginx/logs/nginx.pid
[root@nginx /opt/nginx-1.12.2]#netstat -antp |grep nginx
tcp 0 0 0.0.0.0:80 0.0.0.0:* LISTEN 15693/nginx: maste
- 通过 kill 命令发送 HUP 信息表示重载配置,发送 QUIT 信息表示退出进程,发送 kill 信息表示杀死进程。当Nginx 进程运行时,PID 号默认存放在 logs/ 目录下得 nginx.pid 文件中,因此若使用 kill 命令,可以根据 PID 号进行控制
kill -3 <PID号>
kill -s QUIT <PID号> #-s选项表示指定信号种类
killall -3 nginx
killall -s QUIT nginx #等同于-3
#重载配置
kill -1 <PID号>
kill -s HUP <PID号>
killall -1 nginx
killall -s HUP nginx #等同于-1
注意,这里谨慎使用 kill -9 选项,可能导致数据丢失,而 kill -3 并不会影响程序运行。
- 添加 Nginx 系统服务
- 方法 1