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
|
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 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
|
1 2
| cd nginx-1.12.2 ./configure
|
执行make & make install
进行编译安装
安装成功后会在/usr/local/
下多个nginx
目录(如果执行./configure
没有配置参数的话默认是这个目录)
进入usr/local/nginx/sbin
启动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
|
访问成功可看到:
配置环境变量
因为执行命令都要切入/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
目录。