我们现在拥有2个项目。但是只有一个域名,通过nginx配置来实现以下url导向不同的项目。

后台管理台:{域名}/admin

用户客户端:{域名}/client

server {
listen 8888;
server_name ****.*****.com;
root /home/work/***/static/client;
index index.html;
autoindex on;
charset utf-8; location ~ /(system|car)/ {
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_pass http://192.168.1.1:3000;
} #配置Nginx动静分离,定义的静态页面直接从Nginx发布目录读取。
location /admin {
alias /home/work/****/static/admin/;
expires 1d;
index index.html;
autoindex on;
} access_log /home/work/****/logs/static_admin_ng_access.log; location /api/ {
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_pass http://192.168.1.1:3000;
}
#配置Nginx动静分离,定义的静态页面直接从Nginx发布目录读取。
location /client {
alias /home/work/****/static/client/;
#expires 为用户信息的缓存时间。1d为一天
expires 1d;
index index.html;
autoindex on;
}
access_log /home/work/****/logs/static_client_ng_access.log; }

在配置这个的时候,遇到一个坑,就是alias 和root 的区别,导致获取的静态文件的获取的路径不对,一直报404;郁闷的很;

在配置ng 的location 的生活;一般不要加后面的斜杆;然后加上autoindex on; 自动首页;这样就会自动跳转到首页了;

alias 和 root 的区别; root 的话;location 中的地址会拼接到root后面;alias就直接代替后面的东西

如:
location /admin {
root  /admin/res/;
index html.html;
autoindex no;
}

location /admin {
alias /admin/res/;
index html.html;
autoindex no;
}

访问地址:localhost:8888/admin/res/app.js;

root实际访问的地址就是: localhost:8888/admin/res/admin/res/app.js

也就是说这个实际访问的地址 ./admin/res/admin/res/app.js ;这样根本找不到文件;

alias 实际的访问地址就是: localhost:8888/admin/res/app.js;

访问的地址是  ./admin/res/app.js

location /admin/{
root  /admin/res/;
index html.html;
autoindex no;
}
上面这种配置 localhost:8888/admin  是不能跳转到首页的;
需要加上斜杆 localhost:8888/admin/  才能跳转到首页

location /admin{
root  /admin/res/;
index html.html;
autoindex no;
}

这种访问的时候: localhost:8888/admin  这样就可以直接访问了;

配置服务器代理:

location /api/ {
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_pass http://192.168.1.1: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_pass http://192.168.1.1:3000;
这4项了;

现在这样访问的地址就是  http://192.168.1.1:3000/api/...........;

nginx 配置 同一域名端口下,根据URL 导向不同的项目目录的更多相关文章

  1. nginx配置虚拟主机-端口号区分/域名区分

    Nginx实现虚拟机 可以实现在同一台服务运行多个网站,而且网站之间互相不干扰.同一个服务器可能有一个ip,网站需要使用80端口.网站的域名不同. 区分不同的网站有三种方式:ip区分.端口区分.域名区 ...

  2. 使用nginx配置二级域名

    使用nginx配置二级域名 2018.11.21 11:51:17字数 613阅读 170 最近想把三个项目配在一个服务器上,于是想使用nginx配置二级域名实现. 1.域名添加解析 我的是阿里云的域 ...

  3. Nginx配置同一个域名同时支持http与https两种方式访问

    Nginx配置同一个域名http与https两种方式都可访问,证书是阿里云上免费申请的 server{listen 80;listen 443 ssl;ssl on;server_name 域名;in ...

  4. nginx配置基于域名、端口、IP的虚拟主机

    1.基于域名的虚拟主机: 绝大多数企业对外提供服务的网站使用的都是基于域名的主机,通过不同的域名区分不同的虚拟主机. 首先我们进入安装nginxd的目录下:/application/nginx-1.6 ...

  5. Nginx配置以及域名转发

    工程中的nginx配置 #user nobody; worker_processes 24; error_log /home/xxx/opt/nginx/logs/error.log; pid /ho ...

  6. Nginx配置多域名代理

    目的 当我们有多个站点需要对外网开放,每个站点的域名都不一样,然而我们只有一个外网ip.这种情况下,我们就可以使用一个Nginx来配置多域名代理.这种代理方式可以解决,在同一个端口上针对不同域名代理不 ...

  7. nginx配置多域名映射方法(本地hosts)

    本地测试网站的时候如果不想用localhost/xxxx的形式访问,可能就需要修改hosts文件来映射了,但是一个网站还好,假如有多个网站的话就不行了. 这时就需要配置多域名映射 比如hosts中配置 ...

  8. 使用SSL安全证书和nginx配置将域名HTTPS化

    一.在阿里云后台申请免费版证书: 二.在域名解析里面添加记录: 三.提交审核: 四.等待审核通过后,下载nginx证书: 五.按照文档修改nginx配置文件: https://help.aliyun. ...

  9. nginx配置二级域名

    我在我的服务器上面跑了两个node应用程序,分别一个端口2368跑的是ghost博客,一个端口8000跑的是我的demo程序.想要一级域名zhangruojun.com用来访问博客,二级域名demo. ...

随机推荐

  1. Android studio和Genymotion-VirtualBox的配合使用

    Android Studio自带的模拟器实在是太慢了,对于我这种急性子来说简直...好了,我不想说脏话 那么我们就愉快的使用Genymotion好了 Android 开发最好的网站:http://ww ...

  2. swoole框架和其所涉及的协议

    网络知识基础 OSI协议 :应用层.表示层.会话层.传输层.网络层.数据链路层.物理层 tcp通信 TCP通信过程包括三个步骤:建立TCP连接通道,传输数据,断开TCP连接通道(三次握手.四次挥手). ...

  3. springcloud-feign组件实现声明式的调用

    11.使用feign实现声明式的调用 使用RestTemplate+ribbon已经可以完成对服务端负载均衡的调用,为什么还要使用feign? @RequestMapping("/hi&qu ...

  4. vue中$refs的使用

    vue中$refs获取组件或元素: 获取的元素就相当于是一个原生获取的元素,可以进行操作 this.$refs.ele.style.color = 'red

  5. 嵌入式Linux开发之uboot启动Linux整体流程分析

    嵌入式Linux开发之uboot启动Linux整体流程分析 Uboot全称Universal Boot Loader,一个遵循GPL协议的的开源项目,其作用是引导操作系统,支持引导linux.VxWo ...

  6. SecureCRT常见配置

    不自动断开连接 颜色设置 然后再在/etc/bash.bashrc中加入这句话alias ls='ls --color',其实意思就是以后所有的ls命令,就是ls –color命令

  7. 基于thinkphp的后台管理系统模板快速搭建

    当我们在搭建网站的时候,后端开发人员在编写后台的管理系统的时候,往往会因为缺少一个合适的后台管理系统的模板,而必须去重新编写一个,这几天由于工作上的安排,需要去研究一下thinkcmf的后台管理系统, ...

  8. css给html添加效果

    <!doctype html> <html> <head> <title>EasyMall注册界面</title> <meta htt ...

  9. 用switch组件控制一个元素的显示和隐藏状态

    微信小程序开发(交流QQ群:604788754) WXML: <view class="body-view"> <switch bindchange=" ...

  10. python中os模块在windows下的使用

    今天学习了一下Python的os模块,主要是针对文件夹和文件路径的一系列操作. 与Python内置函数相比这里这里的函数功能更多样化,功能也更强大.但是学习过程中我发现很多函数都是只适用于unix系统 ...