首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

nginx部署多个项目域名访问

基础概念

Nginx 是一个高性能的 HTTP 和反向代理服务器,也用作邮件代理服务器。它能够通过配置文件实现多个项目的部署,并通过不同的域名进行访问。

相关优势

  1. 高性能:Nginx 能够处理高并发连接,具有优秀的性能表现。
  2. 灵活配置:通过简单的配置文件,可以实现复杂的代理、负载均衡等功能。
  3. 安全性:Nginx 提供了多种安全机制,如防止 DDoS 攻击、SSL/TLS 加密等。
  4. 易于管理:Nginx 的配置文件结构清晰,易于管理和维护。

类型

  • 反向代理:将客户端请求转发到后端服务器,并将响应返回给客户端。
  • 负载均衡:将客户端请求分发到多个后端服务器,以实现负载均衡。
  • 静态文件服务器:直接提供静态文件服务。

应用场景

  • 多域名部署:通过不同的域名访问不同的项目。
  • API 网关:统一管理和路由 API 请求。
  • 静态资源服务:提供图片、CSS、JS 等静态文件服务。

配置示例

假设我们有两个项目:project1project2,分别通过 project1.example.comproject2.example.com 访问。

1. 安装 Nginx

代码语言:txt
复制
sudo apt update
sudo apt install nginx

2. 配置 Nginx

编辑 Nginx 配置文件 /etc/nginx/sites-available/default,添加以下内容:

代码语言:txt
复制
server {
    listen 80;
    server_name project1.example.com;

    location / {
        proxy_pass http://localhost:3000;
        proxy_set_header Host $host;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header X-Forwarded-Proto $scheme;
    }
}

server {
    listen 80;
    server_name project2.example.com;

    location / {
        proxy_pass http://localhost:4000;
        proxy_set_header Host $host;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header X-Forwarded-Proto $scheme;
    }
}

3. 启动项目

确保 project1project2 分别在端口 30004000 上运行。

代码语言:txt
复制
# 启动 project1
cd /path/to/project1
npm start

# 启动 project2
cd /path/to/project2
npm start

4. 重启 Nginx

代码语言:txt
复制
sudo systemctl restart nginx

常见问题及解决方法

1. 域名解析问题

问题:访问域名时提示 域名无法解析

原因:DNS 配置不正确或未生效。

解决方法

  • 确保域名已正确解析到服务器 IP。
  • 等待 DNS 缓存生效(通常为几分钟到几小时)。

2. Nginx 配置错误

问题:访问域名时提示 502 Bad Gateway

原因:Nginx 配置错误或后端服务未启动。

解决方法

  • 检查 Nginx 配置文件语法是否正确:
  • 检查 Nginx 配置文件语法是否正确:
  • 确保后端服务已启动并监听在指定端口。

3. SSL/TLS 配置

问题:需要使用 HTTPS 访问网站。

