nginx(解决多域名解析问题)

1.使用域名访问本地项目

我们将使用以下域名:
主域名:www.leyou.com
管理系统域名:manage.leyou.com
网关域名:api.leyou.com

最终,这些域名指向的还是我们本机的某个端口。

1.1域名解析

一个域名一定会被解析为一个或多个ip。一般包含两步:

  • 本地域名解析
    浏览器会首先在本机的hosts文件中查找域名映射的ip地址,如果查找到就返回ip,没找到则进行域名服务器解析。
    Linux下的hosts文件:/etc/hosts
  • 域名服务器解析
    本地解析失败,才会进行域名服务器解析,域名服务器就是网络中的一台计算机,里面记录了所有注册备案的域名和ip映射关系,一般只要域名是正确的,而且备案通过,一定能找到。
    使用SwithHostst工具在这里插入图片描述
    这样,使用www.leyou.com:9001才能访问。因此我们就要解决端口问题,使得他直接域名就可以访问了。

1.2nginx解决端口问题

1.2.1什么是nginx

高性能web和反向代理服务器。

1.2.2web服务器

web服务分2类:

  • web应用服务器
    tomcat
    resin
    jetty

  • web服务器
    apache服务器
    nginx
    IIS
    区分:web服务器不能解析jsp等页面,只能处理js、css、html等静态资源。
    并发:web服务器的并发能力远高于web应用服务器。
    nginx+tomcat

1.2.3nginx作为反向代理

什么是反向代理?

  • 代理:通过客户机的配置,实现让一台服务器代理客户端。客户端的所有请求交给代理服务器处理。
  • 反向代理:用一台服务器,代理真实服务器,用户访问时,不再是访问真实服务器,而是代理服务器。
    nginx可以当做反向代理服务器来使用:
  • 我们需要提前在nginx中配置好反向代理的规则,不同的请求,交给不同的真实服务器处理
  • 当请求到达nginx,nginx会根据已经定义的规则进行请求的转发,从而实现路由功能。
    安装在主机:
    在这里插入图片描述
    安装在虚机:

在这里插入图片描述

1.2.4linux安装ftp服务

安装包

yum -y install vsftpd
在这里插入图片描述

修改配置文件:

vi /etc/vsftpd/vsftpd.conf
保证下面3项为YES

anonymous_enable=YES

anon_upload_enable=YES

anon_mkdir_write_enable=YES

在这里插入图片描述
默认情况下vsftp是不允许root用户登录的。
将root注释掉
在这里插入图片描述
将 /etc/selinux/config 中的enforcing 模式改为disabled, 然后重启

设置vsftpd开机启动

systemctl start vsftpd.service
systemctl status vsftpd.service
在这里插入图片描述

上传并解压nginx

在这里插入图片描述
在这里插入图片描述

配置

进入nginx目录
–prefix:安装目录
–sbin-path:脚本文件放到该目录下
./configure --prefic=/opt/nginx --sbin-path=/usr/bin/nginx
在这里插入图片描述
这里指安装的目录在/opt/nginx下

若配置失败,安装需要的包

yum -y install gcc automake autoconf libtool make
yum install gcc gcc-c++
yum -y install pcre-devel
yum -y install openssl openssl-devel

若配置成功, 编译安装

make && make install
在这里插入图片描述

启动

nginx:启动
nginx -s stop:停止
nginx -s reload:重新加载
在这里插入图片描述
master process nginx:主进程,起监控和管理作用。
worker pricess:真正去处理用户的请求。

测试

在这里插入图片描述

1.2.5配置多域名访问

在安装目录下/opt/nginx/config中的nginx.conf文件中添加:

 server {
        listen       80;
        server_name  manage.leyou.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.188.108:9001 ;
            proxy_connect_timeout 600;
			proxy_read_timeout 600;
        }
    }
	 server {
        listen       80;
        server_name  api.leyou.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.188.108:10010;
            proxy_connect_timeout 600;
			proxy_read_timeout 600;
        }
    }

重启
nginx -s reload

配置host文件

192.168.188.114 www.leyou.com
192.168.188.114 manage.leyou.com
192.168.188.114 api.leyou.com

修改项目配置

将localhost修改为0.0.0.0,即任何ip都可以访问。
在这里插入图片描述

域名访问测试

要注意:linux要关闭防火墙。
在这里插入图片描述

发布了28 篇原创文章 · 获赞 0 · 访问量 900

猜你喜欢

转载自blog.csdn.net/weixin_43876557/article/details/102823629