使用Nginx实现多个网站代理[多端口监听][django][资源服务器]

使用Nginx实现多个网站代理

导航


原文链接:使用Nginx实现多个网站代理

导言

nginx是网站开发后期一个不可缺少的应用。nginx的作用是:

  1. 请求代理:监听请求并转发给对应端口的进程处理
  2. 资源代理:使用nginx直接将服务器资源共享
  3. 负载均衡:通过配置nginx的代理,将请求发送到不同进程或服务器处理,提升服务的响应速度

要想使用nginx多个域名的请求代理,首先nginx需要能接收到来自不同域名的请求。
例如example.com下的三级域名www,res,blog,email等服务。要将这些域名通过DNS解析到我们的服务器IP。
可以参考 如何DNS解析域名和开放服务器端口

目前假设我们已经有两个三级域名www.example.com和blog.example.com

nginx安装

本节是进行nginx的安装配置,已安装会配置的可以直接跳过

nginx的详细安装方式

nginx配置

安装后,我们进入nginx目录,可以看到nginx.conf

里面可以配置log地址和事件等设置,其中大部分我们都不需要配置。

nginx导入自定义配置目录

我们在nginx配置目录下新建一个配置我们多个网站服务的目录。在宝塔面板中为vhost/nginx。
为了让nginx加载这个目录,在nginx的http控制块末尾加上:

include /www/server/panel/vhost/nginx/*.conf;

 

路径是根据自己自定义的目录配置。

单个网站配置

新建一个www.example.com.conf 在配置目录下。
添加一个服务块的基础配置

server
{
    listen 80;
    server_name www.example.com;
    index index.html
    root /www/wwwroot/www.example.com;

    access_log  /www/wwwlogs/www.example.com.log;
    error_log  /www/wwwlogs/www.example.com.log;
}

 

这是一个基础的配置,表示监听80端口,处理的域名是www.example.com,
root就是网站的目录,index要在网站根目录下,这样访问的时候会自动加载出index.html

访问时如果没有index文件或者访问不存在的路径时,会显示502,这其实表示nginx已经代理了请求,只是我们的处理服务没有响应。

因此我们要把这个网站的处理服务添加上去。处理服务实际上就是一个进程,我们把请求转发给对应进程的端口就行,例如新的配置:

server
{
    listen 80;
    server_name www.example.com;
    index index.html
    root /www/wwwroot/www.example.com;

    location / {
        proxy_pass http://127.0.0.1:8002;
    }
    access_log  /www/wwwlogs/www.example.com.log;
    error_log  /www/wwwlogs/www.example.com.log;
}

 

我们将请求发给了本地主机的8002端口的进程,这个进程可以是java,python的开发框架实现的一个网络服务。
我们重新启动nginx

service nginx restart

 

就可以访问服务了。

多个网站配置

在实际应用场景中一个服务器上配置多个服务是很常见的。
我们现在在同一个IP的服务器上配置第二个网站blog.example.com

实际操作就是让这个网站的服务在8001端口工作,然后创建一个blog.example.com.conf配置文件
修改名称和代理路由就行,当然配置的log文件也需要修改

server
{
    listen 80;
    server_name blog.example.com;
    index index.html
    root /www/wwwroot/blog.example.com;

    location / {
        proxy_pass http://127.0.0.1:8001;
    }
    access_log  /www/wwwlogs/blog.example.com.log;
    error_log  /www/wwwlogs/blog.example.com.log;
}

 

重新启动nginx就能同时访问了。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

aidroid

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值