← 返回技术札记
运维实践

Linux 安装 Nginx

手把手教你如何在 Linux 中安装 nginx

nginxlinux

Linux 安装 nginx

一、CentOS7.x 源码编译安装nginx

1. 安装相关依赖

1.1 安装 gcc

yum -y install gcc gcc-c++ autoconf automake make

说明:

gcc 是 liunx 中非常重要的依赖,一般都会有,我们可以先检查 gcc 是否已经安装

检测 gcc 命令

gcc -v

1.2 安装 pcre

说明: 提供nginx支持重写

yum -y install pcre pcre-devel

1.3 安装 zlib

yum -y install zlib zlib-devel make libtool

1.4 安装 openssl

yum -y install openssl openssl-devel

2. nginx 下载

下载地址:https://nginx.org/en/download.html

2.1 下载 nginx 源码

这里使用 1.16.1 版本演示

# 进入到 opt 目录
cd /opt
# 下载nginx压缩包
wget https://nginx.org/download/nginx-1.16.1.tar.gz

2.2 解压

cd nginx-1.16.1.tar.gz && tar zxvf nginx-1.16.1.tar.gz

2.3 目录结构

nginx-1.16.1
|-- auto
|-- CHANGES
|-- CHANGES.ru
|-- conf
|-- configure
|-- contrib
|-- html
|-- LICENSE
|-- man
|-- README
`-- src

3. 编译并启动

3.1 检测并配置相关选项

./configure --prefix=/opt/nginx --with-http_stub_status_module --with-http_ssl_module --user=www --group=www

nginx全部参含义:http://nginx.org/en/docs/configure.html

注意: 这里的用户和用户组都是 www 所有我们需要先去创建对应用户

groupadd www
useradd www -g www -p *****

3.2 编译

make && make install

3.3.目录结构

|-- conf
|   |-- fastcgi.conf
|   |-- fastcgi.conf.default
|   |-- fastcgi_params
|   |-- fastcgi_params.default
|   |-- koi-utf
|   |-- koi-win
|   |-- mime.types
|   |-- mime.types.default
|   |-- nginx.conf
|   |-- nginx.conf.default
|   |-- scgi_params
|   |-- scgi_params.default
|   |-- uwsgi_params
|   |-- uwsgi_params.default
|   `-- win-utf
|-- html
|   |-- 50x.html
|   `-- index.html
|-- logs
|   |-- access.log
|   |-- error.log
|   `-- nginx.pid
|-- sbin
|   `-- nginx			# nginx 可执行文件

配置文件目录:/opt/nginx/conf/vhost/

3.4 使用systemd运行

nginx.service文件内容如下

参考:https://www.nginx.com/resources/wiki/start/topics/examples/systemd/

[Unit]
Description=The NGINX HTTP and reverse proxy server
After=syslog.target network-online.target remote-fs.target nss-lookup.target
Wants=network-online.target

[Service]
Type=forking
ExecStartPost=/bin/sleep 0.1
PIDFile=/opt/nginx/logs/nginx.pid
ExecStartPre=/opt/nginx/sbin/nginx -t
ExecStart=/opt/nginx/sbin/nginx
ExecReload=/opt/nginx/sbin/nginx -s reload
ExecStop=/bin/kill -s QUIT $MAINPID
PrivateTmp=true

[Install]
WantedBy=multi-user.target

注意:

PIDFile=/opt/nginx/logs/nginx.pid这个参数需要修改对应的nginx.conf文件

# 修改pid路径
pid  /opt/nginx/logs/nginx.pid;

启动:

systemctl start nginx

设置自动启动(在机器重启或服务故障之后自动拉起服务)

sudo systemctl enable nginx

3.5 测试效果

warning 提醒: 如果无法访问:检查安全组、防火墙等

4. 卸载

我们是在 opt 目录安装的,所以只需要停止服务并删除目录就行

# 停止 nginx 服务
systemctl stop nginx
# 删除目录
rm /opt/nginx -rf
# 删除 service 文件
rm /lib/systemd/system/nginx.service

二、Ubuntu20.04 apt 安装

1. 安装

sudo apt install nginx

apt 安装十分方便执行完毕便已经启动了。

2. 了解安装后相关目录

  • 二进制文件:/usr/sbin/nginx
  • 配置及相关文件:/etc/nginx
  • 静态文件: /usr/share/nginx
  • 日志文件:/var/log/nginx
  • 自定义配置目录:/etc/nginx/conf.d/

3. 卸载

sudo apt remove nginx

删除文件

sudo rm -rf /etc/nginx
sudo rm -rf /var/log/nginx
sudo rm -rf /var/www/html

三、Ubuntu 源码安装

1. 编译前:装依赖

sudo apt install build-essential libpcre3-dev libssl-dev zlib1g-dev

libpcre3-dev 是正则引擎,libssl-dev 是 HTTPS,zlib1g-dev 是 gzip。基本必装,除非你明确关掉对应模块。

2. 下载解压

地址:https://nginx.org/en/download.html

sudo wget https://nginx.org/download/nginx-1.30.3.tar.gz

sudo tar zxvf /path/to/nginx-1.30.3.tar.gz

3. 编译

./configure \
    --prefix=/opt/nginx \
    --user=nginx \
    --group=nginx \
    --with-http_ssl_module \
    --with-http_v2_module \
    --with-http_realip_module \
    --with-http_gzip_static_module \
    --with-http_stub_status_module \
    --with-stream \
    --with-stream_ssl_module

注意这里 --prefix 是安装根目录,装完所有东西都在 /opt/nginx/ 下,归拢管理。--user 和 --group 指定 worker 进程用哪个 Linux 账户跑。

如图表示成功

make -j$(nproc)

如图表示成功

4. 安装

sudo make install

如图表示成功

5. 创建用户

sudo useradd -r -s /sbin/nologin -d /opt/nginx nginx