来源:望道同学

https://juejin.cn/post/6951684431597797389

服务器作为开发的一环,并且现在非常多的商业公司部署在生产环境上的服务器都是CentOS系统! 让我们了解了解也在情理之中!

作为前端开发者,我们应该跳出自己的一亩三分地,跳出舒适区。扩大自己的技术广度和深度,只有这样!我们才能"做大做强,再创辉煌"

本篇文章旨在介绍在 Centos 上的一些常见环境配置技巧,为"前端小白"们在CentOS的道路上更进一步!

Centos

logo_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-logo

Nginx 是一个高性能的 HTTP 和反向代理 web 服务器,使用 nginx 网站有:百度、京东、新浪、网易、腾讯、淘宝...。

Centos 下安装 Nginx 服务器

这里我们使用 yum 安装 Nginx 服务器。

yum install -y nginx
复制代码

启动 Nginx 服务器

安装后的 Nginx 没有启动,先启动 Nginx 服务器。

nginx
复制代码

此时,访问 http://<您的域名或IP> 可以看到 Nginx 的测试页面

如果无法访问,请重试用 nginx -s reload 命令重启 Nginx

nginx-index

配置静态服务器访问路径

外网用户访问服务器的 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 访问。

如果无显示,请刷新浏览器页面

indexHTML

Nginx 配置 SSL 泛域名证书

这里使用的是阿里云的免费证书,期限为 1 年

aliyun-free-cert

购买成功后进入ssl证书控制台 下载证书

aliyun-download-cert

下载申请好的 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/

https-success

配置 Nginx 反向代理

客户端对代理服务器是无感知的,客户端不需要做任何配置,用户只请求反向代理服务器,反向代理服务器选择目标服务器,获取数据后再返回给客户端。

反向代理服务器和目标服务器对外而言就是一个服务器,只是暴露的是代理服务器地址,而隐藏了真实服务器的 IP 地址。

20210416165016

参考从原理到实战,彻底搞懂 Nginx![1]

访问路径:/api/getUser

  1. 当 nginx 配置文件 proxy_passurl 末尾 带/:

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/路径;

  1. 当 nginx 配置文件 proxy_passurl 末尾 不带/

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-logo

Node.js 是运行在服务端的 JavaScript, 是基于 Chrome JavaScript V8 引擎建立的平台。

安装 Node.js 的几种方式

  1. 方法一:从EPEL库安装Node.js--yum install nodejs不足:安装的node/npm版本较低,需要手动切换版本

  2. 方法二:使用官方编译过的二进制数据包安装,不足:安装步骤繁杂

  3. 方法三: 通过NVM安装,方便快捷不足:安装时国外的网不好

    开发者都应该知道的 Centos/Docker/Nginx/Node/Jenkins 操作(长文,建议收藏)相关推荐

    1. 前端开发者应该知道的 Centos/Docker/Nginx/Node/Jenkins 操作

      点击上方 程序员成长指北,关注公众号 回复1,加入高级 Node 进阶交流群 来源:ask_the_sky https://juejin.cn/post/6951684431597797389 服务器 ...

    2. 前端开发者应该知道的 Centos/Dokcer/Nginx/Node/Jenkins 操作( 长文)

      服务器作为开发的一环,并且现在非常多的商业公司部署在生产环境上的服务器都是CentOS系统! 让我们了解了解也在情理之中! 作为前端开发者,我们应该跳出自己的一亩三分地,跳出舒适区.扩大自己的技术广度 ...

    3. 前端人应该知道的 Centos/Docker/Nginx/Node/Jenkins 的基本操作

      点击上方关注 前端技术江湖,一起学习,天天进步 来源:ask_the_sky https://juejin.cn/post/6951684431597797389 服务器作为开发的一环,并且现在非常多 ...

    4. 超实用,一口气学会 Centos/Docker/Nginx/Node/Jenkins 等基础操作

      作者:ask_the_sky https://juejin.cn/post/6951684431597797389 服务器作为开发的一环,并且现在非常多的商业公司部署在生产环境上的服务器都是CentO ...

    5. 每一个JavaScript开发者都应该知道的10道面试题

      JavaScript十分特别.而且差点儿在每一个大型应用中起着至关关键的数据.那么,究竟是什么使JavaScript显得与众不同,意义非凡? 这里有一些问题将帮助你了解其真正的奥妙所在:   1.你能 ...

    6. 每个 Apache Kafka 开发者都应该知道的5件事

      Apache Kafka 是一个开源流处理平台,如今有超过30%的财富500强企业使用该平台.Kafka 有很多特性使其成为事件流平台(event streaming platform)的事实上的标准 ...

    7. docker+nginx+node+jenkins从零开始部署你的前端服务

      前言 如果你不甘于做一个纯粹的页面仔,想了解一个web应用从编写到到发布到用户可见的全过程,或是想自己玩一点新东西,突破原有的技术圈层,那么本文将是一个很好的入门指南.笔者将从实战入手,尽可能细致地结 ...

    8. 每个Java开发者都应该知道的5个JDK工具

      摘要:有许许多多的JDK工具呈现在大家面前,但最常用的莫过于java.exe.javac.exe.jar等.除了这几个,还有哪些呢?大家不妨看看本文作者推荐的5个JDK工具. [编者按]JDK是Jav ...

    9. 每个Web开发者都应该知道的SOLID原则

      原创: 前端之巅 前端之巅 10月20日 作者|Chidume Nnamdi 编辑|谢丽 面向对象的编程并不能防止难以理解或不可维护的程序.因此,Robert C. Martin 制定了五项指导原则, ...

    最新文章

    1. vue openlayer单击地图事件循环多次执行_VUE生命周期函数面试题
    2. IdentityServer4 使用OpenID Connect添加用户身份验证
    3. python的全称_python名称空间介绍
    4. VTK:平面源用法实战
    5. Redis 服务安装
    6. java调用dubbo服务器_dubbo源码分析-服务端注册流程-笔记
    7. java 一些容易忽视的小点-类和对象
    8. 关于CMS垃圾回收器的几个问题
    9. hdu 2586 How far away? (LCA模板)
    10. 【实践】微博多尺度序列推荐算法实践.pdf(附下载链接)
    11. Spring Boot 集成 Spring Security 实现权限认证模块
    12. ubuntu14.04 安装tensorflow始末
    13. python抓取微博数据_技术入门 | python利用微博api获取数据
    14. UCSC 基因组浏览器配置详解
    15. 一键生成AppIcon 多种尺寸图标
    16. 批量压缩调整多个 jpg、png、bmp 等图片的质量,从而减小图片体积
    17. 什么是ECS框架?讲解 + 实战带你入门ECS框架
    18. 杀戮间Cache文件夹整理
    19. 【解决方法】Windows Server 2016/2019无法安装Flash
    20. Uniapp或H5之ORC识别与自定义照相机

    热门文章

    1. 现代C++教程1X读书笔记
    2. 字体的大小(pt)和像素(px)如何转换?
    3. 【C语言】如何安装 Visual studio 2022 ?
    4. 工业锅炉远程监控平台_工业物联网解决方案案例
    5. 没有自制力,你有资格玩吗?
    6. 小强机器人用户手册和教程目录
    7. linux控制cpu占用率
    8. 如何计算做T的收益?
    9. linux mint ubuntu 16.06,Ubuntu和Linux Mint:安装Pinta 1.6工具
    10. 如何有效的避免空指针异常