如何添加Nginx为系统服务

如何添加Nginx为系统服务,第1张

nginx默认安装是不会有系统服务的,不会用就用集成环境吧,

这个nginx集成环境有独立的服务,可以开机运行,支持全部windows系统

PHPWAMP8.8.8.8n,这个环境的NGinx站点管理很强大,支持无限自定义

以下内容来自网络介绍

小编发现最近PHPWAMP集成环境又更新了phpwamp8.8.8.8n版本

phpwamp8.8.8.8n一共集成了12个PHP版本和3个mysql版本,并且可以高度自定义,你可以定义任何版本,解压后差不多1个G的大小,压缩包确仅有几十M,解压即可使用,纯绿色很方便,集成了apache和nginx等,支持asp、php、net

大家知道Nginx官方的windows版本用着很不稳定,时不时就会挂掉,而且默认安装后也不像apache那样有服务可以开机启动,毕竟nginx最适合的还是在linux下,不过最近更新的这款phpwamp8.8.8.8n安装后是有服务的,该软件作者自己写了一个Nginx服务,能开机启动,而且还能给每个站点分配不一样的进程,也可以随意指定站点的php版本!最关键的是该服务启动的php-cgi进程,就算你手动用杀毒软件的任务管理器也关不掉!关掉后会自动恢复,而且网站服务依旧正常!!除非你自己点击软件界面上的卸载服务才会关闭,该保护功能可以对网站进程起到保护作用。

一、准备事项

(1) 因为nginx需要访问80端口所以请先关闭或者开放防火墙端口,和selinux。

参考命令

关闭防火墙:

[root@local ~]# iptables -I INPUT -p tcp --dport 80 -j ACCEPT

[root@local ~]# service iptables save

关闭selinux:

[root@local ~]# setenforce 0

[root@local ~]# vim /etc/selinux/config

将SELINUX=enforcing改为SELINUX=disabled

(2) 如果用到域名请自行构建DNS服务

二、安装

(1) 因为nginx的运行需要安装pcre、zlib等软件包,因此我们进行安装

Pcre=Pcre Compatible Regular Expressions(中文pcre兼容正则表达式)

Yum配置请参考: http://www.linuxidc.com/Linux/2015-11/125332.htm

[root@local ~] yum -y install pcre* zlib* #或者进行编译安装

[root@local ~]# useradd -M -s /sbin/nologin nginx #创建nginx服务

启动用户

(3) 编译安装nginx,下载地址:http://nginx.org/en/download.html 此次安装为最新稳定版nginx-1.8.0

[root@local ~]# tar zxf nginx-1.8.0.tar.gz

[root@local ~]# cd nginx-1.8.0

[root@local nginx-1.8.0]# ls

auto CHANGES.ru configure html Makefile objs src

CHANGES conf contrib LICENSE man README

[root@local nginx-1.8.0]# ./configure --user=nginx --group=nginx --prefix=/application/nginx-1.8.0 --with-http_stub_status_module --with-http_ssl_module #./configure –help 参数详解

[root@local nginx-1.8.0]# make

[root@local nginx-1.8.0]# make install

(4) 制作软连接

[root@local nginx-1.8.0]#ln –a /application/nginx-1.8.0/

/application/nginx

(5) 基本使用

#语法检查

[root@local nginx-1.8.0]# /application/nginx/sbin/nginx –t

nginx: the configuration file /application/nginx-1.8.0/conf/nginx.conf syntax is ok

nginx: configuration file /application/nginx-1.8.0/conf/nginx.conf test is successful

#启动服务

[root@local nginx-1.8.0]# /application/nginx/sbin/nginx

#端口检查

[root@local nginx-1.8.0]# netstat –lnt

#检查进程

[root@local nginx-1.8.0]# ps -ef | grep nginx #端口信息保存在

/application/nginx/logs/ nginx.pid 文件中

#通过端口查看占用进程

[root@local nginx-1.8.0]# lsof -i :80

#错误日志

/application/nginx/logs/error.log

三、编写nginx服务脚本

为了方便使用习惯,通过server 来启动、关闭、开启、重载nginx服务所以我们来编

写nginx的服务脚本(自己编写的脚本仅供参考!)

[root@local ~]# vim /etc/init.d/nginx

#!/bin/bash

#chkconfig: - 99 20

