欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

关于某视频里leyou商城通过虚拟机的nginx反向代理访问本机后台管理系统的问题汇总

程序员文章站 2022-05-29 13:04:20
...

   之前没用过虚拟机,更没接触过linux,视频中老师通过虚拟机的nginx反向代理来实现不同ip间的访问,早在Oracle数据库学习的过程中,就曾经用虚拟机作为不同服务器访问的实现,当时因为win10的ios镜像文件过大的问题作罢。这次视频中所用的虚拟机是mac里的,本来准备本机操作nginx算了,又觉得遇到问题就应该去接受挑战,而不是跳过,结果这一下午加一晚上都耗在了这上面~~下面就是一些困扰我或多或少的问题,希望对大家有所帮助。
   

一、下载及安装虚拟机VMware

   首先我们访问官网地址https://www.vmware.com/cn.html.
注意:没有账号必须先注册才能下载。注册页面https://my.vmware.com/cn/web/vmware/registration.
(这网站很卡,实在进不去的就第三方下载吧)
这个过程我没遇到什么问题,具体的教程可以看这个链接: https://blog.csdn.net/hao5119266/article/details/89198275.

   成功界面如图所示:
关于某视频里leyou商城通过虚拟机的nginx反向代理访问本机后台管理系统的问题汇总

二、创建一个新的虚拟机

   之前就是因为装win10失败作罢,这次有哥们和我说可以用下Ubuntu。
这个过程我没遇到什么问题,具体的教程可以看这个链接: https://blog.csdn.net/nanfeibuyi/article/details/81162947.

   成功界面如图所示:
关于某视频里leyou商城通过虚拟机的nginx反向代理访问本机后台管理系统的问题汇总

三、在虚拟机里安装及配置nginx

   建议之前没接触过Linux系统的先熟悉下- -,如果安装了VMware Tools还好一点,可以直接点界面,不然切换虚拟机和本机(Ctrl+Alt)挺蛋疼的。还有一些其他的例如开启终端(Ctrl+Alt+T)、开启目录(cd /路径)、显示目录下文件(ls 目录)等等。

1、安装nginx

   安装nginx有两种办法:一种是基于APT源安装,另一种是通过源码包编译安装。
具体操作的连接如下:https://www.cnblogs.com/EasonJim/p/7806879.html.
   我选择的是第一种方法,选择第二个的同学也可以通过VMware Tools的共享文件夹功能从本机拷贝源码包然后安装。
   基于APT安装后的nginx文件存放路径是固定的,我就是因为找不到文件夹苦苦搜寻了好久- -。例如nginx.conf文件的路径为 /etc/nginx/nginx.conf。刚开始我是这么找的:
关于某视频里leyou商城通过虚拟机的nginx反向代理访问本机后台管理系统的问题汇总
实际上应该这样:
关于某视频里leyou商城通过虚拟机的nginx反向代理访问本机后台管理系统的问题汇总关于某视频里leyou商城通过虚拟机的nginx反向代理访问本机后台管理系统的问题汇总关于某视频里leyou商城通过虚拟机的nginx反向代理访问本机后台管理系统的问题汇总关于某视频里leyou商城通过虚拟机的nginx反向代理访问本机后台管理系统的问题汇总
不过配置的时候可以直接终端里输入路径修改。
安装遇到的问题就是找文件。。。
还有就是安装完成后可以在终端输入: nginx -v 来检测版本以及是否安装成功。
nginx常用命令:

验证配置是否正确: nginx -t

查看Nginx的版本号:nginx -v

启动Nginx:start nginx

快速停止或关闭Nginx:nginx -s stop
 
正常停止或关闭Nginx:nginx -s quit
 
配置文件修改重装载命令:nginx -s reload

启动成功的界面:
关于某视频里leyou商城通过虚拟机的nginx反向代理访问本机后台管理系统的问题汇总

2、配置nginx

   这就是个坑了。。。
   因为和视频中的mac系统与虚拟机的类型都与我不一致,所以只能上网找。看了好多大佬的文章,基本上分为两种:1、通过路径 /etc/nginx/conf.d/ 创建新的配置文件,里面写入所需的内容。2、通过路径 /etc/nginx/nging.conf 直接在其中加入内容。我是用的第二种方式。
(附上第一种方式的连接:https://www.cnblogs.com/gede/p/11011693.html.)

   步骤如下:

1)找到该文件并打开( /etc/nginx/nging.conf )

