1.下载nginx安装包
上传到服务器上,在/usr/local/下。解压并重命名为nginx
tar -zxvf nginx.xx.tar.gz
mv nginx.1.18.0 nginx
2.检查项目基础环境
rpm -qa |grep pcre zlib openssl # 三个一个一个试 如果出现版本信息则说明已经安装
# PS:注意nginx可能不支持pcre2
# 检查gcc和c++ 出现版本号则说明存在
gcc -v
g++ -v
# 如果不存在gcc环境,则需要手动安装
# 1.可以联网时使用该命令一键安装所有依赖 然后手动安装pcre
yum -y install make zlib zlib-devel gcc-c++ libtool openssl openssl-devel
# 安装pcre
#解压
tar -zxvf pcre-xxx.tar.gz
#进入文件夹
cd pcre-xxx
#编译
./configure
#安装
make && make install
# 2.不能联网时使用源码安装,下载所有依赖包
# PS:阿里云盘,开发工具-》依赖工具包-》 nginx源码安装依赖包-》gcc 的所有RPM包,上传到服务器,所有rpm包放在同一个文件夹 使用命令批量安装
rpm -Uvh *.rpm --nodeps --force
# 检查gcc和c++ 出现版本号则说明安装成功
gcc -v
g++ -v
# 如果不存在pcre zlib openssl 手动安装
# 上传压缩包至服务器 解压每个文件,文件下按顺序运行同样的命令
./configure
make
make install
# 使用rpm检查是否安装成功
# 安装openssl
#1、下载
wget https://www.openssl.org/source/old/1.1.1/openssl-1.1.1.tar.gz
#2、解压并切换目录
tar -zxvf openssl-1.1.1.tar.gz
cd openssl-1.1.1
#3、设定Openssl 安装,( --prefix )参数为欲安装之目录,也就是安装后的档案会出现在该目录下
./config --prefix=/usr/local/openssl
#4、执行命令
./config -t
#5、执行make、make install,编译Openssl
make & make install
3.安装nginx
# 上传nginx压缩包至 /usr/local/下,不用重命名
#解压
tar -zxvf nginx-1.18.0.tar.gz
#进入解压后目录
cd nginx-1.18.0/
#配置(如果提示没权限,切换root用户进行)
./configure --prefix=/usr/local/nginx --with-http_stub_status_module --with-http_ssl_module
#编译
make & make install #(和安装同时)
#安装
make install
#检查是否安装成功,返回版本信息 安装完成后的路径为 prefix=/usr/local/nginx 指定路径
/usr/local/nginx/sbin/nginx -v
# PS注意端口放行
4.问题
4.1已经安装了pcre zlib openssl 在nginx ./configure时还是提示没有pcre环境
该报错一般在源码安装时出现
# 此时需要检查 dev环境 pcre-devel zlib-devel 和openssl-devel
# 如果未安装,则需要手动安装 路径:阿里云盘 开发工具-》依赖工具包-》 nginx源码安装依赖包-》devel下的安装包 注意版本
# 不匹配去http://www.rpmfind.net/linux/rpm2html/search.php?query=pcre-devel(x86-64) 该网站搜索对应版本
rpm -Uvh *.rpm --nodeps --force
安装完成后重新安装nginx
PS:如果 rpm -qa|grep pcre显示存在,并且已经装了devel的情况下, 还是提示pcre找不到,则需要手动安装pcre/openssl/zlib
手动安装完依旧找不到时可以尝试指定依赖路径(指定到依赖的安装路径上 否则在nginx编译的时候依旧会报错)
./configure --prefix=/usr/local/nginx --with-http_stub_status_module --with-http_ssl_module --with-pcre=/home/jeuso/dependent/pcre-8.35 --with-openssl=/home/jeuso/dependent/openssl-1.1.1
4.2 安装完成后没有sbin文件
在安装时,不要重命名nginx-1.18.0文件夹,./configure --prefix=/usr/local/nginx该配置指定的路径则为安装后的路径此时所有操作在该路径下执行
重命名后make install时可能会报错文件重复存在
‘conf/koi-win’ 与’/usr/local/nginx/conf/koi-win’ 为同一文
4.3启动成功,但是访问500, 日志文件提示
rewrite or internal redirection cycle while internally redirecting to “/index.html“
1.首先检查配置文件中路径是否正确
2.如果路径完全正确的情况下,可能是权限不够,检查nginx.conf配置文件首行,取消屏蔽,user 改为root
4.4 需要单独安装make命令
路径:阿里云盘 开发工具-》依赖工具包-》 nginx源码安装依赖包
5.操作命令
# 启动 后面可以指定配置文件路径
./sbin/nginx
# 重新加载配置文件
./sbin/nginx -s reload
# 检查配置文件是否正常
./sbin/nginx -t # 后面也可跟着配置文件路径,检查指定配置文件
6.配置文件示例
server {
listen 8079; # 监听的端口
server_name nb_smart; # 服务名称
location / {
root /home/jeuso/work/smartWeb/dist; # 页面根目录
index index.html index.htm;
try_files $uri $uri/ /index.html; # 解决vue刷新总是跳转首页问题, 中间空格不可省略
}
location /api/ { # api代理
proxy_pass http://192.168.10.101:8011/; # 后台路径
proxy_set_header Cookie $http_cookie; # 携带cookie
}
}