0%

centos安装nginx

记录centos中安装nginx的过程。

准备

安装依赖的包:

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

我们去nginx的官网看看目前稳定的包是什么,http://nginx.org/en/download.html,目前为止,稳定的包是nginx-1.20.1,点击会下载当前nginx-1.20.1.tar.gz。我们下载下来后可以直接通过scp上传到服务器,这样免得在服务器下载浪费时间。

当然也可以直接在服务器中下载:

1
$ wget http://nginx.org/download/nginx-1.20.1.tar.gz

在服务器中解压缩:

1
$ tar -zxvf nginx-1.20.1.tar.gz

安装

进入解压的目录:

1
$ cd nginx-1.20.1

配置:

1
$ ./configure --prefix=/usr/local/nginx --with-http_stub_status_module --with-http_ssl_module --with-pcre

安装:

1
$ make && make install

一路跑下来没问题,那么就安装成功了。

nginx相关命令

启动nginx

1
$ /usr/local/nginx/sbin/nginx

停止nginx

1
$ /usr/local/nginx/sbin/nginx -s stop

重新载入配置

1
$ /usr/local/nginx/sbin/nginx -s reload

nginx配置

nginx默认配置文件路径为:/usr/local/nginx/conf/nginx.conf

默认的资源路径为:/usr/lcoal/nginx/html

设置Systemctl

centos7以上使用systemed进行系统初始化的。systemd服务文件以.service结尾,如果是用yum安装的nginx,yum命令会自动创建nginx.service,可以直接使用命令:

1
$ systemctl enable nginx.service

这样就设置为了开机启动。

但是我们用源码安装的方式是没有自动创建nginx.service文件的,需要手动创建:

1
$ vim /lib/systemd/system/nginx.service

放入内容:

1
2
3
4
5
6
7
8
9
10
11
12
13
[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

这里/usr/local/nginx/sbin/nginx是安装nginx的路径,注意如果有变更的话这里也要变化。

说明nginx.service内容的各项参数:

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

设置开机启动

1
$ systemctl enable nginx

停止开机启动

1
$ systemctl disable nginx

启动nginx服务

1
$ systemctl start nginx

重启nginx服务

1
$ systemctl restart nginx

重新加载nginx配置

1
$ systemctl reload nginx

nginx加入到全局环境变量中

上面虽然可以使用systemctl来控制nginx,但还是很不方便,我们希望可以直接使用nginx来操作。

要想加入到全局变量中,只需要创建个软链即可:

1
$ ln -s /usr/local/nginx/sbin/nginx /usr/local/bin/

这样就可以在任何地方直接使用nginx命令:

1
$ nginx -s reload

记录

码字辛苦,打赏个咖啡☕️可好?💘