nginx安装

nginx安装

安装nginx之前要保证各种依赖已经安装完成。
看自己想安装在哪个目录,我所有软件安装在/home/muzili/Documents/apps/下。

安装pcre

获取pcre压缩包
1
wget http://downloads.sourceforge.net/project/pcre/pcre/8.37/pcre-8.37.tar.gz

这样可能会比较慢,最好自己copy下载地址其他地方下载然后上传到相应位置。

解压文件
1
tar -zxvf pcre-8.37.tar.gz
进入解压后目录,执行./configure
1
2
cd pcre-8.37
./configure

最后可能会提示:

1
configure: error: You need a C++ compiler for C++ support

那就安装依赖重新执行./configure

1
sudo yum install -y gcc gcc-c++

执行成功会提示:

1
2
3
4
5
6
7
8
pcre-8.37 configuration summary:
Install prefix .................. : /usr/local
C preprocessor .................. : gcc -E
C compiler ...................... : gcc
C++ preprocessor ................ : g++ -E
C++ compiler .................... : g++
Linker .......................... : /usr/bin/ld -m elf_x86_64
省略...
执行make & make install进行编译安装
1
make & make install
查看是否安装成功
1
2
pcre-config --version
返回:8.37(版本号)

安装编译工具及库文件

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

安装nginx

下载nginx压缩包
1
wget http://nginx.org/download/nginx-1.12.2.tar.gz
解压文件
1
tar -xzvf nginx-1.12.2.tar.gz
进入解压后目录,执行./configure
1
2
cd nginx-1.12.2
./configure
执行make & make install进行编译安装
1
make & make install

安装成功后会在/usr/local/下多个nginx目录(如果执行./configure没有配置参数的话默认是这个目录)

进入usr/local/nginx/sbin启动nginx
1
sudo ./nginx

因为默认端口号是80,好像nginx端口号小于1024需要root权限,不然会报

1
nginx: [emerg] bind() to 0.0.0.0:80 failed (13: Permission denied)

大于1024的需要查看防火墙是否开放端口,没有的话需要开放端口即可

启动成功后浏览器输入nginx服务器IP

假如服务启动成功,但是访问失败,可能还是nginx端口未开放,手动开放重启防火墙和服务即可。

1
2
3
4
5
6
#(查看开放的端口)
sudo firewall-cmd --list-ports
#开放80端口
sudo firewall-cmd --zone=public --add-port=80/tcp --permanent
#重启防火墙
sudo firewall-cmd --reload

访问成功可看到:

1
2
Welcome to nginx!
省略...

配置环境变量

因为执行命令都要切入/usr/local/nginx/sbin目录才能执行命令,为了方便,直接配置到全局环境变量中。

1
2
3
4
5
6
7
sudo vim /etc/profile
#加入如下内容(因为之前自己配了java的,故在后边补加)
export PATH=$JAVA_HOME/bin:$PATH:/usr/local/nginx/sbin
#或者之前没配过其他的,直接
export PATH=/usr/local/nginx/sbin
#重新加载使其生效
source /etc/profile

然后就可以在任意地方使用nginx命令了,不知道什么原因默认低于1024的端口报没有权限,切到root用户或者sudo nginx还是会报找不到nginx命令。
所以建议修改nginx默认端口(我改的1025)。
假如修改了环境变量之前服务已经启动,直接执行nginx会提示

1
nginx: [emerg] bind() to 0.0.0.0:1025 failed (98: Address already in use)

或者执行nginx -s reload没返回

1
2
[muzili@jiev ~]$ nginx -s reload
[muzili@jiev ~]$

说明配置成功,可以任意地方执行nginx命令了。

以上是单机版。
假如为了做到高可用,那除了按照以上多几台nginx服务器外,还需要额外安装keepalived

1
yum install -y keepalived

安装成功后会在/etc目录生成keepalived目录。


nginx安装
http://www.muzili.ren/2022/06/11/安装nginx/
作者
jievhaha
发布于
2022年6月11日
许可协议