Mac电脑在远程内网Linux服务器中离线安装和配置nginx

1,256 阅读3分钟

应用场景

公司需要部署的Linux服务器无法连接外网,需要安装nginx。在公司的局域网中,本机电脑(Mac)可以远程连接到Linux服务器,需要把nginx安装包在本机下载好后,上传到服务器去安装,安装过程中会缺失一些包,根据提示在本机下载缺失包,上传到服务器安装。

下载nginx离线包

nginx-1.9.9.tar.gz Mac上传离线压缩包到linux服务器 通过scp命令上传,如

ssh root@ip // 输入密码回车,登录远程服务器成功
使用scp 把本机压缩包上传至Linux服务器
scp /目录/client.zip root@ip:/home/xx目录 // 输入密码,回车,等待...上传成功

linux服务器解压文件

解压 zlib-1.2.11.tar.gz => tar -xvf zlib-1.2.11.tar.gz

初始化和安装

切到安装包路径,执行./configure命令初始化,执行成功后,继续执行make && make install 命令进行安装。

注意⚠️: 由于是内网,执行./configure命令后,可能会缺失一些包,根据提示,我们去本地电脑下载压缩包,上传到内网服务器上,进行解压,初始化,安装,直到执行./configure命令不报错后,才表示初始化成功,再执行make && make install 命令。

配置环境变量

测试是否安装成功

启动Nginx:/usr/local/nginx/sbin/nginx 报以下错误:

1、报错提示/usr/local/nginx/sbin/nginx: error while loading shared libraries: libpcre.so.0: cannot open shared object file: No such file or directory

输入 **ldd (which/usr/local/nginx/sbin/nginx)进行排查ldd(which /usr/local/nginx/sbin/nginx)** 进行排查 ldd (which /usr/local/nginx/sbin/nginx)

提示缺少: image.png

解决办法:

1、首先确认已经安装好pcre 软件(nginx 依赖该软件),"我确认装好了pcre"
2、创建软连接,对于/lib64/* 64位系统来说,输入以下命令:
ln -s /usr/local/lib/libpcre.so.0 /lib64
建立软连接成功后,继续输入 /usr/local/nginx/sbin/nginx 进行测试,回车后没有报错表示安装成功

然后在浏览器中输入服务器ip地址,出现如下界面表示安装成功。 image.png

配置文件

切换到cd /usr/local/nginx/conf路径, image.png

vim nginx.conf 例如:nginx部署vue项目

 server {
        listen       8000;
        location /{
            autoindex on;
            root   /home/project/client;
            index  index.html;
            try_files $uri $uri/ @router /index.html;
            add_header Cache-Control "no-cache";
            add_header X-Frame-Options SAMEORIGIN;
        }
        location @router {
            rewrite ^.*$ /index.html last;
        }      
        location /prod-api/{
          rewrite ^/prod-api/(.*) /$1 break;
          proxy_set_header Host $http_host;
          proxy_set_header X-Real-IP $remote_addr;
          proxy_set_header REMOTE-HOST $remote_addr;
          proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
          proxy_pass http://ip:8080;
       }
    }

找不到的包

unzip unzip client.zip -bash: unzip: 未找到命令 解决方法: 离线安装包:downloads.sourceforge.net/infozip/unz…

1.tar zxvf unzip552.tar.gz 
2.cd unzip-5.52/ 
3.cp unix/Makefile ./ 
4.make generic 
5. make install 
// 执行完后就可以执行 unzip 命令啦

启动和重启

2.6 启动、停止nginx 启动和停止nginx的命令

// 1、先进入nginx的目录 
cd /usr/local/nginx/sbin/ 
// 2、执行命令 
./nginx 开启 
./nginx -s stop 停止 
./nginx -s quit 
./nginx -s reload

在执行./nginx命令时出现报错:[root@localhost sbin]# ./nginx nginx: [emerg] bind() to 0.0.0.0:80 failed (98: Address already in use) 出现80端口被占用

解决办法: 杀死80端口进程,执行如下命令:

ps -A | grep nginx  
kill -9 pid1 
kill -9 pid2

// 杀死对应的两个进程之后, 启动nginx ./nginx 没有报错后,在浏览器中输入地址如:http://ip:8000/ 部署成功啦