Linux记录14-4.32,4.33 nginx虚拟主机、本地hosts文件配置本地域名解析、_ngix如何配置读取本地host文件解析域名-程序员宅基地

技术标签: 网络  Linux记录  linux  服务器  

虚拟主机:

就是一个服务器上可以有多个虚拟主机,在 HTTP 相关的概念里就是host (域名)

HTTP1.1以后一个WEB服务可以有多个站点,一个站点就是一个虚拟主机

(在最开始,一个服务器跑了一个nginx就只能有一个域名,如果需要起一个新的域名就需要起一个新的nginx服务)

在nginx.conf配置文件里(yum安装的nginx)

红色,include的文件就是虚拟主机所有配置文件

查看有个default.conf 

每一个server都是一个虚拟主机

listen  是监听端口

server_name  是域名

一个站点需要对应一个域名和一个目录,/usr/share/nginx/html 就是这个站点所在的目录

index 是索引意思

直接输入IP地址就可以访问,但是目前无法显示,原因是80端口没有通

怎么检测80端口是否通了呢?

windows里面就是在cmd下使用 telnet 192.168.222.128  80 可以测试

(如果没有加载telnet命令需要去开放)

 

linux下也是使用telnet命令,如果没有就yum安装一下

测试发现端口不通,很大可能是因为防火墙

CentOS7自带firewalld服务,默认开启状态,因此80端口需要添加到白名单,或者关闭防火墙

iptables  -nvL  查看防火墙命令规则

不建议关闭,但是想排除防火墙影响可以直接  关闭防火墙 systemctl stop firewalld

打开防火墙 是 systemctl start firewalld

关闭防护墙后, telnet  80 端口是connected  已通

重新用IP登陆,成功显示网页

这里还不通的话检查下nginx服务是否在线,ping一下网络是否通的。

firewall-cmd  --add-port=80/tcp

临时增加防火墙的一个80端口

firewall-cmd  --add-port=80/tcp  --permanent

永久增加防火墙的一个80端口,还要加一个 --permanent

这样就成功加入了白名单,但是因为防火墙没有重启并没有生效,reload 重载

firewall-cmd  --reload

再次访问 IP ,可以看到网页了。如果还不行,ps检查下有没有nginx进程,没有设自启动,服务器重启后是没有nginx服务的

每个虚拟主机就是一个站点,每个站点应该要有一个域名

之前用的IP直接访问,其实IP就是域名解析的结果

现在用nginx为IP指定一个域名

进入 default.conf 配置文件 ,把 server_name  中 localhost 改为 www.lwj.com

nginx  -t 检测是否有错误 (要使用nginx可执行程序)

nginx -s  reload  重载配置。  没有报错就是成功

systemctl  restart  nginx        可以重启nginx

重启也可以达到同样效果,但尽量用重载不用重启,因为如果已经有人正在访问服务器,重启就会中断进程,重载不会。

现在这个域名www.lwj.com 还并没有指向到我们的IP上,需要DNS验证才能解析到我们想要的IP上

随意ping一下域名不是我们的IP

配置本地域名解析:

可通过改本机的hosts文件,引导本机解析域名。(但只在本机有效)

linux 路径: /ect/hosts

