目录
一、环境说明
服务器:腾讯云服务器 4核 32GB 20Mbps
系统版本: CentOS 8.2 64位
Nginx版本:1.18.0
二、安装流程
1、安装所需插件
1.1、安装gcc
查看gcc版本
gcc -v
一般云服务器里自带gcc,查看版本显示版本信息,则无需重复安装。
yum -y install gcc
1.2、安装pcre、pcre-devel
yum install -y pcre pcre-devel
1.3、安装zlib
yum install -y zlib zlib-devel
1.4、安装openssl
yum install -y openssl openssl-devel
2、下载安装Nginx
按习惯选择临时存放安装包的目录,例如可把 /usr/src 作为存放安装包的目录。
2.1、下载安装包
cd /usr/src
# 在服务器内下载Nginx安装包
wget http://nginx.org/download/nginx-1.18.0.tar.gz
2.2、解压
解压安装包到指定目录(如指定目录不存在则需要先提前用 mkdir 创建)
博主习惯把 /usr/local 作为软件安装路径
# 创建文件夹
mkdir -p /usr/local/nginx
# 解压安装包到指定目录
tar -zxvf nginx-1.18.0.tar.gz -C /usr/local/nginx
2.3、构建编译
- 配置安装环境
# 进入解压完成的nginx目录
cd /usr/local/nginx/nginx-1.18.0
# 配置软件包的安装环境
./configure --with-http_ssl_module
- 编译
# 编译
make
# 编译安装
make install
make编译完成后,nginx目录会多出objs文件夹。
make install编译安装后,nginx目录路径:/usr/local/nginx
2.4、修改nginx配置
nginx配置的目录路径:/usr/local/nginx/conf,nginx.conf 就是基础配置文件,建议备份后再编辑。
# 修改nginx配置
vim /usr/local/nginx/nginx-1.18.0/conf/nginx.conf
按照服务器的端口使用情况来进行配置,配置完成后ESC键,wq!强制保存并退出。
3、启动Nginx
# 附带配置启动
/usr/local/nginx/sbin/nginx -c /usr/local/nginx/conf/nginx.conf
4、查看Nginx服务是否启动成功
ps -ef | grep nginx
5、访问Nginx默认页面
浏览器地址栏直接输入服务器Ip,若显示此页面说明安装和配置都没问题。
至此,安装Nginx完成。
踩坑补充(可忽略)
之前因为尝试使用nginx-1.9.9的版本较高,make编译时各种报错,最后多次尝试无法解决问题,将nginx的版本降低。下面简单记录问题解决方案。
- 在Makefile文件中, 找到 -Werrori 并删掉,修改后保存文件。
如本文中在 /usr/local/nginx/nginx-1.9.9/objs/Makefile
可搜索文本字符 “-Wpointer”,找到该行
vim /usr/local/nginx/nginx-1.9.9/objs/Makefile
- 查看 ngx_user.c 源代码,找到"cd.current_salt[0] = ~salt[0]"这一行代码,把它注释,修改后保存文件。
如本文在/usr/local/nginx/nginx-1.9.9/src/os/unix/ngx_user.c
vim /usr/local/nginx/nginx-1.9.9/src/os/unix/ngx_user.c
设置nginx服务开机自启
使用Systemd
- 创建服务单元文件
sudo vi /etc/systemd/system/nginx.service
- 编辑配置文件
[Unit]
Description=The NGINX HTTP and reverse proxy server
After=syslog.target network.target
[Service]
Type=forking
ExecStartPre=/usr/local/nginx/sbin/nginx -t
ExecStart=/usr/local/nginx/sbin/nginx -c /usr/local/nginx/conf/nginx.conf
ExecReload=/usr/local/nginx/sbin/nginx -s reload -c /usr/local/nginx/conf/nginx.conf
ExecStop=/bin/kill -s QUIT $MAINPID
PrivateTmp=true
[Install]
WantedBy=multi-user.target
- 开启自启动
sudo systemctl enable nginx.service
- 常见服务命令
命令 | 详解 |
---|---|
systemctl daemon-reload | 修改后重新加载 systemd 程序的配置文件 |
systemctl start nginx | 启动服务 |
systemctl restart nginx | 重新启动服务 |
systemctl stop nginx | 停止服务 |
systemctl status nginx | 查看服务当前状态 |
systemctl enable nginx | 设置开机自启动 |
systemctl disable nginx | 停止开机自启动 |
systemctl list-units --type=service | 查看所有已启动的服务 |