【nginx 非根路径部署】


一、为什么要用到非根路径部署?

Nginx 本身并不强制要求必须在非根路径部署应用。通常有以下情况需要非根路径部署:
1.多个应用共存:如果服务器需要托管多个网站或应用程序,每个应用可以部署在不同的子目录下。
2.资源隔离:在非根路径部署可以作为一种资源隔离的方式,帮助防止一个应用影响到另一个应用的运行环境。
3.安全性:非根路径部署可以作为额外的安全措施之一。例如,如果某个应用存在安全漏洞,限制其访问权限和范围可以减少潜在的损害。
4.方便管理和维护:当应用程序部署在特定的子目录中时,可以通过 Nginx 的配置文件更灵活地控制对这些目录的访问,比如设置访问控制、重写规则等。
5.避免命名冲突:当服务器上部署了多个项目时,确保它们各自位于独立的子目录中可以帮助避免静态资源或其他文件的命名冲突问题。
6.反向代理设置:**使用 Nginx 作为反向代理服务器时,可以通过非根路径将请求转发给后端的应用服务器。

二、使用步骤

1.引入库

代码如下(示例):

# user  nobody;
#设置工作进程的数量为1
worker_processes  1;

#每个工作进程允许的最大并发连接数为 1024
events {
    worker_connections  1024;
}

http {
    include       mime.types;
    default_type  application/octet-stream;
    sendfile        on;
    keepalive_timeout  65;

    #隐藏版本号,关闭服务器标识
    server_tokens off;


	#监听端口 18080
	#服务器名称为 localhost
    server {
        listen       18080;
        server_name  localhost;

        #前端路径为具体的上下文路径,比如hospital
        location /hospital {
        	#设置前端应用的基础目录
            alias   /home/hospital/web/dist;
            #尝试直接从文件系统服务请求的文件,如果文件不存在则返回index.html
			try_files $uri $uri/ /hospital/index.html;
            index  index.html index.htm;
        }

        #后端请求转发路径
        location /sick-api/ {
        	#设置代理传递给后端的HTTP头信息
			proxy_set_header Host $http_host;
            proxy_set_header X-Real-IP $remote_addr;
            proxy_set_header REMOTE_HOST $remote_addr;
            proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
			proxy_set_header X-Forwarded-Proto $scheme;
			proxy_set_header X-NginX-Proxy true;
			proxy_http_version 1.1;
            proxy_set_header Upgrade $http_upgrade;
            proxy_set_header Connection $connection_upgrade;
            #将请求转发到本地的 8081 端口
			proxy_pass http://localhost:8081/;
		}

		#定义错误页面的位置
        error_page   500 502 503 504  /50x.html;
        location = /50x.html {
            root   html;
        }
    }

}

总结

这段配置使得前端应用和后端 API 分别位于/hospital和 /tow-api 路径下。前端应用的静态资源和服务将从/home/hospital/web/dist 读取,而所有指向 /sick-api/ 的请求都将被代理到监听在 localhost:8081 的后端服务。这种配置非常适合在一台服务器上托管多个应用,并且每个应用都有自己的路径前缀。

  • 4
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值