nginx安装及使用(1)

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

启动后可以访问一下看到这个界面就证明安装成功了


 
 

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)进行匹配,对待定的请求进行处理。地址定向、数据缓存和应答控制等功能,还有许多第三方模块的配置也在这里进行。

posted on 2020-01-02 13:27  AFH520  阅读(187)  评论(0编辑  收藏  举报

导航