Linux---虚拟主机配置(基于域名、基于ip、基于端口)以及上线商城系统(nodejs、npm、vue、samba、nfs)

ops/2024/9/23 3:58:54/

目录

1.基于域名的虚拟主机

1.配置文件结构

2.配置过程

2.基于ip的虚拟主机

linux%E7%B3%BB%E7%BB%9F%E4%B8%AD%E6%B7%BB%E5%8A%A0%E6%96%B0%E7%9A%84ip%E5%9C%B0%E5%9D%80-toc" style="margin-left:120px;">1. 在linux系统中添加新的ip地址

2.修改配置文件

3.基于端口的虚拟主机

1.修改配置文件

2.重载nginx

3.开放端口或防火墙

4.访问测试

4.上线商城系统

1.安装nodejs

2.安装npm

3.安装vue

4.创建eleme_web项目

5.将eleme_web项目使用samba共享

6.部署nfs服务器

1.安装组件

2.共享路径并创建目录

3.启动服务

4.查看端口是否监听

5.安装nfs

6.挂载共享目录

7.上传一个图片到nfs服务器

8.查看共享图片


1.基于域名的虚拟主机

1.配置文件结构

1. 一个配置文件一般只有一个http模块

2. 一个http模块可以有多个server模块

3. 一个server模块就是一套web项目

4. 一个server模块中可以有多个location

5. location就是项目中的url路由

2.配置过程

1.创建一个目录

[root@staticserver ~]# mkdir /qingtang

2.发布一个静态项目

[root@staticserver ~]# echo "hello,i am qingtang" > /qingtang/index.html

3.修改配置文件

[root@staticserver ~]# vim /usr/local/nginx/conf/nginx.confserver {listen          80;    #监听端口server_name     www.qingtang.com;    #服务名称root            /qingtang;location / {index   index.html;}	}

4.劫持IP地址

[root@staticserver ~]# /usr/local/nginx/sbin/nginx -s reload   #重新加载
[root@staticserver ~]# vim /etc/hosts   #写入服务地址

 

5.测试

6.配置dns服务器

一个nginx服务器中有多个server的时候是非常难于管理的,我们会将每一个server单独创建一个文件保存,在主配置文件使用include。