windows 路径:c/windows/System32/drivers/etc/hosts   (可能需要增加管理员权限

在hosts文件中写上域名和IP地址

再ping一次,域名解析过来的IP已经对了,解析的就是我们设定的IP

在windows下也可以改:

记事本打开,添加上IP和域名,保存

win中启动 cmd 是 窗口 + R 调出运行,运行中输入cmd,启动

cmd中ping一下,同样成功了

本地用浏览器也能通过这个域名访问到我们的服务器

默认虚拟主机的定义:

一个server_name就是一个虚拟主机。

同一个IP可以被多个域名解析。

也就是,换别的域名也能访问到这个IP,只要这个域名能被正确的解析到这个IP  。

但注意,nginx.conf 里也可以配置不同域名指引访问到同一服务器不同的页面,

NGINX配置文件中没有找到对应域名(server_name)的配置,才会走默认虚拟主机。

就是,只要是解析到这个服务器 IP上,没有在nginx配置文件中被指定server_name的所有域名,都会访问默认虚拟主机的配置。

这里 nginx.conf 中没配置 www.qwt.com ,那么www.qwt.com 域名解析到这个IP,就会找这个IP下的默认虚拟主机。也就是www.lwj.com的配置

虚拟主机的认定:

在conf.d配置里面暂时只有这一个主机(yum安装情况),主机配置名字其实可以随便改的,虽然叫default但是不一定就是默认虚拟主机。default命名的主机名字和默认主机没有必然关系。

拷贝一个主机配置文件做测试

这种情况下  排序在前的配置文件会被当成默认虚拟主机

这里 2.conf 会被当成默认主机。

这种靠排序认定默认虚拟主机的方式并不靠谱!

设定默认主机方式

在.conf配置文件的监听端口后加上  default_server  ,这个配置文件的主机就成为了默认虚拟主机

 

设置默认虚拟主机以后,只要是解析到这个服务器IP上,没有被指定为server_name的所有域名,都会访问default_server的配置。

在nginx配置文件上设置一个访问其他指定页面的虚拟主机:

打算用www.abc.com 这个域名。

首先要把这个域名也解析到这个IP。

 

定义一个虚拟主机名 server_name  www.abc.com

分配一个给  www.abc.com的 root  路径 /tmp/html

(一个虚拟主机至少要有 server_name 和 root)

给 www.abc.com 在指定路径下写一个 index.html

 

浏览器登陆 www.abc.com   可以显示出我们定义的内容

 

默认虚拟主机最重要的作用  范解析 :

范解析是相当多的域名解析过来都可以访问到同一个IP地址,而不用每个域名逐个去配置。

但是这样的话只要设置域名解析到我们的IP就能访问服务器(就好像在windows里hosts设置的www.qwt.com,这个在linux的主机里并没有设置)。

这导致任何设置了解析到这个IP的域名都能访问到服务器

这个功能好用但是有安全风险。

禁止泛解析:

在配置文件中 deny all

 

这样,只有配置文件定义了的sever_name 域名的可以被访问的到。(www.lwj.com 和 www.abc.com )

而之前  www.qwt.com则变成了403,无法访问 。(虽然www.qwt.com能解析到服务器IP)

 

虚拟主机配置文件 用 域名 作为 虚拟主机配置文件的名字,这样易于区分

新建一个域名的对应配置文件

windows 中hosts文件记事本打开,因为是在自己电脑里的hosts里面设置了解析,所以也只能是自己访问,别人访问不了这个网站,因为别人的DNS上没有这个域名的解析。

直接ping域名是能通的,但是nginx –t 错误检测不会通过,因为这个配置文件是cp 2.conf得来的,那个已经定义了一个一样的域名www.ccc.com了,还没有修改成新的blog.aminglinux.cc导致域名冲突。

修改一下新的配置文件

域名修改成对应的:

charset   定义的是一个字符集

下面网页源码中的 utf-8 就是一个字符集编码

access_log   是访问日志

location

定义一下root的路径,也就是网站放在哪里?

这样定义路径也是为了方便找到这个站点

ctrl + z 暂停下vi编辑,先出去命令行 mkdir 一下刚设置的站点的root路径,设置完路径以后再  fg  返回vi继续编辑。

index需要加上php,因为打算做的博客是需要php而不是html

需要把PHP的相关#注释的去掉,刚去掉以后如下:

fastcgi_pass,当时测试PHP监听的地址就是127.0.0.1 : 9000

这个PHP的root路径是定义你PHP所在的路径,改成与location的root路径一样就好。

fastcgi_param 的路径也要改成一样

没用的#可以删除

-t 检错, -s 重新加载

需要把网站程序wordpress放到之前设的root目录下

wordpress   是用PHP语言开发的一个博客平台

wordpress官网下载

  去下载  .tar.gz  格式的在linux上用的

放到路径下,用wget下载

解压

解压完成以后,把所有  wordpress/*  (word里面的所有文件 )  都移动到 ./  (当前目录下)

* 就是所有文件意思

./ 就是当前目录

移动后是这样:

然后把旧的wordpress目录(里面已空)和wordpress-5.0.2这个安装包删掉

剩下:

这时候我们输入blog.aminglinux.cc就进入了也要wordpress安装的页面

(有时候打不开是因为 SELINUX没有关闭)

(如果用linux ping不到可能是因为没有写入hosts  , 地址是 /etc/hosts )

总结:

快捷键  

ctrl + z  暂停一个进程。比如:vi的时候,可以先退出vi,然后释放命令行出来运行别的命令,运行完以后再返回vi。

fg就可以回到vi 窗口里。

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/lwj457700209/article/details/86919290

智能推荐

浅谈流形学习_流形 知乎-程序员宅基地

文章浏览阅读1.4k次。作者:暮暮迷了路链接:https://www.zhihu.com/question/24015486/answer/194284643来源:知乎著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。最高票解释的很学术~我就说个定性而非定量的解释。流形学习的观点是认为,我们所能观察到的数据实际上是由一个低维流形映射到高维空间上的。由于数据内部特征的限制,一些高维中的数据会产生维度上的冗..._流形 知乎

ubuntu20.04 安装 Qt 后无法启动,出现报错:Could not load the Qt platform plugin “xcb” even though it was found!_could not load the qt platform plugin "xcb" in "" -程序员宅基地

文章浏览阅读4.3k次,点赞46次,收藏54次。本篇博文是记录了作者在安装Qt时遇到的问题以及解决方案。其中包括了Qt在ubuntu系统中的安装以及解决安装后无法启动Qt以及出现报错的问题(Could not load the Qt platform plugin "xcb" even though it was found)。_could not load the qt platform plugin "xcb" in "" even though it was found.

追踪oracle执行sql情况_oracle追踪sql-程序员宅基地

文章浏览阅读627次。记录在这里,防止以后忘了,不知道去哪里搜索select q.FIRST_LOAD_TIME, q.sql_text, q.modulefrom v$session s, v$sqlarea q where s.user# = q.parsing_user_id and s.status='ACTIVE' and s.username='JLSCM' --Sql用户名_oracle追踪sql

深度学习 一:Deep Learning基本概念及线性、非线性回归对比分析(sigmoid v.s. ReLU)_relu线性回归 神经网络-程序员宅基地

文章浏览阅读639次。深度学习是一类模式分析方法的统称,就具体研究内容而言,主要涉及三类方法:基于卷积运算的神经网络系统,即卷积神经网络(CNN);基于多层神经元的自编码神经网络,包括自编码(Auto encoder)以及近年来受到广泛关注的稀疏编码两类(Sparse Coding)。以多层自编码神经网络的方式进行预训练,进而结合鉴别信息进一步优化神经网络权值的深度置信网络(DBN)。_relu线性回归 神经网络

Leaflet 加载高德地图_leaflet加载高德地图-程序员宅基地

文章浏览阅读5k次,点赞22次,收藏34次。高德地图是一款由高德软件提供的数字地图服务,在国内使用较为广泛。高德地图提供了丰富的地图数据和 API 接口,支持 Web、移动端等多种平台。本文中,我们将高德地图的wms服务加入leaflet地图对象,并构建点击事件输出高德坐标和WGS-84坐标;在这个例子中,我们使用了高德地图的 WMS 服务,通过 方法创建了一个瓦片图层,并将其添加到地图容器中。_leaflet加载高德地图

EL表达式截取字符串-程序员宅基地

文章浏览阅读177次。  日常工作中,经常会对EL表达式输出的字符进行截取。所以查bd整理了一下方法,方便以后自己查阅。  首先jsp页面都不引用:<%@ taglib prefix="fn" uri="http://java.sun.com/jsp/jstl/functions" %>  下面是JSTL中自带的方法列表&其描述:  fn:contains 判定字符串是否包含另..._mvel 表达式截取字符串

随便推点

2019-05-11 java学习日记-程序员宅基地

文章浏览阅读189次。May 10,2019 - JAVA 学习日记 Day1 一.计算的概述1,计算机是什么?2,计算机主要应用于哪几个方面?3,计算机硬件与软件?1.1,计算机(Computer)全称电子计算机,俗称电脑。是一种能够按照程序运行,自动、高速处理的现代化智能电子设备。由硬件和软件组成,没有安装任何软件的计算机称为裸机,常见形式有台式计算机、笔记本计算机、大型计算机等。计算...

套接字编程-实现基于TCP/IP和UDP的客户端和服务器-程序员宅基地

文章浏览阅读1.1k次,点赞33次,收藏12次。套接字编程允许你实现基于网络的应用程序。在Java中,java.net包提供了进行网络通信所必需的类和接口。TCP/IP和UDP是两种常见的网络协议,其中TCP是面向连接、可靠的流传输协议,而UDP是无连接、不可靠的数据报传输协议。

数字信号处理公式变程序(五)——仿matlab的spectrogram函数(STFT)_load chirp-程序员宅基地

文章浏览阅读3.1w次,点赞27次,收藏156次。上几篇文章写了DFT/FFT、插值、压缩、滤波器等数字信号处理中的算法,今天写一下STFT算法(其实我刚开始是想搞小波变换wavelet的,搞了个大概就转成STFT了)的介绍。注:可能会有代码、算法不足或者理解偏差的地方,路过的高人请不吝赐教。STFT开始!===========================================================..._load chirp

Halcon的一维码和二维码解码步骤和技巧_halcon 一维码,二维码-程序员宅基地

文章浏览阅读2.7k次,点赞2次,收藏31次。Halcon的一维条码解码步骤和解码技巧一、图像预处理和条码增强对比度太低:scale_image(或使用外部程序scale_image_range),增强图像的对比度。图像模糊:emphasize锐化图像,使条码看起来更清晰。深色背景上读取浅色条码:invert_image反转图像。二、解码涉及的主要算子read_image :读图create_bar_code_model :创建条码模型find_bar_code :查找条码clear_bar_code_model :清除_halcon 一维码,二维码

C#中wpf使用Devexpress画图:柱状图,饼状图,散点图,曲线图_devexpress22.2.4 wpf 教程-程序员宅基地

文章浏览阅读1.1w次,点赞3次,收藏28次。C#中wpf使用Devexpress画图:柱状图,饼状图,散点图,曲线图1.效果 完整代码下载: 下图是随便生成的数据测试效果: C#中wpf使用Devexpress画图 2.部分设置可以从控件属性直接设置 画什么样的图 series选择:图中选择的是饼状图的series 3. 绑定部分1)柱状图_devexpress22.2.4 wpf 教程

华为光猫电源power,pon、los、lan,引出 无源光网络PON的原理-程序员宅基地

文章浏览阅读2.1k次。2019独角兽企业重金招聘Python工程师标准>>> ..._华为以太网无源光纤是猫吗