Nginx网站服务

发布时间:2024-01-05 13:49:07

Nginx网站服务

Nginx服务基础

Nginx专为性能优化而开发,其最知名的优点是它的稳定性和低系统资源消耗,以及对HTTP 并发连接的高处理能力(单台物理服务器可支持30000~50000 个并发请求)正因为如此,大量提供社交网络,新闻资讯,电子商务及虚拟主机等服务的企业纷纷选择 Nginx 来提供Web 服务。

1.1安装及运行控制

Nginx最新的稳定版本为1.12.0其安装文件可以从官方网站http://www.nginx.org/下载下面以稳定版1.12.0为例,介绍Nginx 的安装及运行控制。

1.编译安装 Nginx

安装支持软件

Nginx的配置及运行需要 pcre zlib 等软件包的支持,因此应预先安装这些软件的开发包(devel).以便提供相应的库和头文件,确保Nginx的安装顺利完成,具体安装命令如下所示

[root@localhost ~]# yum -y install pcre-devel zlib-devel

创建运行用户、组

Nginx 服务程序默认以 nobody 身份运行,建议为其创建专门的用户账号,以便更准确地控制其访问权限,增加灵活性,降低安全风险。例如,创建一个名为 nginx 的用户,不建立宿主文件夹,也禁止登录到 Shell 环境

[root@localhost ~]# useradd -M -s /sbin/nologin nginx

编译安装Nginx

配置 Nginx 的编译选项时,将安装目录设为/usr/local/nginx,运行用户及组均设为 nginx;启用http_stub_status_module 模块以支持状态统计,便于查看服务器的连接信息。具体选项根据实际需要来定,配置前可考

“./configure --help”给出的说明

[root@localhost ~]# tar zxf nginx-1.12.0.tar.gz 
[root@localhost ~]# cd nginx-1.12.0/
[root@localhost nginx-1.12.0]# ./configure --prefix=/usr/local/nginx \
> --user=nginx \
> --group=nginx \
> --with-http_stub_status_module
[root@localhost nginx-1.12.0]# make && make install

为了使Nginx 服务器的运行更加方便,可以为主程序nginx 创建链接文件,以便管理员直接执行"nginx"命令就可以调用 Nginx 的主程序。

[root@localhost nginx-1.12.0]# ln -s /usr/local/nginx/sbin/nginx /usr/local/sbin/
[root@localhost nginx-1.12.0]# ls -l /usr/local/sbin/nginx 
lrwxrwxrwx. 1 root root 27 1月   5 10:52 /usr/local/sbin/nginx -> /usr/local/nginx/sbin/nginx

2.nginx的运行控制

检查配置文件

与Apache 的主程序httpd 类似,Nginx 的主程序也提供了“-t”选项用来对配置文件进行检查以便找出不当或错误的配置。配置文件 nginx,conf 默认位于安装目录下的 conf/子目录中,若要检查位于其他位置的配置文件,可以使用"-c" 选项来指定路径。

启动、停止Nginx

直接运行 nginx 命令即可启动 Nginx 服务器,这种方式将使用默认的配置文件,若要改用其他配置文件,需添加“-c 配置文件路径”选项来指定配置文件路径,需要注意的是,若服务器中已装有httpd 等其他 Web 服务软件,应采取修改端口、停用或卸载等措施避免端口冲突

[root@localhost nginx-1.12.0]# nginx

通过检查Nginx 程序的监听状态,或者在浏览器中访问此 Web 服务(默认页面将显示Welcometo nginx!”),可以确认Nginx 服务是否正常运行。下面示例中提到的 elinks 是 Linux 系统中常用的文本浏览器。

[root@localhost nginx-1.12.0]# netstat -anpt | grep nginx
tcp        0      0 0.0.0.0:80              0.0.0.0:*               LISTEN      72321/nginx: master 

主程序Nginx 支持标准的进程信号,通过kill 或killall 命令发送HUP 信号表示重载配置,QUIT 信号表示退出进程,KILL 信号表示杀死进程,例如,若使用killall 命令,重载配置,停止服务的操作分别如下所示(通过-s”选项指定信号种类)。最小化安装的 entos 系统默认没有安装 killall 命令需要先通过yum安装

[root@localhost nginx-1.12.0]# yum install -y psmisc
[root@localhost nginx-1.12.0]# killall -s HUP nginx
[root@localhost nginx-1.12.0]# killall -s QUIT nginx

当Nginx 进程运行时,PID 号默认存放在logs/目录下的nginx.pid 文件中,因此若改用 kill 命令也可以根据nginxpid 文件中的PD 号来进行控制

使用Nginx服务脚本

为了使Nginx服务的启动停止重载等操作更加方便可以编写Nginx 服务脚本并使用chkconfig和systemctl工具来进行管理,也更加符合CentOS系统的管理习惯。

[root@localhost nginx-1.12.0]# cat /etc/init.d/nginx 
#!/bin/bash
# chkconfig: - 99 20
# description: Nginx Service Control Script
PROG="/usr/local/nginx/sbin/nginx"
PIDF="/usr/local/nginx/logs/nginx.pid"
case "$1" in
        start)
          $PROG
        ;;
        stop)
          kill -s QUIT $(cat $PIDF)
        ;;
        restart)
          $0 stop
          $0 start
        ;;
        reload)
          kill -s HUP $(cat $PIDF)
        ;;
        *)
          echo "Usage: $0 {start|stop|restart|reload}"
        exit 1
esac
exit 0
[root@localhost nginx-1.12.0]# chmod +x /etc/init.d/nginx 
[root@localhost nginx-1.12.0]# chkconfig --add nginx
[root@localhost nginx-1.12.0]# systemctl status nginx
● nginx.service - SYSV: Nginx Service Control Script
   Loaded: loaded (/etc/rc.d/init.d/nginx; bad; vendor preset: disabled)
   Active: inactive (dead)
     Docs: man:systemd-sysv-generator(8)
[root@localhost nginx-1.12.0]# 

这样,就可以通过 systemctl 命令控制 Nginx 脚本来启动、停止,重启重载Nginx 服务器了方法是在执行时添加相应的 start,stop、restart、reload 参数。

文章来源:https://blog.csdn.net/TK_Anzu/article/details/135406644
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。