使用nginx配置二级域名

使用nginx配置二级域名最近想把三个项目配在一个服务器上,于是想使用nginx配置二级域名实现。1.域名添加解析我的是阿里云的域名,所以首先给自己的域名添加解析。打算使用www.codeliu.com,test1.codeliu.com,test2.codeliu.com这三个域名,其中test1.codeliu.com,test2.codeliu.com作为二级域名。2.准备好三个项目ecl…

大家好,又见面了,我是你们的朋友全栈君。

最近想把三个项目配在一个服务器上,于是想使用nginx配置二级域名实现。

1.域名添加解析

我的是阿里云的域名,所以首先给自己的域名添加解析。

打算使用 www.codeliu.com , test1.codeliu.com, test2.codeliu.com这三个域名,其中 test1.codeliu.com, test2.codeliu.com作为二级域名。

解析www.codeliu.com

解析test1.codeliu.com

解析test2.codeliu.com

2.准备好三个项目

eclipse新建三个web项目,直接在index.html中写一点东西能进行区别进行,然后export成war包,传到服务器的tomcat webapp目录下。

3.配置nginx

为了方便,我就直接在nginx.conf进行配置了,没有重新起配置文件,如果想重新起配置文件,可以在nginx.conf使用include进行包含就行。

vim /usr/local/nginx/conf/nginx.conf

使用上面的命令编辑nginx的配置文件,先把配置文件中的server注释掉,然后添加下面的语句

server {
    listen          80;
    server_name     www.codeliu.com;

    location / {
        root    /usr/lib/apache-tomcat-8.5.33/webapps/CodeliuDemo;
        index   index.html index.htm;
    }
}


server {
    listen          80;
    server_name     test1.codeliu.com;

    location / {
        root   /usr/lib/apache-tomcat-8.5.33/webapps/Test1Demo;
        index  index.html index.htm;
    }
}

server {
    listen          80;
    server_name     test2.codeliu.com;

    location / {
        root    /usr/lib/apache-tomcat-8.5.33/webapps/Test2Demo;
        index   index.html index.htm;
    }
}

重启nginx

/usr/local/nginx/sbin/nginx -t
/usr/local/nginx/sbin/nginx -s reload

这样配置就完成了,输入不同的网站就可以显示不同的项目。

4.遇到的问题

在配置完成之后,访问出现了403。

4.1 首先看看是否有index文件

检查后发现都有,应该不是这个原因。

4.2 再检查是否是文件夹的权限问题

chmod -R 777

使用上面的命令后还是不行。

4.3 检查启动用户和nginx工作用户是否一致

修改nginx.conf的第一行,改成下面这样

user  root;

重启nginx,访问正常。


2018-11-21 15:21再次更新

试了试发现访问动态项目是404,所以决定一个项目使用一个tomcat,分配不同的端口,这样一个tomcat挂了不会影响其他的项目。

所以解压了三个tomcat,分别对应8080,8081,8082端口。修改tomcat的server.conf达到修改端口的目的。要改三个地方

<!-- 这里我把8005改成8006 -->
<Server port="8005" shutdown="SHUTDOWN">
  <Listener className="org.apache.catalina.startup.VersionLoggerListener" />
<!-- 这里我把8080改成8081 -->
<Connector port="8080" protocol="HTTP/1.1"
               connectionTimeout="20000"
               redirectPort="8443" />
<!-- 这里我把8009改成8010 -->
<Connector port="8009" protocol="AJP/1.3" redirectPort="8443" />

重启三个tomcat

修改nginx.conf(上面已经配置过,直接在此基础上修改)

server {
    listen          80;
    server_name     www.qidaochina.com;

    location / {
        proxy_pass    http://127.0.0.1:8081;
        index   index.html index.htm;
    }
}


server {
    listen          80;
    server_name     ccmp.qidaochina.com;

    location / {
        proxy_pass    http://127.0.0.1:8080;
        index  index.html index.htm;
    }
}

server {
    listen          80;
    server_name     xwgk.qidaochina.com;

    location / {
        proxy_pass    http://127.0.0.1:8082;
        index   index.html index.htm;
    }
}

其实就是把root改成了proxy_pass。这样就能把请求转发到对应的tomcat去处理。