解决方法

  • 获取 SSL 证书(如 Let's Encrypt)。
  • 配置 Nginx 支持 HTTPS:
  • 配置 Nginx 支持 HTTPS:

参考链接

通过以上配置和解决方法,你可以成功部署多个项目并通过不同域名进行访问。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

  • Nginx——一个域名部署多个Vue项目

    前言当前生成环境已经有一个正常的Vue项目,现在需要将大屏项目部署到同一个域名下,搜索了下类型的问题,感觉问的还挺多的,所以这里记录下操作步骤;如何在不动第一个项目的情况下来部署第二个Vue项目;内容前端配置...,创建子级目录,并将制品dist放入到该目录下;不想放到第一项目目录下,新建一个目录也可以,不过记得对应的nginx配置也需要调整;$ cd $ mkdir screenNginx在第一个项目对应的配置文件中...wwwroot/tiktok-web/screen/dist; try_files $uri $uri/ /screen/index.html; }检测无误后,重新载入nginx...配置文件:$ nginx -t$ nginx -s reload测试验证访问对应的地址(http:///screen/)进行测试:总结前端publicPath和router进行调整服务端nginx...进行配置进行访问验证我丢,忘记对关键数据看板哪里进行了缺省的配置,现在要去修复这个问题了~

    32410

    同一域名端口下,通过nginx部署多个vue项目

    情景介绍   服务器上80端口已部署一套vue项目,现在乃至未来还可能要部署n个前端项目,而已部署项目nginx的配置不能修改 项目配置   假设需要部署的第二个vue项目是放在服务器的  “project...routes: routes 5 }) 第三步  在模板文件index.html的head里添加下面一行,将打包生成的文件引入路径修正 至此,vue项目内部设置已完成...,打包将项目放到服务器的“project”目录下 第4步  nginx配置,接口的代理转发就不多说,正常配置就好了 1 #第一个项目的配置 2 location / { 3 root /usr/local.../web/example/; 4 index index.html index.htm; 5 try_files $uri $uri/ @router; 6 } 7  #第二个项目的配置 8 location...uri $uri/ /project/index.html; 12 } 13 location @router { 14 rewrite ^.*$ /index.html last; 15 } 重启nginx

    2.4K20

    nginx实现一个域名配置多个laravel项目

    背景 随着公司的子项目越来越多,会有大大小小十几个工程(仅后端),按照原先的做法,每上线一个项目,那么必须要有一个二级域名映射到对应的工程上,十个工程那么就意味着需要有十个二级域名(还不包含测试环境,次生产环境等...), 如此多的域名不仅仅是难于管理,更重要的是比较浪费资源 ,这个问题困扰了我很久,今天终于解决了这个问题,特此记录一下采坑日记,本文不会讲nginx中各个指令的原理,而是用实际的项目配置来练习nginx...事先准备 域名 假设域名为: http://www.dev.com 实验环境 阿里云ECS + centos + Nginx + php-fpm 项目1 1.工程路径: /data/wwwroot/project1.../project2/ 项目3 1.工程路径: /data/wwwroot/project3/ 2.访问路径: http://www.dev.com/project3/ 涉及的知识点 Nginx的location...PATH}则代表的是项目的真实访问路径,如/data/wwwroot/project1,以 http://www.dev.com/project1 访问为例,那么对应的Nginx的配置是这样子的 location

    2.7K21

    nginx_反向代理实现使用域名访问本地项目

    ,运行最新的项目代码进去测试 生产环境:项目最终发布上线的环境 如果不同环境使用不同的ip去访问,可能会出现一些问题。...为了保证所有环境的一致,我们会在各种环境下都使用域名访问。 那么,当我们在浏览器输入一个域名时,浏览器是如何找到对应服务的ip和端口的呢? 2、域名解析 一个域名一定会被解析为一个或多个ip。...反向代理:用一台服务器,代理真实服务器,用户访问时,不再是访问真实服务器,而是代理服务器。...也就是upload-service服务 rewrite "^/api/(.*)":匹配路径的正则表达式,用了分组语法,把/api/以后的所有部分当做1组 / 5、测试 启动ng inx,然后用域名访问后台管理系统...: 请求流程如下: 浏览器准备发起请求,访问http://mamage.enjoyment.com,但需要进行域名解析 优先进行本地域名解析,因为我们修改了hosts,所以解析成功,得到地址:127.0.0.1

    6.5K22

    nginx+tomcat单个域名多个域名配置

    项目开发接近尾声,开始着手在生产环境部署项目,开发阶段部署项目都没用nginx项目是采用SOA架构,多系统开发,主要包括服务系统、中台系统、后台系统、金融系统、接口系统、调度系统、报表系统等。...nginx做负载均衡的优势网上有很多介绍资料,这里我不再多做介绍。因为有很多系统要部署,涉及到域名、二级域名多个域名等的部署。...在实际的部署由于对nginx的不够熟悉,遇到过很多坑,其中这种多域名的配置,xxxx.com转发到www.xxxx.com、访问域名转发到tomcat里的项目等,现在先总结一部坑的解决办法。...的基本配置大致就是这样,如果绑定多个域名(不管是一级域名还是二级域名),需配置多个server,你会发现这几个server配置都差不多,主要是更改server_name及proxy_pass指向即可。...upstream节点其实就是代理服务的访问路径。 如果此时访问域名,你会发现nginx的配置生效了,只是目前显示的是tomcat的默认界面。

    5.1K60

    nginx+tomcat绑定二级域名部署多个应用

    本文介绍在阿里云上开通二级域名,并使用单个tomcat部署多个应用和ngnix+tomcat(多个)两种方式实现多个应用的部署,以下为操作步骤。...在本实验中,顶级域名和二级域名同时指向同一IP,如果单个tomcat绑定顶级域名和二级域名的应用可通过Tomcat的Host配置实现; 如果部署多个tomcat,可通过ngnix的方式实现; 下面分别介绍这两种方法...方法1:tomcat通过host绑定多个域名 在tomcat的server.xml的配置文件中新增一处host配置,指向二级域名blog.admineap.com对应的应用 <Engine name=...方法2:nginx+tomcat绑定二级域名 为了使得单个tomcat的压力不要太大,可在服务器部署多个tomcat(可用不同的ip地址),nginx作为代理服务器既可以作为静态资源服务器,也可以作为负载均衡服务器...,可以将同一域名的请求分发多个应用服务器,也可以将不同的域名的请求分发到不同的服务器(本文使用的方法); (1) 安装nginx,修改配置 upstream admineap { server

    3.5K20

    nginx+tomcat单个域名多个域名配置

    项目开发接近尾声,开始着手在生产环境部署项目,开发阶段部署项目都没用nginx项目是采用SOA架构,多系统开发,主要包括服务系统、中台系统、后台系统、金融系统、接口系统、调度系统、报表系统等。...nginx做负载均衡的优势网上有很多介绍资料,这里我不再多做介绍。因为有很多系统要部署,涉及到域名、二级域名多个域名等的部署。...在实际的部署由于对nginx的不够熟悉,遇到过很多坑,其中这种多域名的配置,xxxx.com转发到www.xxxx.com、访问域名转发到tomcat里的项目等,现在先总结一部坑的解决办法。...upstream节点其实就是代理服务的访问路径。 如果此时访问域名,你会发现nginx的配置生效了,只是目前显示的是tomcat的默认界面。...tomcat的配置也已经完成,重启tomcat,访问域名就指向了tomcat里的项目。 希望能对大家有帮助,如果在使用的过程中遇到什么问题,可以在底下留言。

    5.4K00

    想要使用 Nginx 部署多个前端项目,可行吗?

    在实际的 web 开发中,经常需要同时部署多个前端项目Nginx 是一款高性能的 Web 服务器,同时也是一款反向代理服务器,可以通过配置多个虚拟主机来部署多个前端项目。...本文将介绍如何使用 Nginx 部署多个前端项目。...其中:listen 用于指定监听的端口号;server_name 用于指定虚拟主机的域名或 IP 地址;root 指定虚拟主机的根目录;index 是虚拟主机默认访问的文件;location 用于配置反向代理...配置多个虚拟主机如果需要部署多个前端项目,可以在 Nginx 配置文件中添加多个 server 块,每个 server 块对应一个虚拟主机。例如:http { # ......总结本文介绍了如何使用 Nginx 部署多个前端项目和配置 HTTPS。要部署多个前端项目,需要在 Nginx 的配置文件中创建多个虚拟主机,并为每个虚拟主机指定根目录和反向代理配置。

    5.9K00

    实现WordPress支持多个域名绑定访问

    搬运一个小技巧,通过简单修改wp-config.php文件来实现WordPress博客支持绑定多个域名访问。...原文链接:https://www.wn789.com/13334.html 在未修改wp-config.php之前WordPress博客默认是不能实现多个域名独立访问的,即使我们绑定了多个域名访问时也会自动跳转到安装站点时默认的域名...(这一点的不便之处深有体会,我找了几天才找到这个解决办法) 那如果我们需要WordPress绑定多个域名,并且都能度独立访问怎么办? 要想实现WordPress绑定多个域名,并且都能度独立访问也不难。...$_SERVER['HTTP_HOST']); 二、限制特定域名访问 也可以只指定某些域名可以访问。...这样就可以设置成你添加的这几个域名能正常访问。而其他未添加的域名则无法访问

    7.2K20

    安全:nginx禁止ip访问, 只能通过域名访问

    归结到技术层面,原因是如果网站允许ip直接访问,那么即使没有在nginx配置中解析恶意的未备案域名,这个域名也是可以访问到你的网站。...这样即使未备案域名绑定了你的ip,也访问不了你的网站。 有必要说明一下,本站用的阿里云的虚拟主机,软件环境是:linux+nginx+mysql+php。...因为本文是说明怎么在nginx服务器配置禁止ip访问。...方案如下: 1.增加server模块,第一句 listen 80 default 就禁掉了ip访问,第二句标示如果通过ip访问或者nginx未解析的域名访问 则返回500错误。...如果把ip访问和未解析域名访问转到你自己的域名,从而带来一些额外流量,则如下配置(logo条纹挡住的词是:permanent): ?

    10.9K30
    领券