CentOS安装nginx,部署vue项目

1、安装nginx依赖包
yum install gcc-c++ -y
yum install pcre pcre-devel -y
yum install zlib zlib-devel -y
yum install openssl openssl-devel -y


2、下载安装包和解压
# 安装之前,最好检查一下是否已经安装有nginx
find -name nginx
# 如果系统已经安装了nginx,那么就先卸载
yum remove nginx
# 首先进入/usr/local目录
cd /usr/local
# 从官网下载最新版的nginx
wget http://nginx.org/download/nginx-1.17.7.tar.gz
# 解压nginx压缩包
tar -zxvf nginx-1.17.7.tar.gz


3、开始安装
# 进入nginx目录
cd nginx-1.17.7
./configure --user=nobody --group=nobody --prefix=/usr/local/nginx --with-http_stub_status_module --with-http_gzip_static_module --with-http_realip_module --with-http_sub_module --with-http_ssl_module
make
make install
whereis nginx


4、启动
/usr/local/nginx/sbin/nginx
5、查看nginx运行进程状态
netstat -anptu | grep nginx
6、常用命令
cd /usr/local/nginx/sbin/
# 启动
./nginx
# 停止 相当于先查出nginx进程id再使用kill命令强制杀掉进程
./nginx -s stop
# 停止 相当于是待nginx进程处理任务完毕进行停止
./nginx -s quit
# 重启
./nginx -s reload
# 强制关闭
pkill nginx
# 查看nginx进程
ps aux|grep nginx


7、测试
默认80端口

 

8、打包vue文件
在自己的电脑(windows)上打包vue项目

# 进入项目目录
cd D:\myvue\myblog
# 打包命令
npm run build
这个时候,目录下就会生成dist文件

####

vue项目npm run build报错npm ERR! missing script: build(已解决)

 找了很多解决方法都不行,最后打开自己的package.json文件发现:build后面多了个:prod

最后执行命令:npm run build:prod

#####

 

9、打包文件上传CentOS服务器
使用xftp上传文件

 

10、配置 nginx.conf
打开:/usr/local/nginx/conf/nginx.conf 文件中间添加配置,完成后执行第六步常用命令:/usr/local/nginx/sbin/nginx –s reload

 
#user  nobody;
worker_processes  1;
 
#error_log  logs/error.log;
#error_log  logs/error.log  notice;
#error_log  logs/error.log  info;
 
#pid        logs/nginx.pid;
 
 
events {
    worker_connections  1024;
}
 
 
http {
    include       mime.types;
    default_type  application/octet-stream;
 
    #log_format  main  '$remote_addr - $remote_user [$time_local] "$request" '
    #                  '$status $body_bytes_sent "$http_referer" '
    #                  '"$http_user_agent" "$http_x_forwarded_for"';
 
    #access_log  logs/access.log  main;
 
    sendfile        on;
    #tcp_nopush     on;
 
    #keepalive_timeout  0;
    keepalive_timeout  65;
 
    #gzip  on;
 
    server {
        listen       80;
        server_name  localhost;
 
        #charset koi8-r;
 
        #access_log  logs/host.access.log  main;
 
        location / {
            root   html;
            index  index.html index.htm;
        }
 
        #error_page  404              /404.html;
 
        # redirect server error pages to the static page /50x.html
        #
        error_page   500 502 503 504  /50x.html;
        location = /50x.html {
            root   html;
        }
 
    }
    # *********************其余不动,添加以下配置  开始***********************
    server {
        listen       8001;
        server_name  localhost;
 
        #charset koi8-r;
        #access_log  logs/host.access.log  main;
 
        location / {           
            root   /home/myblog/web/dist;  #vue前端项目打包后放在这里             
            index  index.html index.htm;   #这个index.html  是上面dist目录下的index.html 
            try_files $uri $uri/ /index.html; # 解决刷新出现404                 
        }
 
        
        error_page   500 502 503 504  /50x.html;
        location = /50x.html {
            root   html;
        }
 
    }
    # *********************结束*********************
 
 
}

 



}
####

这次部署vue+Nginx的教训

1,打包的问题,我不懂打包的原理,把vue的代理去掉了,这是大问题,

2,Nginx的原理问题,我不懂Nginx代理的问题,导致配置搞了很久,这些搞了很久,

 

收获

但是这些坑都是踩过了,我对打包和Nginx的原理有了更深刻的认识,

另外就是我对跨域的问题也有了更新的认识,这很好,可以后端flask解决,也可以前端解决,很好,enjoy!

 

#####

前端vue+后端flask ,配置Nginx的时候出现的问题

```

# *********************其余不动,添加以下配置 开始***********************
server {
listen 9527;
server_name localhost;

#charset koi8-r;
#access_log logs/host.access.log main;

# 这是前端静态文件的配置,

location / {
root /root/qz/QZTestPlatform/dist; #vue前端项目打包后放在这里
index index.html index.htm; #这个index.html 是上面dist目录下的index.html
try_files $uri $uri/ /index.html; # 解决刷新出现404
error_page 405 =200 $request_uri;
}

 

# 这是后端接口的配置,
location /prod-api/ {
if ($request_method = 'OPTIONS') {
add_header Access-Control-Allow-Origin *;
add_header Access-Control-Allow-Methods GET,POST,PUT,DELETE,PATCH,OPTIONS;
return 200;
}


proxy_pass http://192.168.111.3:5000;
# proxy_pass http://127.0.0.1:5000/web-api/;
}

error_page 500 502 503 504 /50x.html;
location = /50x.html {
root html;
}

}
# *********************结束*********************

```

配置的时候,出现了两个问题,都是因为对于Nginx不够熟悉导致的,

1,Nginx出现了405了,这是因为我的Nginx配置接口的地方走到静态文件里面去了,

2,对于location的配置还是不够熟悉, 

 

 

####

 

posted @ 2021-11-15 18:54  技术改变命运Andy  阅读(339)  评论(0编辑  收藏  举报