关于某视频里leyou商城通过虚拟机的nginx反向代理访问本机后台管理系统的问题汇总
因为我装的是简单版本,所有很多application都没有,你可以安装其他的读写应用来操作。当你在文档里修改并保存时会发现如下提示:
关于某视频里leyou商城通过虚拟机的nginx反向代理访问本机后台管理系统的问题汇总
这是因为没有权限修改,所以我们要用到终端去处理。

2)使用终端修改权限

具体操作连接如下:https://blog.csdn.net/zyj20200/article/details/81660805.
或者用下图的方式:
关于某视频里leyou商城通过虚拟机的nginx反向代理访问本机后台管理系统的问题汇总先输入: sudo su 回车
然后输入你的密码(输入的时候不显示,输入完按回车即可)。接下来就以root权限来访问了。

3)使用终端打开nginx.conf

在root权限下输入:vim /etc/nginx/nginx.conf 回车
如果没有安装vim的同学会出现如下提示 :
-bash: vim: command not found
在命令行输入:sudo apt-get install vim-gtk
然后输入:y 回车
之后再输入:vim /etc/nginx/nginx.conf 回车
进入到nginx.conf配置文件如下图所示:
关于某视频里leyou商城通过虚拟机的nginx反向代理访问本机后台管理系统的问题汇总

4)修改配置文件nginx.conf

具体的每项含义及作用详解请看这个:https://www.cnblogs.com/phpdragon/archive/2013/08/09/3248373.html.
我们需要在http这个括号范围里加入自己所需的配置文件:
关于某视频里leyou商城通过虚拟机的nginx反向代理访问本机后台管理系统的问题汇总1.单域名映射到多服务

    server {
        listen      xx;
        server_name  www.xxxx.com;
        
        proxy_set_header X-Forwarded-Host $host;
		proxy_set_header X-Forwarded-Server $host;
		proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
		
        location /xxx/ {
            proxy_pass http://192.168.xxx.xx:xxxx/;
        }
        location /xx/ {
            proxy_pass http://192.168.xxx.xx:xxxx/;
        } 
        location /x/ {
            proxy_pass http://192.168.xxx.xx:xxxx/;
        }
        location / {
            proxy_pass http://192.168.xxx.xx:xxxx/;
        }       
    }

2.多域名映射到多服务

server {
        listen       xx;
        server_name  www.xxx.com;
        
	proxy_set_header X-Forwarded-Host $host;
	proxy_set_header X-Forwarded-Server $host;
	proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
 
        location / {
            proxy_pass http://192.168.xx.xx:xxxx/;
        }     
    }
    server {
        listen       xx;
        server_name  www.xxxx.com;
        
	proxy_set_header X-Forwarded-Host $host;
	proxy_set_header X-Forwarded-Server $host;
	proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
 
        location / {
            proxy_pass http://192.168.xxx.xxx:xxxx/;
        }     
    }

具体的参数根据需求来指定。

还要提一下在终端里修改文件要注意的一些事情:
具体的看这个链接:https://blog.csdn.net/mirrorming/article/details/80940511.

5)重启nginx

保存后退出编辑界面,在终端里输入:sudo nginx -s reload

以上就是在虚拟机中需要操作的内容。

四、在本机中通过虚拟机的nginx实现反向代理

1)配置本机hosts文件

其实之前在虚拟机中应该先查出ip地址,操作如下:

打开终端,输入:ifconfig -a 回车

若是报找不到ifconfig说明还未安装,先输入:sudo apt-get install net-tools 安装net-tools工具。

然后再输入:ifconfig -a 回车

如图所示的就是虚拟机的ip地址:
关于某视频里leyou商城通过虚拟机的nginx反向代理访问本机后台管理系统的问题汇总我用的是视频里推荐的工具来进行修改,如下图所示:
关于某视频里leyou商城通过虚拟机的nginx反向代理访问本机后台管理系统的问题汇总

2)在本机中访问manage.leyou.com

关于后台管理系统相关的项目工程这儿就不做过多的赘述,访问结果如下图所示:
关于某视频里leyou商城通过虚拟机的nginx反向代理访问本机后台管理系统的问题汇总
在这个过程中还有许多其他的问题发生,有些是因为自己太蠢,有些是自己的思路问题,以上便是实现功能的整个操作~