nginx安装部署-linux篇

nginx安装部署-linux篇

ps:这边是使用CentOS8系统进行安装部署。
系统安装部署不在此讲述了。

前期准备

nginx主目录:/usr/nginx

mkdir /usr/nginx

安装依赖环境:

yum -y install gcc gcc-c++ autoconf automake make       
yum -y install zlib zlib-devel openssl openssl-devel pcre pcre-devel

linux下编译安装nginx

linux下的安装较为复杂,需要先安装一个linux发行版,然后安装环境,然后进行源码编译。

下载:
下载:http://nginx.org/en/download.html, 下载的是tar.gz的压缩包。

上传到服务器
使用ftp工具上传到服务器如filezilla等软件。

解压文件

# 使用tar命令进行解压
# 目录为/usr
tar -zxvf nginx-1.21.1.tar.gz

# 解压之后目录如下,里面包含了所有的源代码等文件
[root@localhost nginx-1.21.1]# ls -la
总用量 792
drwxr-xr-x.  8 1001 1001    158 7月   6 10:59 .
drwxr-xr-x. 13 root root    164 8月  23 21:24 ..
drwxr-xr-x.  6 1001 1001   4096 8月  23 21:18 auto
-rw-r--r--.  1 1001 1001 313379 7月   6 10:59 CHANGES
-rw-r--r--.  1 1001 1001 478586 7月   6 10:59 CHANGES.ru
drwxr-xr-x.  2 1001 1001    168 8月  23 21:18 conf
-rwxr-xr-x.  1 1001 1001   2590 7月   6 10:59 configure
drwxr-xr-x.  4 1001 1001     72 8月  23 21:18 contrib
drwxr-xr-x.  2 1001 1001     40 8月  23 21:18 html
-rw-r--r--.  1 1001 1001   1397 7月   6 10:59 LICENSE
drwxr-xr-x.  2 1001 1001     21 8月  23 21:18 man
-rw-r--r--.  1 1001 1001     49 7月   6 10:59 README
drwxr-xr-x.  9 1001 1001     91 8月  23 21:18 src
[root@localhost nginx-1.21.1]# 
# src文件夹包含nginx所有源代码,man包含了nginx的帮助文档,html是静态网页内容,conf是配置文件,auto是脚本文件,configure是自动脚本程序。

编译安装需要用到configure脚本文件生成Makefile文件以及一些常用的可选选项。

--prefix=<path> # 指定nginx的安装目录
--lock-path=<path> # nginx.lock文件的目录
--user=<user> # 指定运行nginx的用户,默认为nobody,不限制
--group=<group> # 指定运行nginx的组,默认nobody,不限制
--add-module=<path> # 指定第三方模块路径
--with-poll_module # 声明启用poll模块
--without-poll_module # 声明禁用poll模块
--with-http_ssl_module # 声明启用ssl模块,需要安装openssl库,这样服务器可以使用https请求
# 一般使用with启用模块,without禁用模块,指定nginx的安装目录即可。后期如果需要扩展需要重新编译。

创建用户,一般建议使用专门的用户创建程序和进程。

groupadd -f nginx  # 创建组
useradd -g nginx nginx # 创建组以及设置用户
usermod -s /sbin/nologin nginx #修改用户默认shell /sbin/nologin

使用configure生成Makefile文件

./configure --user=nginx --group=nginx --prefix=/usr/nginx --with-http_stub_status_module --with-http_ssl_module --with-stream --with-http_gzip_static_module --with-http_sub_module

# 指定用户nginx,用户组ngin,指定安装目录/usr/nginx以及一些模块
# 命令执行完成之后出现安装完成的目录,可以稍微留意下。

编译和安装:

# 使用make编译,时间较长
make
# 安装,使用make install安装
make install

# 安装完成之后到nginx主目录查看下,只有4个文件夹
[root@localhost nginx]# ls
conf  html  logs  sbin
[root@localhost nginx]# ls -la
总用量 4
drwxr-xr-x.  6 root root   54 8月  24 04:27 .
drwxr-xr-x. 14 root root  177 8月  24 04:27 ..
drwxr-xr-x.  2 root root 4096 8月  24 04:27 conf
drwxr-xr-x.  2 root root   40 8月  24 04:27 html
drwxr-xr-x.  2 root root    6 8月  24 04:27 logs
drwxr-xr-x.  2 root root   19 8月  24 04:27 sbin
[root@localhost nginx]# 
# conf是配置文件,包含nginx.conf主配置文件和其他文件
# html是网页文件夹
# logs包含日志文件和pid
# sbin是可执行文件目录,即nginx主程序

nginx服务的启动和停止

nginx的启动

# 直接找到sbin下面的主程序文件
cd /sbin
./nginx  # 后面不加参数直接运行
./nginx # 后面可以加可选参数
# 如下:
[root@localhost sbin]# ./nginx -h
nginx version: nginx/1.21.1
Usage: nginx [-?hvVtTq] [-s signal] [-p prefix]
             [-e filename] [-c filename] [-g directives]

Options:
  -?,-h         : this help   # 输出帮助
  -v            : show version and exit # 输出版本信息
  -V            : show version and configure options then exit # 输出编译时的参数
  -t            : test configuration and exit  # nginx程序测试启动
  -T            : test configuration, dump it and exit
  -q            : suppress non-error messages during configuration testing
  -s signal     : send signal to a master process: stop, quit, reopen, reload
  -p prefix     : set prefix path (default: /usr/nginx/)
  -e filename   : set error log file (default: logs/error.log)
  -c filename   : set configuration file (default: conf/nginx.conf)
  -g directives : set global directives out of configuration file

查看nginx的进程

# 通过pid文件查看进程号
cd /logs
cat nginx.pid

# 通过 ps 查看进程
ps aux | grep nginx

关闭nginx进程服务

kill 进程号

使用systemctl管理服务进程

# 在/usr/lib/systemd/system目录下 新建nginx.service文件,修改对应的目录
[Unit]
Description=nginx-The High-performance HTTP Server
After=network.target
Wants=network.target
[Service]
PIDFile=/usr/nginx/logs/nginx.pid
WorkingDirectory=/usr/nginx
ExecStart=/usr/nginx/sbin/nginx
Restart=on-abnormal
RestartSec=5s
KillMode=mixed
StandardOutput=null
StandardError=syslog
[Install]
WantedBy=multi-user.target

# 保存文件
# 重启服务
systemctl daemon-reload 
systemctl start nginx # 启动nginx
systemctl stop nginx  # 停止nginx
systemctl enable nginx # 开机启动nginx

测试访问

现在服务启动了,进行访问测试,直接打开浏览器输入服务器地址,发现无法访问。
这时需要把服务器的防火墙放通端口。

# 查看防火墙状态
systemctl status firewalld
# 放通80端口
firewall-cmd --zone=public --add-port=80/tcp --permanent
# 刷新防火墙状态
firewall-cmd --reload

现在可以访问了。

总结:现在只是最简单的安装,把基本功能完成了,后面开始服务器的配置以及一些高级功能。

版权声明:本文为chuck-study原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://www.cnblogs.com/chuck-study/p/15176885.html