此篇文章主要目的是为方便后期自己再搭建将搭建过程中所查询到的资料进行全部重新整理记录,并记录下所踩的坑。
一、安装nginx依赖
#安装gcc,编译时依赖gcc环境yum install gcc-c++
yum install gcc-c++
#安装PCRE pcre-devel,提供nginx支持重写功能
yum install -y pcre pcre-devel
#安装zlib,zlib 库提供了很多压缩和解压缩的方式,nginx 使用 zlib 对 http 包内容进行 gzip 压缩
yum install -y zlib zlib-devel
#安装Open SSL,安全套接字层密码库,用于通信加密
yum install -y openssl openssl-devel
二、下载并解压nginx安装包
1、下载nginx安装包
#创建一个文件夹
cd /usr/local
mkdir nginx
cd nginx
wget http://nginx.org/download/nginx-1.16.1.tar.gz
也可以通过nginx官网下载
下载完成后将压缩包通过ssh命令使用winscp工具或其他工具上传至服务器
2、解压nginx安装包
#解压缩包,直接tar -xvf nginx安装包所在路径
tar -xvf nginx-1.16.1.tar.gz
三、安装nginx
#进入nginx目录
cd /usr/local/nginx
#进入目录
cd nginx-1.16.1
#编译 执行命令 考虑到后续安装ssl证书 添加两个模块 如不需要直接执行./configure即可
./configure --with-http_stub_status_module --with-http_ssl_module
#执行make命令(要是执行不成功请检查最开始安装的四个依赖有没有安装成功)
make
#执行make install命令
make install
补充查看编译参数
# 查看编译参数
./configure --help | more
nginx版本信息查看
/usr/local/nginx/sbin/nginx -V
nginx配置服务
目前nginx都是通过命令执行的,在nginx运行过程中,需要nginx作为系统的服务运行。以systemctl命令运行服务
配置服务文件
vi /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 reload
ExecStop=/usr/local/nginx/sbin/nginx quit
PrivateTmp=true
[Install]
WantedBy=multi-user.target
五、停止、重启nginx
cd /usr/local/nginx/sbin
# 停止指令
./nginx -s stop
# 或
./nginx -s quit
# 重启命令
./nginx -s reload
# 查看nginx进程
ps -ef|grep nginx
# 启动验证
/usr/local/nginx/sbin/nginx
六、设置开机自启动nginx
#编辑
vim /etc/rc.local
#最底部增加这一行
/usr/local/nginx/sbin/nginx
ll查看下rc.local文件,如果不是绿色表示没有执行权限,则执行指令chmod +x /etc/rc.local
七、补充
若要修改监听端口,可打开nginx的配置文件进行修改。
# 打开配置文件
vi /usr/local/nginx/conf/nginx.conf
将端口号改成8089(随便挑个端口)。
将localhost修改为你服务器的公网ip地址。
若想使用外部主机访问nginx,上一步中若修改默认的80端口为8089,则需要关闭服务器防火墙或开放nginx服务端口。
centOS6及以前版本使用命令:
systemctl stop iptables.service
centOS7关闭防火墙命令:
systemctl stop firewalld.service
关闭防火墙会导致服务器有一定风险,所以建议是单独开放服务端口:
firewall-cmd --zone=public --add-port=8089/tcp --permanent
# 移除指定端口号
firewall-cmd --zone=public --remove-port=8899/tcp --permanent
查询端口号8089 是否开启:
firewall-cmd --query-port=8089/tcp
重启防火墙:
firewall-cmd --reload
查看firewall防火墙状态和开放端口
# 查看firewall防火墙状态
systemctl status firewalld
# 查看firewall防火墙开放端口
firewall-cmd --list-ports
禁止firewall防火墙开机启动
#禁止firewall开机启动
systemctl disable firewalld.service
# 查看帮助信息
cd /usr/local/nginx/sbin
./ngxin -h
# 查看安装时配置
cd /usr/local/nginx/sbin
./nginx -V
# 查看配置文件是否正确
cd /usr/local/nginx/sbin
./nginx -t
直接使用nginx指令,若提示未找到命令
# 编辑/etc/profile文件vim /etc/profile在末尾处添加
PATH=$PATH:/usr/local/nginx/sbin
export PATH
# 执行指令
source /etc/profile