Nginx安装并加入systemctl管理服务

  • A+
所属分类:运维教程

OS:CentOS 7.4

一、安装nginx

# rpm -qa | grep nginx

查找有没有nginx

#mkdir /media/cdrom

创建本地yum源挂载点

# mount /dev/cdrom /media/cdrom

挂载光盘做本地yum源

yum -y install wget automake autoconf libtool libxml2-devel libxslt-devel perl-devel perl-ExtUtils-Embed pcre-devel openssl-devel gcc gcc-c++

安装依赖关系

# tar xf ngixn-1.5.1.tar.gz

解压缩nginx

# mkdir -p /var/cache/nginx

创建目录为nginx后续上传临时文件做准备

#cd nginx-1.5.1/

进入nginx-1.5.1目录

# ./configure --prefix=/usr/local/nginx --sbin-path=/usr/sbin/nginx --conf-path=/etc/nginx/nginx.conf --error-log-path=/var/log/nginx/error.log --http-log-path=/var/log/nginx/access.log --pid-path=/var/run/nginx.pid --lock-path=/var/run/nginx.lock --http-client-body-temp-path=/var/cache/nginx/client_temp --http-proxy-temp-path=/var/cache/nginx/proxy_temp --http-fastcgi-temp-path=/var/cache/nginx/fastcgi_temp --http-uwsgi-temp-path=/var/cache/nginx/uwsgi_temp --http-scgi-temp-path=/var/cache/nginx/scgi_temp --user=nobody --group=nobody --with-pcre --with-http_v2_module --with-http_ssl_module --with-http_realip_module --with-http_addition_module --with-http_sub_module --with-http_dav_module --with-http_flv_module --with-http_mp4_module --with-http_gunzip_module --with-http_gzip_static_module --with-http_random_index_module --with-http_secure_link_module --with-http_stub_status_module --with-http_auth_request_module --with-mail --with-mail_ssl_module --with-file-aio --with-ipv6 --with-http_v2_module --with-threads --with-stream --with-stream_ssl_module

Nginx安装并加入systemctl管理服务

Nginx安装并加入systemctl管理服务

Nginx安装并加入systemctl管理服务

#  make  -j4

# make  install

编译安装

 

二、Nginx服务快捷启动设置

# /usr/sbin/nginx

启动nginx

如果出现Address already in use代表端口被占用

# cat nginx.conf | grep -v "^$" | grep -v "#"

查看 nginx配置文件 把空白行 还有 注释行以外的内容

 

将nginx加入到systemctl中

#vim /usr/lib/systemd/system/nginx.service

[Unit]

Description=nginx  web server

Documentation=http://nginx.org/en/docs/

After=network.target remote-fs.target nss-lookup.target

 

[Service]

Type=forking

PIDFile=/var/run/nginx.pid

ExecStartPre=/usr/sbin/nginx -t -c /etc/nginx/nginx.conf

ExecStart=/usr/sbin/nginx -c /etc/nginx/nginx.conf

ExecReload=/bin/kill -s HUP $MAINPID

ExecStop=/bin/kill -s QUIT $MAINPID

PrivateTmp=true

 

[Install]

WantedBy=multi-user.target

 

#killall nginx

就可以正常使用systemctl restart (start、stop、......) nginx了

[Unit]部分主要是对这个服务的说明,内容包括Description和After,Description用于描述服务,After用于描述服务类别

[Service]部分是服务的关键,是服务的一些具体运行参数的设置,这里Type=forking>是后台运行的形式,PIDFile为存放PID的文件路径,ExecStart为服务的具体运行命令>,ExecReload为重启命令,ExecStop为停止命令,PrivateTmp=True表示给服务分配独>立的临时空间,注意:[Service]部分的启动、重启、停止命令全部要求使用绝对路径>,使用相对路径则会报错!

[Install]部分是服务安装的相关设置,可设置为多用户的

服务脚本按照上面编写完成后,以754的权限保存在/usr/lib/systemd/system目录下,

这时就可以利用systemctl进行配置了

首先,使用systemctl start [服务名(也是文件名)]可测试服务是否可以成功运行,

如果不能运行则可以使用systemctl status [服务名(也是文件名)]查看错误信息和其他服务信息,然后根据报错进行修改,直到可以start,如果不放心还可以测试restart和stop命令。

接着,只要使用systemctl enable xxxxx就可以将所编写的服务添加至开机启动即可。

 

  • 我的微博
  • 这是微博的扫一扫
  • weinxin
  • 微信公众
  • 微信公众号扫一扫
  • weinxin

发表评论

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen:

目前评论:2   其中:访客  2   博主  0

    • avatar 享乐时光 3

      挺有帮助的 拿走了

      • avatar 周晨 1

        好真特么好!!太特么好了!正好用上!!爱你么么哒!!!