Linux环境下如何用nginx代理部署react项目

795 阅读4分钟


部署之前准备:1,react打包程序;2,Linux服务器登录账户密码;3,xsell客户端(用于操作Linux环境终端命令);4,各类安装包;

1.环境安装

1.1Linux环境下nginx安装与配置

部分Linux发布版系统默认安装了以及集成的nginx,查看方法:在根目录下输入ls/usr/local命令,若已有nginx文件夹说明已经集成。

在Linux系统没安装nginx的情况下:


安装nginx步骤如下:

因为nginx依赖库pcre与zlib,并且pcre依赖于gcc与gcc-c++,因此安装步骤如下:
  1. 安装gcc与gcc-c++库 
  2. 安装pcre库
  3. 安装zlib库
  4. 安装nginx
如下为详细安装过程(使用xsell):
  1. 安装gcc与gcc-c++库 :

    yum install gcc gcc-c++


遇到y/n,填y。

表示安装成功!

2.安装pcre库:

先预先准备本地的pcre2-10.32.zip,然后上传到Linux服务器;

rz
unzip pcre2-10.32.zip
 
./pcre2-10.32/configure
 
make
 
make install


  • rz指令表示上传文件,弹出本地文件夹上传zip包


    表示上传成功!

  • unzip pcre2-10.32.zip表示解压


  • ./pcre2-10.32/configure运行配置


  • make编译


  • make install安装


安装完成!

3.安装zlib库,首先下载zlib-1.2.11.tar.gz包,方法和安装pcre类似不在啰嗦。

rz
tar -zxvf zlib-1.2.11.tar.gz
 
./zlib-1.2.11/configure
 
make
 
make install

4.安装nginx

tar -zxvf nginx-1.15.8.tar.gz
 
./configure
 
make
 
make install

若安装过程遇到问题:


解决方法如下:

yum -y install pcre-devel openssl openssl-devel
./configure --prefix=/usr/local/nginx
make
make install

一切搞定

5.启动nginx

cd /usr/local/nginx/sbin
 
./nginx

启动后在浏览器输入

http:{服务器ip}:80访问

看到如下界面则表示安装成功:


如果出现以下问题:


解决方法:

sudo fuser -k 80/tcp
service nginx start

备注:若启动时提示

./nginx: error while loading shared libraries: libpcre.so.1: cannot open shared object file: No such file or directory

是因为未给动态链接库创建链接,执行如下命令即可

32位系统

ln -s /usr/local/lib/libpcre.so.1 /lib

64位系统

ln -s /usr/local/lib/libpcre.so.1 /lib64

1.2netcore安装

首先上传netcore包,netcore作用详见www.cnblogs.com/xiaoliangge…

安装步骤和命令如下:

下载地址:

https://dotnet.microsoft.com/download/dotnet-core/2.1

安装命令:

mkdir -p $HOME/dotnet && tar zxvf dotnet-sdk-2.1.801-linux-x64.tar.gz -C $HOME/dotnet
export DOTNET_ROOT=$HOME/dotnet 
 
export PATH=$PATH:$HOME/dotnet

PATH是配置环境变量,可以直接配置解压后dotnet所在的物理路径,配置dotnet安装目录链接:

sudo ln -s /var/dotnet/dotnet /usr/bin

配置后,运行命令:dotnet --info,出现如下代表安装成功:


1.3端口开通

此处已开通8125端口为例,开通及查看命令6、7、8、9命令如下(在root目录):

1.查看已打开的端口#netstat -anp

2.查看想开的端口是否已开#firewall-cmd --query-port=666/tcp

若此提示

FirewallD is not running

表示为不可知的防火墙
需要查看状态并开启防火墙

3.查看防火墙状态#systemctl status firewalld

running状态即防火墙已经开启,dead状态即防火墙未开启

4.开启防火墙,#systemctl start firewalld

没有任何提示即开启成功

5.开启防火墙#service firewalld start

关闭防火墙# systemctl stop firewalld

centos7.3上述方式可能无法开启,可以先#systemctl unmask firewalld.service

然后# systemctl start firewalld.service

6.查看想开的端口是否已开

# firewall-cmd --query-port=666/tcp

提示no表示未开

7.开永久端口号

firewall-cmd --add-port=666/tcp --permanent

提示success表示成功

8.重新载入配置

# firewall-cmd --reload

比如添加规则之后,需要执行此命令

9.再次查看想开的端口是否已开

# firewall-cmd --query-port=666/tcp

提示yes表示成功

10.若移除端口

#firewall-cmd --permanent --remove-port=666/tcp

11.修改iptables有些版本需要安装iptables-services 

#yum install iptables-services

然后修改进目录

/etc/sysconfig/iptables

修改内容

2.应用程序安装

  1. 上传前端包到Linux服务器,可以放在data目录下,完成后解压
  2. 进入目录/usr/local/nginx/conf,修改nginx配置文件nginx.conf,配置如下:



修改后,进入目录/usr/local/nginx/sbin,重启nginx服务,重启命令:

./nginx -s reload

也可以配置nginx环境变量,这样在任何目录nginx命令均可运行,步骤如下:

ln -s /usr/local/nginx/sbin/nginx /usr/local/sbin
ll /usr/local/sbin/ | grep "nginx"



最后在浏览器输入地址 http://{服务器地址}:8125/#/即可访问