Nginx源码部署并设置开机自启


1、安装c++编译环境,如已安装可略过--必须安装gcc编译器!!!!!!

yum install -y pcre pcre-devel make zlib zlib-devel gcc-c++ libtool  openssl openssl-devel wget gcc tree vim telnet

2、下载nginx

wget http://nginx.org/download/nginx-1.13.2.tar.gz
tar -zxvf nginx-1.13.2.tar.gz
cd nginx-1.13.2

3、编译安装

./configure --prefix=/usr/local/nginx --with-http_ssl_module
make && make install

make报错解决:centos8

# 1、注释
vim /opt/nginx-1.13.2/src/os/unix/ngx_user.c
    /*cd.current_salt[0] = ~salt[0];*/

# 2、删除Makefile文件中的 “-Werror ”
vim /opt/nginx-1.13.2/objs/Makefile
删除-Werror -g,

# 3、新增-Wno-implicit-fallthrough
CFLAGS =  -pipe  -O -W -Wall -Wpointer-arith -Wno-unused-parameter -Wno-implicit-fallthrough


再次make。

4、配置系统服务并设置开机自启

vim /lib/systemd/system/nginx.service
[Unit]
  
Description=nginx service
After=network.target


[Service]

User=webapp

Group=webapp

Type=forking

ExecStart=/usr/local/nginx/sbin/nginx

ExecReload=/usr/local/nginx/sbin/nginx -s reload

ExecStop=/usr/local/nginx/sbin/nginx -s quit

PrivateTmp=true


[Install]

WantedBy=multi-user.target

Description:描述服务

After:描述服务类别

[Service]服务运行参数的设置

Type=forking是后台运行的形式

ExecStart为服务的具体运行命令

ExecReload为重启命令

ExecStop为停止命令

PrivateTmp=True表示给服务分配独立的临时空间

注意:[Service]的启动、重启、停止命令全部要求使用绝对路径

[Install]运行级别下服务安装的相关设置,可设置为多用户,即系统运行级别为3

# 重载
systemctl daemon-reload

# 加入开机启动
systemctl enable nginx

# 禁止开启启动
systemctl disable nginx
# 以服务的方式启动:

# pkill nginx   // 杀死nginx进程

# systemctl start nginx

# 启动/停止/重启/查看:

# systemctl start nginx          启动服务

# systemctl stop nginx          停止服务

# systemctl restart nginx        重启服务

# systemctl status nginx   查看服务当前状态

# systemctl list-units --type=service      查看所有已启动的服务