共计 2332 个字符,预计需要花费 6 分钟才能阅读完成。
– 现在阅读的你,如果是个 FE,相信你不是个纯切图仔。反之,如果是,该进阶了,老铁!
前端的我们,已经不仅仅是做页面,写样式了,我们还需要会做相关的服务器部署。废话不多说,下面就从前端的角度来讲以下 nginx 的相关使用。
给我们的静态资源启一个 web 服务
给我们的 nodejs 的项目设置反向代理,80 端口访问
给我们的接口做转发
设置跨域请求
配置 https 服务的请求接口
登录云服务器
首先你得有一台 linux 服务器(用你电脑起个本地服务也 OK,这里不做这个介绍,我们用的是云服务器),如果没有,你可以上相关的云服务实验室开 1、2 个小时的服务器玩玩也行,这里推荐 阿里云的 https://edu.aliyun.com/lab/,和腾讯云的 https://cloud.tencent.com/dev…。下面是取阿里云开放实验室的服务器演示:
登录
安装 nginx (源码编译安装)
安装 nginx 的相关依赖
yum -y install gcc pcre pcre-devel zlib zlib-devel openssl openssl-devel
下载 nginx 包
wget http://nginx.org/download/ngi…
解压:
tar -zxvf nginx-1.15.8.tar.gz
编译安装
配置 nginx 安装选项
./configure –prefix=/usr/local/nginx
编译安装
make && make install
启动、查看进程
/usr/local/nginx/sbin/nginx
ps -ef | grep nginx
查看网页,nginx 启动成功。
补充命令:
/usr/local/nginx/sbin/nginx -t
// 查看 nginx 配置文件是否语法正确
/usr/local/nginx/sbin/nginx -s reload// 重新加载 nginx 配置
/usr/local/nginx/sbin/nginx -s stop
// 停止 nginx
我们要修改 nginx 的基本配置,做以下步骤:
cd /usr/local/nginx
mkdir vhosts
cd vhosts
vim active.conf
按 esc
再按 :wq 保存并退出
修改 nginx.conf
vim /usr/local/nginx/nginx.conf
在倒数第二行添加
include vhosts/*.conf
⬆️⬆️⬆️⬆️⬆️⬆️⬆️⬆️⬆️⬆️⬆️⬆️⬆️⬆️⬆️
(以上 nginx 的安装路径,可以自己自由选择)注意:下面具体的演示案例,是我个人的服务器,使用的是域名访问, 上面的实验服务器的时长限制,没办法做很多的业务操作。
到这里基本上配置好 nginx 的使用和扩展,下面就是我们要利用 nginx 实现一些功能了。
使用 nginx
1、给我们的静态资源启一个 web 服务
vim /usr/local/nginx/vhosts/active.conf
将 server 模块写进去,
server {
listen 8008;
server_name localhost;
root /usr/myfile/dist;
index index.html;
}
访问:
2、接口转发,跨域请求
server {
server_name vue.wtodd.wang;
charset utf-8;
location /nodejsapi/ {
proxy_pass http://localhost:5000/;
}
}
实际请求 http://localhost:5000/ 的接口,被代理到请求该域名 de /nodejsapi/ 下访问:
3、给我们其他端口启动的 nodejs 项目设置反向代理到 80 端口访问
server {
listen 80;
server_name csa.scampus.cn;
location / {
proxy_pass http://127.0.0.1:8000;
}
}
页面访问:
实际项目访问地址:
4、配置 https 服务的请求接口
这里涉及到了 https 证书的配置,这里不牵涉这个话题,这里 https://help.aliyun.com/docum… 是阿里云的免费 https 证书,可参照该步骤。有人说,前端为什么还要 https 的服务?微信小程序的服务接口,需要走 https 的哇!我们做 demo,不要自己会配置一下吗,省得找后台哇????
server {
listen 80;
server_name api.scampus.cn;
rewrite ^ https://$http_host$request_uri? permanent;
}
server {
listen 443;
ssl_certificate /etc/nginx/ssl/alyca.pem;
ssl_certificate_key /etc/nginx/ssl/alyca.key;
server_name api.scampus.cn;
ssl on;
ssl_session_timeout 5m;
ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:ECDHE:ECDH:AES:HIGH:!NULL:!aNULL:!MD5:!ADH:!RC4;
ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
ssl_prefer_server_ciphers on;
location / {
proxy_pass http://localhost:4000/;
}
}
访问:原先真实请求地址
配置 https 访问的地址:
总结:
这里 nginx 在前端的使用只是很少的一部分,比如做请求拦截、api 版本控制等,但这一些应用也是受到前端处理范围的局限,使得我们运用的也不多,相信以后随着“大前端“的发展, 我们会更多的使用 nginx 功能或类 nginx 服务功能。
欢迎品阅和指正!