前端开发者应该知道的 Centos/Dokcer/Nginx/Node/Jenkins 操作( 长文)
服务器作为开发的一环,并且现在非常多的商业公司部署在生产环境上的服务器都是CentOS
系统! 让我们了解了解也在情理之中!
作为前端开发者,我们应该跳出自己的一亩三分地,跳出舒适区。扩大自己的技术广度和深度,只有这样!我们才能"做大做强,再创辉煌"
本篇文章旨在介绍在 Centos 上的一些常见环境配置技巧,为"前端小白"们在CentOS
的道路上更进一步!
Centos
Centos 是一个基于 Linux 的开源免费操作系统,下面列出一些常用操作
# 本地拷贝文件到远程服务器
scp output.txt root@47.93.242.155:/data/
output.txt
:本地文件root
:登录远程服务器的账号47.93.242.155
:远程服务器的 IP/data/
:远程服务器的目录
# 拷贝D盘https目录下的所有文件到 远程的 /data 目录
scp D:/https/* root@47.93.242.155:/data
本地链接远程 Centos 服务器
ssh -p 端口 用户名@服务器IP
例子:
ssh -p 22 root@47.93.242.155# 输入登录密码# 成功
yum 切换为阿里源
cd /etc/yum.repos.d/curl -o /etc/yum.repos.d/CentOS-Base.repo https://mirrors.aliyun.com/repo/Centos-8.repo# 重新生成缓存--查看执行结果,如果有aliyun 字样就算成功
yum makecache
其他
# 创建 /data/test 目录
mkdir /data/test# 创建 /data/newtest 目录
mkdir /data/newtest# 创建 /data/test/index.html 文件
touch /data/test/index.html# 编辑文件
vi /data/test/index.html# 查看文件内容
cat /data/www/index.html# 将 `test`目录下的所有文件复制到 `newtest`目录 下
cp –r /data/test/* /data/newtest# 删除 /data/newtest/index.html 文件
rm -rf /data/newtest/index.html# 将 `test`目录下的所有文件移动到新目录 `newtest`目录 下
mv /data/test/* /data/newtest
# 查看当前目录的路径
pwd
# 检查端口被哪个进程占用
netstat -lnp|grep 88 #88请换为你需要的端口,如:80
执行netstat -lnp|grep 端口号
之后会打印出被占用的进程及其编号
# 杀掉编号为1777的进程(请根据实际情况输入)
kill -9 1777
查看当前 Centos
操作系统发行版信息
cat /etc/redhat-release
Nginx 服务器搭建
Nginx 是一个高性能的 HTTP 和反向代理 web 服务器,使用 nginx 网站有:百度、京东、新浪、网易、腾讯、淘宝…。
Centos 下安装 Nginx 服务器
这里我们使用 yum
安装 Nginx 服务器。
yum install -y nginx
启动 Nginx 服务器
安装后的 Nginx 没有启动,先启动 Nginx 服务器。
nginx
此时,访问 http://<您的域名或IP>
可以看到 Nginx 的测试页面
如果无法访问,请重试用
nginx -s reload
命令重启 Nginx
配置静态服务器访问路径
外网用户访问服务器的 Web 服务由 Nginx
提供,Nginx
需要配置静态资源的路径信息才能通过 url
正确访问到服务器上的静态资源。
打开 Nginx
的默认配置文件 /etc/nginx/nginx.conf
,修改 Nginx 配置
vi /etc/nginx/nginx.conf
将默认的 /usr/share/nginx/html
; 修改为: /data/www
;,如下:
示例代码:/etc/nginx/nginx.conf
user nginx;
worker_processes auto;
error_log /var/log/nginx/error.log;
pid /run/nginx.pid;include /usr/share/nginx/modules/*.conf;events {worker_connections 1024;
}http {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 /var/log/nginx/access.log main;sendfile on;tcp_nopush on;tcp_nodelay on;keepalive_timeout 65;types_hash_max_size 2048;include /etc/nginx/mime.types;default_type application/octet-stream;include /etc/nginx/conf.d/*.conf;server {listen 80 default_server;listen [::]:80 default_server;server_name _;# 修改为以下路径root /data/www;include /etc/nginx/default.d/*.conf;location / {}error_page 404 /404.html;location = /40x.html {}error_page 500 502 503 504 /50x.html;location = /50x.html {}}}
配置文件将 /data/www/static
作为所有静态资源请求的根路径,如访问: http://<您的域名或IP>/static/index.js
,将会去 /data/www/static/
目录下去查找 index.js/index.html
。现在我们需要重启 Nginx 让新的配置生效,如:
nginx -s reload
创建第一个静态文件
现在让我们新建一个静态文件,查看服务是否运行正常。
首先让我们在 /data
目录 下创建 www
目录,如:
mkdir -p /data/www
在 /data/www
目录下创建我们的第一个静态文件 index.html
touch /data/www/index.htmlvi /data/www/index.html
示例代码:/data/www/index.html
<!DOCTYPE html>
<html lang="zh"><head><meta charset="UTF-8" /><title>第一个静态文件</title></head><body><h1>Hello world!</h1></body>
</html>
现在访问 http://<您的域名或IP>/index.html
应该可以看到页面输出 Hello world!
到此,一个基于 Nginx 的静态服务器就搭建完成了,现在所有放在 /data/www
目录下的的静态资源都可以直接通过域名/IP 访问。
如果无显示,请刷新浏览器页面
Nginx 配置 SSL 泛域名证书
这里使用的是阿里云的免费证书,期限为 1 年
购买成功后进入ssl证书控制台
下载证书
下载申请好的 ssl 证书文件压缩包到本地并解压放到自己喜欢的目录,如D:/https/
。(这里是用的 pem 与 key 文件,文件名可以更改)。
在连接服务器的窗口中创建 /data/cert
目录用来存放证书文件
mkdir /data/cert
使用 scp
命令上传文件到远程服务器(这里需要新开一个终端,不要使用连接服务器的窗口):
scp D:/https/* root@47.93.242.155:/data/cert
上面的意思是拷贝D:/https/
目录下的所有文件到远程服务器的 /data/cert
目录中
D:/https/
:本地文件的绝对路径root
:通过 root 用户登录到远程服务器47.93.242.155
:远程服务器的 ip 地址/data/cert
:远程服务器上的路径
开启 443 监听
Nginx 启动后默认只监听 80 端口。
这里我们把 443 端口的监听也一并开启。
编辑全局配置文件
vi /etc/nginx/nginx.conf
示例代码:/etc/nginx/nginx.conf
,说明都在注释中
# For more information on configuration, see:
# * Official English Documentation: http://nginx.org/en/docs/
# * Official Russian Documentation: http://nginx.org/ru/docs/user nginx;
worker_processes auto;
error_log /var/log/nginx/error.log;
pid /run/nginx.pid;# Load dynamic modules. See /usr/share/nginx/README.dynamic.
include /usr/share/nginx/modules/*.conf;events {worker_connections 1024;
}http {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 /var/log/nginx/access.log main;sendfile on;tcp_nopush on;tcp_nodelay on;keepalive_timeout 65;types_hash_max_size 2048;include /etc/nginx/mime.types;default_type application/octet-stream;# Load modular configuration files from the /etc/nginx/conf.d directory.# See http://nginx.org/en/docs/ngx_core_module.html#include# for more information.include /etc/nginx/conf.d/*.conf;server {listen 80;# 修改域名server_name nsuedu.cn;# 如果是HTTP请求则重定向到HTTPSrewrite ^(.*) https://$host$1 permanent;}# Settings for a TLS enabled server.server {# 服务器端口使用443,开启ssllisten 443 ssl http2 default_server;listen [::]:443 ssl http2 default_server;# 输入你的域名server_name nsuedu.cn;# 修改静态文件的路径root /data/www;# ssl证书配置# 修改证书路径一ssl_certificate "/data/cert/4726867_www.nsuedu.cn.pem";# 修改证书路径二ssl_certificate_key "/data/cert/4726867_www.nsuedu.cn.key";ssl_session_cache shared:SSL:1m;ssl_session_timeout 10m; #缓存有效期ssl_ciphers HIGH:!aNULL:!MD5; #加密算法ssl_prefer_server_ciphers on; #使用服务器端的首选算法# Load configuration files for the default server block.include /etc/nginx/default.d/*.conf;location / {}error_page 404 /404.html;location = /40x.html {}error_page 500 502 503 504 /50x.html;location = /50x.html {}}}
重启 nginx
nginx -s reload
在浏览器中访问http://nsuedu.cn/
配置 Nginx 反向代理
客户端对代理服务器是无感知的,客户端不需要做任何配置,用户只请求反向代理服务器,反向代理服务器选择目标服务器,获取数据后再返回给客户端。
反向代理服务器和目标服务器对外而言就是一个服务器,只是暴露的是代理服务器地址,而隐藏了真实服务器的 IP 地址。
参考从原理到实战,彻底搞懂 Nginx!
访问路径:/api/getUser
- 当 nginx 配置文件
proxy_pass
的 url 末尾 带/
时:
server {listen 80;server_name www.123.com;location /api/ {proxy_pass http://127.0.0.1:18081/;}}
代理到后端的路径为:http://127.0.0.1:18081/getUser
,省略了匹配到的/api/
路径;
- 当 nginx 配置文件
proxy_pass
的 url 末尾 不带/
时:
server {listen 80;server_name www.123.com;location /api/ {proxy_pass http://127.0.0.1:18081;}}
代理到后端的路径为:http://127.0.0.1:18081/api/getUser
,连同匹配到的/api/
路径,一起进行反向代理;
Centos 下搭建 Node.js 环境
Node.js
是运行在服务端的 JavaScript
, 是基于 Chrome JavaScript V8
引擎建立的平台。
安装 Node.js 的几种方式
- 方法一:从
EPEL库
安装Node.js
–yum install nodejs
,不足:安装的node/npm
版本较低,需要手动切换版本 - 方法二:使用官方编译过的二进制数据包安装,不足:安装步骤繁杂
- 方法三: 通过
NVM
安装,方便快捷不足:安装时国外的网不好前端开发者应该知道的 Centos/Dokcer/Nginx/Node/Jenkins 操作( 长文)相关推荐
- 前端开发者应该知道的 Centos/Docker/Nginx/Node/Jenkins 操作
点击上方 程序员成长指北,关注公众号 回复1,加入高级 Node 进阶交流群 来源:ask_the_sky https://juejin.cn/post/6951684431597797389 服务器 ...
- 开发者都应该知道的 Centos/Docker/Nginx/Node/Jenkins 操作(长文,建议收藏)
来源:望道同学 https://juejin.cn/post/6951684431597797389 服务器作为开发的一环,并且现在非常多的商业公司部署在生产环境上的服务器都是CentOS系统! 让我 ...
- 前端人应该知道的 Centos/Docker/Nginx/Node/Jenkins 的基本操作
点击上方关注 前端技术江湖,一起学习,天天进步 来源:ask_the_sky https://juejin.cn/post/6951684431597797389 服务器作为开发的一环,并且现在非常多 ...
- 超实用,一口气学会 Centos/Docker/Nginx/Node/Jenkins 等基础操作
作者:ask_the_sky https://juejin.cn/post/6951684431597797389 服务器作为开发的一环,并且现在非常多的商业公司部署在生产环境上的服务器都是CentO ...
- 分享一些前端开发者需要知道的 API 接口常识
作者: 胡涂阿菌 链接:https://www.cnblogs.com/tanshaoshenghao/p/16215751.html 说实话,我非常希望自己能早点看到本篇文章,大学那个时候懵懵懂懂, ...
- 前端开发者应该知道的 CSS 小技巧
一些小技巧让你的CSS技术更专业 使用:not()去除导航上不需要的边框 为body添加行高 垂直居中任何元素 逗号分离的列表 使用负nth-child选择元素 使用SVG图标 文本显示优化 在纯CS ...
- 分享 10 个前端开发者需要知道的 JS 技巧
英文 | https://javascript.plainenglish.io/as-a-front-end-engineer-10-javascript-tricks-and-tips-you-sh ...
- 前端开发者需要知道的 package.json
在一个 JavaScript 项目中,package.json 是一个必须的文件,它的作用是管理项目中使用到的外部依赖包,同时它也是 NPM 命令的入口文件. package.json包含描述一个特定 ...
- 每一位Android开发者应该知道的Android体系架构和开发库
Android的体系架构鼓励组件重用,允许开发者发布共享Activity.Service并且访问其他应用程序的数据,还可以根据开发者制定的安全限制进行管理.话虽如此,今天我将分享一些关于Android ...
最新文章
- 深度丨2018年AI依然要面临解决的的5大技术难题
- 修改android studio中的avd sdk路径、avd sdk找不到的解决方案
- php 判断字符是否是数字_php判断输入是否是纯数字,英文,汉字的方法
- [css] 清除浮动的方式有哪些及优缺点?
- android搜索文字变色_Android实现TextView字符串关键字变色的方法
- Specification for springger thesis Writing
- Java多线程--对象的可见性
- BT5 R1不能启动ibus输入法解决方案
- jdbc链接mysql按照id查询_使用jdbc连接并操作Oracle数据库(增删改查IDUS)
- Oracle sql 错误 : ORA-01861: 文字与格式字符串不匹配和日期与字符串互转问题解决
- 第二次作业—熟悉使用工具
- 最新CCC认证目录范围(2019)
- Apache NiFi 简介
- 如何打开计算机控制界面,如何打开控制面板
【使用途径】
- 传说中的100句子记忆7000单词(51-100句)
- 荣耀猎人游戏本散热怎么样?测试一下就知道
- php----拷贝兔源代码分析dl函数和getdata函数
- vs的oxc000007b错误和key valid错误
- Excel数据分析:四六级数据报告-201806
- 自建WIFI热点传输应用评测: 还在用蓝牙传文件?你OUT了
热门文章
- xsmax进入dfu模式_iPhone如何进入DFU模式
- 李沐论文精读系列四:CLIP和改进工作串讲(LSeg、GroupViT、VLiD、 GLIPv1、 GLIPv2、CLIPasso)
- 软件测试管理工具——禅道(安装、讲解)
- 华为服务器RH2288 V2 BIOS配置
- 医学影像开源数据集汇总
- Android监听系统输入法键盘弹出显示与隐藏事件
- php微信里面换行符,如何在字符串中间加换行符js微信小程序实现人脸识别
- 一篇文章带你了解——巨量引擎平台广告审核规则
- 半监督分类算法简述,self-trainning,co-trainning
- 最简单的全球基站定位接口API
- 前端开发者应该知道的 Centos/Docker/Nginx/Node/Jenkins 操作