手动安装nginx


安装gcc等编译环境

yum -y install make zlib zlib-devel gcc-c++ libtool openssl openssl-devel

下载nginx-1.18.0.tar.gz并解压

wget http://nginx.org/download/nginx-1.18.0.tar.gz

tar -zxvf nginx-1.18.0.tar.gz

cd nginx-1.18.0

创建目录

mkdir -p /var/temp

mkdir -p /var/temp/nginx

mkdir -p /var/temp/run/nginx

chmod a+wrx -R temp

配置编译选项

./configure \
--prefix=/usr/local/nginx \
--pid-path=/var/temp/run/nginx/nginx.pid \
--lock-path=/var/lock/nginx.lock \
--error-log-path=/var/log/nginx/error.log \
--http-log-path=/var/log/nginx/access.log \
--with-http_gzip_static_module \
--http-client-body-temp-path=/var/temp/nginx/client \
--http-proxy-temp-path=/var/temp/nginx/proxy \
--http-fastcgi-temp-path=/var/temp/nginx/fastcgi \
--http-uwsgi-temp-path=/var/temp/nginx/uwsgi \
--http-scgi-temp-path=/var/temp/nginx/scgi

切记,pid-path不能设置为/var/run/nginx/nginx.pid。因为CentOS每次重启后,都会删除/var/run目录中的自建目录和文件,从而导致nginx自启动失败。

编译安装

make && make install

进入/usr/local/nginx查看文件是否存在conf、sbin、html文件夹,若存在则安装成功

测试启动

/usr/local/nginx/sbin/nginx -c /usr/local/nginx/conf/nginx.conf

如果不指定-c,nginx在启动时默认加载conf/nginx.conf文件,此文件的地址也可以在编译安装nginx时指定./configure的参数(–conf-path= 指向配置文件(nginx.conf))

测试访问

curl localhost

浏览器如果不能访问,就打开防火墙或者开端口。

# 关闭防火墙
systemctl stop firewalld.service
# 开放端口
firewall-cmd --zone=public --add-port=80/tcp --permanent,firewall-cmd --reload

设置开机启动

在系统服务目录里创建nginx.service文件

vi /usr/lib/systemd/system/nginx.service

写入内容如下:

[Unit]
Description=nginx
After=network.target

[Service]
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

说明:

  • [Unit]服务的说明
  • Description:描述服务
  • After:描述服务类别
  • [Service]服务运行参数的设置
  • Type=forking是后台运行的形式
  • ExecStart为服务的具体运行命令
  • ExecReload为重启命令
  • ExecStop为停止命令
  • PrivateTmp=True表示给服务分配独立的临时空间
  • 注意:[Service]的启动、重启、停止命令全部要求使用绝对路径
  • [Install]运行级别下服务安装的相关设置,可设置为多用户,即系统运行级别为3

设置开机自启动

systemctl enable nginx.service

查看nginx状态

systemctl status nginx.service

很奇怪,明明启动成功了,为什么显示Active: inactive (dead)?

杀死nginx重启nginx

pkill -9 nginx

ps aux | grep nginx

systemctl start nginx

再次查看状态,变成了active,搞定。

重启服务器

reboot

再次连接后,查看服务状态

systemctl status nginx.service

看到nginx已经启动,至此,nginx自启动配置成功。


文章作者: Cheney
版权声明: 本博客所有文章除特別声明外,均采用 CC BY 4.0 许可协议。转载请注明来源 Cheney !
 上一篇
Spring Boot 2.0 的配置绑定类Bindable居然如此强大 Spring Boot 2.0 的配置绑定类Bindable居然如此强大
1. 前言在开发Spring Boot应用时会用到根据条件来向Spring IoC容器注入Bean。比如配置文件存在了某个配置属性才注入Bean : 根据配置属性来动态注入Bean 图中红色的部分是说,只有ali.pay.v1.app-id
2021-01-14
下一篇 
使用nginx代理centos yum 源 使用nginx代理centos yum 源
我们在安装centos 服务器时,可能会有以下情况:   局域网内有若干台服务器,但是只有一台服务器可以连接外网,其余服务器都不可以连接外网,但通过局域网与外网机器联通。 那么我们再使用 yum 安装软件时,可以采用以下方式 搭建本地 y
2021-01-06
  目录