本来想直接把项目名改成ROOT(tomcat的默认显示项目),但发现报错500,于是放弃了这种想法,而是更改ROOT下面的index.jsp.

<%@ page session="false" pageEncoding="UTF-8" contentType="text/html; charset=UTF-8" %>
<!DOCTYPE html>
<html lang="en">
    <head>
        <meta charset="UTF-8" />
    </head>

    <body>
        <script type="text/javascript">
        	window.location.href="../CodeliuDemo/index.html";
        </script>
    </body>
</html>

这样就ok了。

关注微信公众号:秃头哥编程(ID:xp_1311664842),领取编程大礼包。
在这里插入图片描述

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/143332.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • PHP的反射类ReflectionClass、ReflectionMethod使用实例

    PHP的反射类ReflectionClass、ReflectionMethod使用实例简介PHPReflectionAPI是PHP5才有的新功能,它是用来导出或提取出关于类、方法、属性、参数等的详细信息,包括注释。用得比较多的就只有两个ReflectionClass与ReflectionObject,两个的用法都一样,只是前者针对类,后者针对对象,后者是继承前者的类;然后其中又有一些属性或方法能返回对应的Reflection对象反射是什么?它是指在PHP运行状态中,扩展分析PH…

    2025年6月11日
    5
  • 单片机led点阵显示程序_LED点阵

    单片机led点阵显示程序_LED点阵单片机LED点阵一、简述     使用8×8LED点阵显示汉字。向上滚动"中华"两个汉字。   文件打包:链接:https://pan.baidu.com/s/1oHSAIY6qVA7qFFWUvMvJEA密码:snyg二、效果三、工程文件结构1、Keil工程2、仿真电路图四、代码88led.c文件#include&lt;reg51.h&gt;#defineuintunsigne…

    2025年8月19日
    2
  • pytest parametrize fixture_参数化数据

    pytest parametrize fixture_参数化数据前言当某个接口中的一个字段,里面规定的范围为1-5,你5个数字都要单独写一条测试用例,就太麻烦了,这个时候可以使用pytest.mark.parametrize装饰器可以实现测试用例参数化。官方示

    2022年7月29日
    4
  • 智能小车设计思路简述

    智能小车设计思路简述简单的说就是把微控制器(单片机)的管脚和外设的引脚用杜邦线相连,就可以使用微控制器通过自身管脚给外设发送信号,以实现外设的运行。能力较强的可以自己设计一块电路板,把微控制器和一部分外设直接插在板子上面的排座上,减少杜邦线的使用(使用杜邦线太多会比较乱),还可以在板子上设计一些必要的电路如稳压电路、按键电路、电机驱动电路,这些电路网上也能买到。其实小车后期前进后退、循迹、避障的功能是否顺滑,大部分取决于代码的编写,有的时候还需要在代码中加入算法。智能小车的设计主要包含两部分,硬件部分和软件部分。……

    2022年10月9日
    2
  • 本工作站与主域失去信任_电脑加域后无管理员

    本工作站与主域失去信任_电脑加域后无管理员1.如图。解决方式原因:用户和域的安全通道损坏。解决方式:方式1:退域加域名。(需要重启两次麻烦)方式2:推荐方式:用本地管理员进去。用命令修复安全通道。(使用powershell输入命令打开)(不需要重启)Test-ComputerSecureChannel-Credential域账号(域名\账号)-Repair注意:在本地管理管理员,多尝试几次就能修复了。修复的标志:命令:Test-ComputerSecureChannel造成退域的原因:(不止这几点)1.密码更新失败

    2022年10月19日
    7
  • 更新本地DNS缓存列表[通俗易懂]

    更新本地DNS缓存列表[通俗易懂]更新本地DNS缓存列表当我们以域名形式访问过目标网站后,该网站的域名和IP地址对应关系就会自动保存到本地工作站的DNS缓存列表中,日后IE浏览器会优先访问DNS缓存列表中的信息,不过一旦此时目标站点的域名和IP地址对应关系发生变动的话,DNS缓存列表中的对应解析记录不会跟着同步变化,那么日后我们再次以域名形式访问目标站点时就容易发生DNS解析不成功的故障。这个时候,…

    2022年5月5日
    97

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号