关于nginx:手把手教你10分钟在树莓派安装Nginx并部署页面乛ᴗ乛

核心思想:部署页面乛ᴗ乛

FIRST 在树莓派上装置Nginx

1.为什么要装Nginx?

咱们不是要部署页面么?那么问题来了,为啥要用Nginx,或者说,Nginx无能啥?

nginx [engine x] is an HTTP and reverse proxy server, a mail proxy server。
nginx [engine x] 是一个 HTTP 和反向代理服务器、一个邮件代理服务器和一个通用的 TCP/UDP 代理服务器。 —摘自nginx官网

现阶段咱们常常用到反向代理。

那么问题又来了,反向代理是个啥?

proxy 反向代理工具:
随着开发越来越偏差的前后端拆散,咱们在开发中不可避免地会碰到跨域的问题。proxy 就能够完满解决反向代理的问题,作为 webpack-dev-server 的主打性能之一, proxy 能够帮忙咱们代理到任何服务器,解决开发中碰到的跨域问题。 —摘自antd-pro老手须知局部

tips:留神这里的proxy反向代理工具只能解决“开发者环境”中遇到的跨域问题,将我的项目打包后部署时的跨域问题并没有解决—–应用Nginx解决乛ᴗ乛

那么问题又来了,跨域问题是什么?怎么产生的?

跨域的起源是浏览器同源策略的限度。浏览器为了平安,会限度不同源(两个协定名,域名,端口号都雷同的url才是同源)之间的DOM,数据,网络操作。

说得那么简单,简略一点

Nginx相当于一个跳板机,客户端的域名也是Nginx的域名。所以客户端首先拜访Nginx服务器,而后Nginx又把申请转发给服务器。当响应返回的时候又返回给客户端。

其中反向代理最重要的局部便是:匹配+转发

oK,准备常识筹备地差不多了,上面开始装置吧
实际会让你记住你本来记不住的货色乛ᴗ乛

1 装置Nginx

装置Nginx之前,先装置一些依赖
详情请见Nginx在linux上装置之前的筹备工作
(1)装置gcc g++的依赖库

sudo apt-get install build-essential
sudo apt-get install libtool

(2)装置pcre依赖库

sudo apt-get update
sudo apt-get install libpcre3 libpcre3-dev

(3)装置zlib依赖库

apt-get install zlib1g-dev

(4)装置ssl依赖库

apt-get install openssl

(5)装置Nginx

sudo apt-get install nginx

装置实现之后,在浏览器输出服务器的IP地址,呈现以下画面阐明Nginx装置胜利

Second 部署页面

装置实现之后理解下nginx的装置地位(每个版本都可能存在差别)

whereis nginx


其中/usr/sbin/nginx 为执行指令所在位置;
/etc/nginx 为nginx配置文件所在位置;
(1)如何部署页面
进入/etc/nginx 文件夹,咱们重点关注sites-available和sites-enabled
翻译过去就是【能够启用的站点】和【曾经启用的站点】

应用FTP工具登录到服务器之后能够看到 sites-enabled 上面默认有一个default,然而下面有一个相似快捷方式的图标,实际上这是一个软链接,链接的文件在 sites-available中

tips:当咱们更改sites-available中的default文件后,会发现sites-enabled中的default文件也同步扭转了

咱们能够间接批改【sites-available】的default 来设置第一个站点,如下就是default 的设置应用vim指令关上的状况(如果不相熟vim指令能够通过FTP工具把这个文件下载下来批改之后再上传)

其中:

1.listen 9999:示意监听9999端口

2.root /var/www/html/bigDataweb :示意站点的目录放在/var/www/html/bigDataweb文件夹上面

然而,当初只是部署了页面,还没有设置反向代理

在没有设置反向代理的状况下,你能看到页面,然而发送的申请会报错乛ᴗ乛

根本配置:

server {
        listen       80;    #监听端口
        server_name  192.168.4.32;   #监听地址
        
        root /home/ubuntu/tennis_match_backstage/dist;  #/html目录
        index index.html;      #设置默认页       
        
        location  ~ /example1/ {  
           proxy_pass http://127.0.0.1:5000;     #申请转向      
        } 
    }

location指令阐明:
~ : 示意uri蕴含正则表达式,且辨别大小写。
~* : 示意uri蕴含正则表达式,且不辨别大小写。
= : 示意uri不含正则表达式,要求严格匹配。

特地留神

nginx如何配置代理转发

🆗,在理解Nginx的匹配转发机制后,那么问题来了,哪些要转发?哪些不转发?怎么标识?

一般来讲,要转发的都是发送申请的url,因为发送申请才会呈现跨域问题,呈现跨域问题才会应用反向代理,要须要应用反向代理才会应用Nginx😀

tips:其实这才是正确的逻辑程序(发现问题👉解决问题)

那么,页面url和申请url怎么辨别呢?
不同的我的项目,不同的团队可能有截然不同的办法,大多会抉择加一个字段来标识,正好用来给Nginx匹配

设置实现后,即可应用指令启动服务

sudo /usr/sbin/nginx -t //查看配置是否正确

sudo /usr/sbin/nginx  //启动服务

sudo /usr/sbin/nginx -s reload //从新载入配置

其中,运行指令sudo /usr/sbin/nginx时,可能会报错(Address is in use或者 cant bind):
解决方案:

netstat -aptn # 查看端口应用状况

tips:如果没有装置netstat须要先装置netstat,更多具体请自行查阅

sudo apt install netstat

查看端口应用状况,更换配置中所应用的端口

部署实现后,拜访配置中的ip地址就能看到部署的页面咯乛ᴗ乛

评论

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

这个站点使用 Akismet 来减少垃圾评论。了解你的评论数据如何被处理