1、在centos7上安装 nginx
1.1、下载
进入官网下载我们需要的版本,复制下载链接,使用wget工具下载,
wget http://nginx.org/download/nginx-1.16.1.tar.gz
1.2、解压
tar -xzf nginx-1.16.1.tar.gz
1.3、安装依赖
在你不清楚服务器有没有安装这些依赖的情况下,可以先跳过,报错再回来,或者直接都安装一下也没坏处。
1.3.1、gcc 源码的编依赖 于gcc 环境
yum install gcc
1.3.2、PCRE(Perl Compatible Regular Expressions) Perl库,包括 perl 兼容的正则表达式库
yum install -y pcre pcre-devel
1.3.3、zlib 库提供了很多种压缩和解压缩的方式, nginx 使用 zlib 对 http 包的内容进行 gzip
yum install -y zlib zlib-devel
1.3.4、OpenSSL是一个开放源代码的软件库包,应用程序可以使用这个包来进行安全通信,避免窃听,同时确认另一端连接者的身份。这个包广泛被应用在互联网的网页服务器上
yum install -y openssl openssl-devel
比较懒的可以直接执行这个命令:
yum install gcc openssl-devel pcre-devel -y
查看依赖安装:
pcre-config --version
1.4、配置
先进入解压文件目录:
cd nginx-1.16.1
查看自己需要得配置,建议看看官网的参数说明根据你需要的情景使用配置
./configure --help
这里我只设置了安装目录,其他均采用了默认
./configure --prefix=/server/nginx
出现这个证明已经配置成功
Configuration summary
+ using system PCRE library
+ OpenSSL library is not used
+ using system zlib library
nginx path prefix: "/server/nginx"
nginx binary file: "/server/nginx/sbin/nginx"
nginx modules path: "/server/nginx/modules"
nginx configuration prefix: "/server/nginx/conf"
nginx configuration file: "/server/nginx/conf/nginx.conf"
nginx pid file: "/server/nginx/logs/nginx.pid"
nginx error log file: "/server/nginx/logs/error.log"
nginx http access log file: "/server/nginx/logs/access.log"
nginx http client request body temporary files: "client_body_temp"
nginx http proxy temporary files: "proxy_temp"
nginx http fastcgi temporary files: "fastcgi_temp"
nginx http uwsgi temporary files: "uwsgi_temp"
nginx http scgi temporary files: "scgi_temp"
1.5、编译和安装
make && make install
看到这个界面证明已经安装成功了
cp conf/nginx.conf '/server/nginx/conf/nginx.conf.default'
test -d '/server/nginx/logs'
|| mkdir -p '/server/nginx/logs'
test -d '/server/nginx/logs'
|| mkdir -p '/server/nginx/logs'
test -d '/server/nginx/html'
|| cp -R html '/server/nginx'
test -d '/server/nginx/logs'
|| mkdir -p '/server/nginx/logs'
make[1]: Leaving directory `/root/nginx-1.16.1'
[root@iZxz5n6q7bcnqgZ nginx-1.16.1]#
1.6、测试启动
cd /server/nginx/sbin //这个是配置安装包时候的目录
./nginx //启动
./nginx -s stop //停止
./nginx -s quit //退出
./nginx -s reload //重启
1.7、其它相关配置
1.7.1、主机浏览器无法访问问题
云服务器Linux,安装配置完成nginx后,如果主机无法访问。则虚拟机没有放行Nginx默认端口80
解决办法:
(1)、查看防火墙对外开放的端口
firewall-cmd --zone=public --list-ports
(2)、开启 web 端口
firewall-cmd --permanent --add-port=80/tcp
(3)、重启 firewall
firewall-cmd --reload
1.7.2、配置 systemctl 命令
centos7服务管理都是通过systemctl命令的,所以我们可以添加一下对应nginx的service服务,systemctl服务储存地址 :/usr/lib/systemd/system/
执行以下命令新建nginx服务:
vim /usr/lib/systemd/system/nginx.service
并录入以下内容:
[Unit]
Description=nginx - high performance web server
After=network.target remote-fs.target nss-lookup.target
[Service]
Type=forking
ExecStart=/server/nginx/sbin/nginx
ExecReload=/server/nginx/sbin/nginx -s reload
ExecStop=/server/nginx/sbin/nginx -s stop
配置说明:
[Unit]:服务的说明
Description:描述服务
After:描述服务类别
[Service]服务运行参数的设置
Type=forking是后台运行的形式
ExecStart为服务的具体运行命令
ExecReload为重启命令
ExecStop为停止命令
PrivateTmp=True表示给服务分配独立的临时空间
注意:启动、重启、停止命令全部要求使用绝对路径
[Install]服务安装的相关设置,可设置为多用户
要服务生效,需要重新加载服务
systemctl daemon-reload
现在可以使用systemctl命令来对nginx进行操作了
systemctl start nginx //启动
systemctl stop nginx //停止
systemctl reload nginx //重启 可以不用停止nginx服务,使修改的配置生效
systemctl restart nginx //重启
systemctl enable nginx //设置开机启动
systemctl disable nginx //禁用开机启动
systemctl status nginx //查看服务状态
获取所有正在运行的服务
systemctl list-units --type=service
启动后可以访问一下看到这个界面就证明安装成功了
![](http://upload-images.jianshu.io/upload_images/18701838-6d1c55ca425c91a4.jpg?imageMogr2/auto-orient/strip|imageView2/2/w/750/format/webp)
2、nginx常用命令
使用 nginx 命令前提条件:必须进入 nginx 得目录中
/server/nginx/sbin(自己的目录)
2.1、查看 niginx 的版本
./nginx -v
2.2、启动 niginx
./nginx
2.1、关闭niginx
./nginx -s stop
2.1、重新加载 niginx
./nginx -s reload
3、nginx配置文件
3.1、配置文件位置
在nginx目录下的conf文件里面,即 */nginx/conf/nginx.conf
/server/nginx/conf
3.2、配置文件组成
nginx 的配置文件由三部分组成:全局块、events 块、http 块。
3.2.1、第一部分:全局块
从配置文件开始到 events 块之间的内容,主要设置一些影响 nginx 服务器整体运行的配置指令,只有包括配置运行 nginx 服务器的用户(组),允许生成的 worker process 数,进程 PID 存放路径、日志存放路径、类型以及配置文件的引入等
worker_processes 1;
这是 Nginx 服务器并发处理服务的关键配置,值越大,可以支持的并发处理量越多,但是会受到硬件、软件等设备的制约。
3.2.2、第二部分:events 块
events块涉及的指令主要影响 Nginx 服务器与用户的网络连接,常用的设置包括是否开启对多 work process 下的网络连接进行序列化,是否允许同时接收多个网络连接,选取哪种事件驱动模型来处理连接请求,每个 word process 可以同时支持的最大连接数等。
events {
worker_connections 1024;
}
表示每个 work process 支持的最大连接数为 1024。
这部分的配置对 Nginx 的性能影响较大,在实际中应该灵活配置。
3.2.3、第三部分:http 块
这算是 Nginx 服务器配置中最频繁的部分,代理、缓存和日志定义等绝大多数功能和第三方模块的配置都在这里。
http 块也可以包括 http全局块、server 块。
(1)、http 全局块
http 全局块配置的指令包括文件引入、MIME-TYPE 定义、日志自定义、连接超时时间、但链接请求数上线等。
(2)、server 块
这块和虚拟主机有密切关系,虚拟主机从用户角度看,和一台独立的硬件主机是完全一样的,该技术的产生是为了节省互联网服务器硬件成本。
每个 http 块可以包括多个 server 块,而每个 server 块就相当于一个虚拟主机。而每个 server 块也分为全局 server 块,以及可以同时包含多个 location 块。
①、全局 server 块
最常见的配置是本虚拟机主机的监听配置和本虚拟机主机的名称或 IP 配置。
②、location 块
一个 server 块可以配置多个 location 块。
这块的主要作用是基于 Nginx 服务器接收到的请求字符串(例如 server_name/uri-string),对虚拟主机名称(也可以是 IP 别名)之外的字符串(例如 前面 /uri_string)进行匹配,对待定的请求进行处理。地址定向、数据缓存和应答控制等功能,还有许多第三方模块的配置也在这里进行。