#description:Nginx Server Contorl Script

PROG="/application/nginx/sbin/nginx"

PIDF="/application/nginx/logs/nginx.pid"

ok=`echo -e "\e[131m [ok] \e[0m"`

no=`echo -e "\e[131m [no] \e[0m"`

detection=`/application/nginx/sbin/nginx -t 2>&1`

screen_1=`echo $detection | awk '{print $6,$7,$8}'`

screen_2=`echo $detection | awk '{print $13,$14,$15}'`

if [ "$screen_1" = "syntax is ok" ] &&[ "$screen_2" = "test is successful" ]

then

case "$1" in

start)

$PROG

echo "Nginx Is starting state $ok"

stop)

kill -s QUIT $(cat $PIDF)

echo "Nginx Is closing state $ok"

restart)

$0 stop

$0 start

echo "Nginx Is to restart state $ok"

reload)

kill -s HUP $(cat $PIDF)

echo "Nginx Is overloaded state $ok"

*)

echo "Usage: $0 (start|stop|restart|reload)"

exit 1

esac

else

echo "Nginx check state $no "

echo "Please check the configuration file"

echo "$detection"

fi

exit 0

[root@local ~]# chmod +x /etc/init.d/nginx

[root@local ~]# chkconfig –add nginx #添加为系统服务

[root@local ~]# chkconfig nginx on

四、简单的nginx web站点

Nginx的默认站点目录,是安装目录下的html这里是(/application/nginx/html)

在主配置文件/application/nginx/conf/nginx.conf 中查看,对于重新部署web页面

只需将/application/nginx/html/中的index.html替换即可

主配置文件讲解

[root@local ~]# egrep -v "#|^$" /application/nginx/conf/nginx.conf

worker_processes 1#指定Nginx开启的进程数

events { #设定Nginx的工作模式及连接数上线

worker_connections 1024

}

http {

include mime.types#主模块命令,实现对配置文件所有包含文件的设置

default_type application/octet-stream#属于http核心模块命令,这里设

置类型为二进制流,也就是当文件类型未定义时使用这种方式,例如,没有配置PHP

环境时,nginx是不给予解析的,此时,用浏览器访问PHP文件就会出现下载窗口。

sendfile on#用于高效文件传输模式

keepalive_timeout 65设置客户端请求头文件读取超时时间,如果超过这个时

间服务器会关闭该连接。

server { #定义虚拟主机开始的关键字

listen 80#用于指定虚拟主机的服务端口

server_name localhost用于指定ip地址或者域名,多个域名用空格隔开

location / {

root html

index index.html index.htm#用于设定访问的默认首页

}

error_page 500 502 503 504 /50x.html# 静态页面重定向服务器错误

页面,例如携程的网站崩溃出现的页面

location = /50x.html {

root html

}

}

}

chkconfig --list [name]:显示所有运行级系统服务的运行状态信息(on或off)。如果指定了name,那么只显示指定的服务在不同运行级的状态。

chkconfig --list nginx : 查询nginx服务的运行状态信息(on或off)

2、3、4、5 对应不同的运行等级:

0 - halt (系统直接关机)

1 - single user mode (单人维护模式,用在系统出问题时的维护)

2 - Multi-user, without NFS (类似底下的 runlevel 3,但无 NFS 服务)

3 - Full multi-user mode (完整含有网络功能的纯文字模式)

4 - unused (系统保留功能)

5 - X11 (与 runlevel 3 类似,但加载使用 X Window)

6 - reboot (重新启动)

如果2、3、4、5 不为on, 则表示 nginx服务在运行级别为2、3、4、5时候没有启动 (即开机的时候不会启动ngnix服务)

chkconfig --level 2345 nginx on 表示设置nginx 服务在运行级别为2、3、4、5时启动 (即设置开机启动nginx服务)

正常启动的linux都是3或者5 级别的,如果你要查看机器的运行级别可以使用runlevel命令:

runlevel -- 先后显示系统上一次和当前运行级别。如果不存在上一次运行级别,则用N表示。

如果需要改变运行级别,使用init命令:init [0123456]

查看系统默认的运行级别,使用命令 cat /etc/inittab


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/bake/11947659.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-19
下一篇 2023-05-19

发表评论

登录后才能评论

评论列表(0条)

保存