本地通过域名访问虚拟机的网站部署方法(Nginx)

首先声明:以下内容是我的个人理解,经过实践配置访问成功的案例

目的:自定义一个域名如:swoole.cn,我们通过本地浏览器访问swoole.cn,能访问到虚拟机里的网站(对应的目录文件)

步骤:

  1. 配置本地hosts
  2. 虚拟机安装Nginx
  3. 配置虚拟机hosts
  4. 配置nginx.conf
  5. 配置vhosts.conf
  6. 重载配置Nginx

思路:浏览器中输入一个域名回车后,它会先解析域名(也就是找到对应的ip),查询过程为:

  1. 查询缓存记录
  2. 查询本地hosts文件 
  3. 向dns服务器去查找

 假设swoole.cn解析为ip没有缓存记录,那么浏览器就会查询本地hosts文件(C:\Windows\System32\drivers\etc),所以

第一步:配置本地hosts文件,在末尾加上一行域名解析

192.168.116.130 swoole.cn

注:192.168.116.130是你虚拟机配置的ip,ip与域名之间有一个空格隔开;hosts文件可能会被设置为“只读”(保存无效果),可以右键文件-》属性-》常规,把下方的“只读”去掉

至此,本地浏览器访问swoole.cn就会访问到你的虚拟机,可是虚拟机接收到请求,但还不知要干嘛。所以需要安装配置Nginx

第二步:虚拟机安装配置Nginx(已安装配置可跳过),我的只是简单的安装

  1. http://nginx.org/:找一个稳定版的安装,我当时装的是:nginx-1.16.1
  2. 下载下来的文件是:nginx-1.16.1.tar.gz格式,所以需要用命令# tar - zxvf nginx-1.16.1.tar.gz解压
  3. cd进入解压后的文件目录
  4. 配置:# ./configure --prefix=/usr/local/nginx 
  5. 编译:# make
  6. 安装:# make install

详细安装及依赖包参考:https://www.runoob.com/linux/nginx-install-setup.html

# cd /usr/local/nginx/sbin

# ./nginx -v:查看版本

# ./nginx -t:检查配置文件nginx.conf的正确性。(我这里并没有按着网上搜的配置nginx.conf,也是能检测正确的)

# ./nginx:开启Nginx

附:

# ./nginx -s reload:重新载入配置文件

# ./nginx -s reopen:重启Nginx

# ./nginx -s stop:停止Nginx

第二步完成后,本地浏览器通过ip访问,可能还是访问不了,这时,我们需要开放防火墙的http服务

# firewall-cmd --permanent --add-service=http

这时访问ip就会显示Nginx的欢迎页面,恭喜你安装成功!!

本地通过域名访问虚拟机的网站部署方法(Nginx)_第1张图片

但是,想通过域名访问的话,还需要以下的配置

第三步:配置虚拟机的hosts文件(/etc/hosts),在末尾增加一行

127.0.0.1 swoole.cn

这就告诉虚拟机,当有swoole.cn这个域名请求的话,就是找你(自己) 

接下来的步骤是部署网站:

第四步:配置nginx.conf文件(/usr/local/nginx/conf),在http节点增加一行

include vhost/*.conf;

意思是,/usr/local/nginx/conf/vhost下面的所有以.conf结尾的文件都会加载,这样我们就可以把所有虚拟主机配置文件放到vhost目录下面

第五步:进入vhost目录下新建虚拟主机配置文件,并配置

# cd /usr/local/nginx/conf/vhosts:

# touch vhosts.conf:新建vhosts.conf,文件名可自定义,一般为域名,我这里取vhosts.conf

# vim vhosts.conf

按“i”转为编辑模式,插入

server {
        listen  80;// 端口
        server_name swoole.cn;// 自定义的域名
        root "/www/swoole_mooc";// 网站目录
        index  index.html index.htm index.php;// 默认访问文件
}

 按“:”转为命令模式,输入wq,保存退出

第六步:重新加载配置文件

# cd /usr/local/nginx/sbin

# ./nginx -s reload:重新加载配置文件

最后就可以通过域名访问到虚拟机部署的网站,以及所指定的目录文件了!!

本地通过域名访问虚拟机的网站部署方法(Nginx)_第2张图片

 

 

 

 

 

 

 

 

你可能感兴趣的:(Nginx,Linux)