mkdir /usr/local/nginx/conf.d/
touch /usr/local/nginx/conf.d/zhangmin.conf
sed -n 'server的行号p' /usr/local/nginx/conf/nginx.conf
> ..../zhangmin.conf
sed -i 'server的行号d' /usr/local/nginx/conf/nginx.conf
vim /usr/local/nginx/conf/nginx.conf
================
include /usr/local/nginx/conf.d/*.conf
/usr/local/nginx/sbin/nginx -s rdlaod

2.基于ip的虚拟主机

效果,使用不同的ip地址访问不同的项目。

linux%E7%B3%BB%E7%BB%9F%E4%B8%AD%E6%B7%BB%E5%8A%A0%E6%96%B0%E7%9A%84ip%E5%9C%B0%E5%9D%80" style="margin-left:0px;">1. 在linux系统中添加新的ip地址
ifconfig ens33:1 192.168.1.21
2.修改配置文件

修改nginx.conf中的server模块中的server_name将域名修改为ip地址.

server{listen 80;server_name 192.168.1.20;root       /qingtang;location / {index index.html;}
}server{listen 80;server_name 192.168.1.21;root          /qingtang;location html {index  index.html;}
}

3.基于端口的虚拟主机

不同端口访问不同的项目,这种一般用于企业内部测试,不会用于发布项目。

1.修改配置文件
将两个 server ip地址的都修改为相同,. 两个 server 的监听端口一个设置为 80 一个设置为 8080
server{listen 80;server_name 192.168.1.20;root       /qingtang;location / {index index.html;}
}server{listen 8080;server_name 192.168.1.20;root          /qingtang;location html {index  index.html;}
}
2.重载nginx
/usr/local/nginx/sbin/nginx -s reload
3.开放端口或防火墙
systemctl stop firewalld.service   #停止防火墙
firewall-cmd --zone=public --add-port=8080/tcp --premament   #开放8080端口
4.访问测试
curl 192.168.1.20:80
curl 192.168.1.20:8080

4.上线商城系统

1.安装nodejs
[root@staticserver ~]# yum list installed |grep epel   #检查是否由epel源
epel-release.noarch                   7-11                             @extras  [root@staticserver ~]# yum list |grep nodejs   #查看nodejs安装包
[root@staticserver ~]# yum -y install nodejs   #安装nodejs
[root@staticserver ~]# node -v   #查看安装的nodejs版本
v16.20.2
2.安装npm
[root@staticserver ~]# yum -y install npm
[root@staticserver ~]# npm -v
8.19.4
3.安装vue

npm和rpm一样,都是包管理器,npm用于管理nodejs开发的软件。默认的npm的下载文件链接在国外,下载很慢,所有所以使用国内的淘宝镜像下载。

#使用国内镜像
[root@staticserver ~]# npm config set registry https://registry.npmmirror.com#安装vue
[root@staticserver ~]# npm install @vue/cli 

查看vue所在位置

[root@staticserver ~]# find / -name "vue"
/root/node_modules/vue
/root/node_modules/.bin/vue

#查看版本:
[root@staticserver ~]# /root/node_modules/.bin/vue -V
@vue/cli 5.0.8
4.创建eleme_web项目
[root@staticserver ~]# /root/node_modules/.bin/vue create eleme_web

 到这个界面按上下键选择最后一个按回车确定

 按空格选中画出来的两个选项,再按回车确定

 之后就直接按回车就可以啦,等它创建

下面是创建完成的页面

#根据提示输入
[root@staticserver ~]# cd eleme_web
[root@staticserver eleme_web]# npm run serve

浏览器访问192.168.1.20:8080

5.将eleme_web项目使用samba共享

1.下载并配置samba

[root@staticserver eleme_web]# yum -y install samba

2.编辑配置文件,要知道需要共享的文件

[root@staticserver eleme_web]# pwd
/root/eleme_web
[root@staticserver eleme_web]# vim /etc/samba/smb.conf
…
[eleme_web]comment=qingtang    #指导员,随便写path=/root/eleme_web   #项目路径guest ok=no   #允许主机writable=yes

3.创建用户密码作为Windows连接服务的窗口

[root@staticserver eleme_web]# useradd vueediter
[root@staticserver eleme_web]# smbpasswd -a vueediter   设置密码,123
New SMB password:
Retype new SMB password:
Added user vueediter.

4.为该用户在文件夹中添加读写权限

[root@staticserver eleme_web]# setfacl -m u:vueediter:rwx /root/eleme_web/

5.启动服务

[root@staticserver eleme_web]# systemctl start nmb.service
[root@staticserver eleme_web]# systemctl start smb.service

6.在Windows做以下操作,连接共享文件

 

 

8. 在static主机创建一个目录

[root@staticserver eleme_web]# mkdir public/img
[root@staticserver eleme_web]# mkdir public/video
[root@staticserver eleme_web]# mkdir public/music
6.部署nfs服务器
1.安装组件
[root@nfs ~]# yum -y install rpcbind.x86_64
[root@nfs ~]# yum -y install nfs-utils.x86_64
2.共享路径并创建目录
[root@nfs ~]# vim /etc/exports
/static/img/    *(rw,sync)
[root@nfs ~]# mkdir -p /static/img/
3.启动服务
[root@nfs ~]# systemctl start rpcbind.service
[root@nfs ~]# systemctl start nfs
4.查看端口是否监听
[root@nfs ~]# netstat -lnput | grep rpc

[root@nfs ~]# systemctl status firewalld.service

5.安装nfs
[root@staticserver eleme_web]# yum -y install nfs-utils.x86_64
6.挂载共享目录
[root@staticserver eleme_web]# mount -t nfs 192.168.1.25:/static/img/ public/img/
[root@staticserver eleme_web]# df -h

7.上传一个图片到nfs服务器
[root@nfs ~]# ls /static/img/
tupian.jpg
8.查看共享图片
[root@staticserver eleme_web]# ls public/img/
tupian.jpg


http://www.ppmy.cn/ops/88732.html

相关文章

【Shell学习记录】

Shell学习记录 目录 1. Shell脚本中 “.” 的作用 1. Shell脚本中 “.” 的作用 # 1.sh echo "hello world"# 2.sh . ./1.sh“.”符号可以将1.sh中的所有可执行指令添加到2.sh中执行。

【Kubernetes】二进制部署k8s集群(下)之多master节点负载均衡以及高可用

!!!接着之前两篇的部署!!! 目录 一.在所有node节点上部署coreDNS 1.在所有 node 节点上操作 2.在 master01 节点上操作 二.完成master02节点的初始化操作 三.在master01节点基础上,完成ma…

Golang | Leetcode Golang题解之第306题累加数

题目: 题解: func stringAdd(x, y string) string {res : []byte{}carry, cur : 0, 0for x ! "" || y ! "" || carry ! 0 {cur carryif x ! "" {cur int(x[len(x)-1] - 0)x x[:len(x)-1]}if y ! "" {cur i…

算法通关:014_1:用栈实现队列

文章目录 题目总结代码运行结果 题目 用栈实现队列 leetcode :232 总结 时间复杂度 平均下来每个方式是O(1) 代码 class MyQueue {public Stack<Integer> in;public Stack<Integer> out;//初始化public MyQueue() {in new Stack<>();out new Stack<…

生成式人工智能(AIGC):开发者的得力助手还是职业威胁?

&#x1f3ac; 鸽芷咕&#xff1a;个人主页 &#x1f525; 个人专栏: 《C干货基地》《粉丝福利》 ⛺️生活的理想&#xff0c;就是为了理想的生活! 引言 在当今软件开发领域&#xff0c;生成式人工智能&#xff08;AIGC&#xff09;技术正在以前所未有的方式改变着开发者的工作…

java之hashCode() 方法和 equals(Object obj) 方法之间的关系

1、 hashCode() 方法和 equals(Object obj) 在Java中&#xff0c;hashCode() 方法和 equals(Object obj) 方法之间的关系是紧密相连的&#xff0c;特别是在使用基于哈希的集合&#xff08;如 HashSet、HashMap、HashTable 等&#xff09;时。这两个方法共同决定了对象在哈希表…

arkhamintelligence 请求头加密 X-Payload 完整逆向分析+自动化解决方案

大家好!我是爱摸鱼的小鸿,关注我,收看每期的编程干货。 逆向是爬虫工程师进阶必备技能,当我们遇到一个问题时可能会有多种解决途径,而如何做出最高效的抉择又需要经验的积累。本期文章将以实战的方式,带你详细地逆向分析 arkhamintelligence 请求头加密字段 X-Payload 的…

《学会 SpringMVC 系列 · 返回值处理器》

&#x1f4e2; 大家好&#xff0c;我是 【战神刘玉栋】&#xff0c;有10多年的研发经验&#xff0c;致力于前后端技术栈的知识沉淀和传播。 &#x1f497; &#x1f33b; CSDN入驻不久&#xff0c;希望大家多多支持&#xff0c;后续会继续提升文章质量&#xff0c;绝不滥竽充数…