云网牛站
所在位置:首页 > Linux云服务器 > 在具有相同域(FQDN)的Nginx上托管多个站点

在具有相同域(FQDN)的Nginx上托管多个站点

2019-11-28 15:18:27作者:夏蓝稿源:云网牛站

如果您希望共享相同的FQDN来服务多个站点或服务API,那么这将对您有所帮助。如果您的环境中有两个站点托管在不同的服务器上,例如sales和accounting,则您的客户将需要在浏览器中执行以下操作才能访问不同的站点。

To Access Sales site:

https://api.computingforgeeks.com/sales

To Access Accounts site:

https://api.computingforgeeks.com/accounts

如您所见,我们使用相同的FQDN服务以/sales和/accounting区分的不同站点,如果您的环境中有一个公用IP和防火墙规则,它将为您节省更多。

我们希望您已经安装并正在运行Nginx。

1、在Ubuntu/Debian上安装Nginx

$ sudo apt -y install nginx

$ sudo systemctl enable --now nginx

2、在CentOS/Fedora上安装Nginx

$ sudo yum -y install nginx

$ sudo systemctl enable --now nginx

参考:在CentOS 8系统中安装Nginx的方法

3、在Arch Linux/Manjaro上安装Nginx

$ sudo pacman -S nginx

$ sudo systemctl enable --now nginx

在具有相同域(FQDN)的Nginx上托管多个站点

 

一、修改主要的Nginx配置文件

打开Nginx默认配置文件,并在http部分内添加以下行,确保它在http大括号内:

http {

....

......

include /etc/nginx/sites.d/*.conf;

}

这会将配置文件添加到/etc/nginx/sites.d/中,以便nginx读取并对其执行操作。

 

二、创建主站点配置文件

现在让我们在/etc/nginx/sites.d中添加主站点FQDN配置文件:

$ sudo vim api.computingforgeeks.com

server {

listen 80;

server_name  api.computingforgeeks.com;

return 301 https://api.computingforgeeks.com$request_uri;

}

server {

listen 443 ssl http2;

server_name api.computingforgeeks.com; 

modsecurity_transaction_id "api.computingforgeeks.com-$request_id"; 

access_log           /var/log/nginx/test-api-access.log; 

error_log            /var/log/nginx/test-api-error.log; 

include              /etc/nginx/default.d/api.computingforgeeks.com/*.conf;

}

特定站点位于/etc/nginx/default.d/api.computingforgeeks.com/中,您会注意到,这些站点已包含在我们的配置文件中。

 

三、创建站点路由配置

现在,按照上述配置中的/etc/nginx/default.d/api.computingforgeeks.com/目录创建站点,在此设置中,我们将创建一个用于sales的产品:

cd /etc/nginx/default.d/api.computingforgeeks.com

此配置会将流量重定向到侦听端口8443的托管sales站点的服务器1(192.168.55.60):

$ sudo vim sales.conf

location /sales/ {

proxy_http_version 1.1;

proxy_pass https://192.168.55.60:8443/sales/;

proxy_cache_bypass $http_upgrade;

proxy_set_header Connection 'upgrade';

proxy_set_header Upgrade $http_upgrade;

}

此配置会将流量重定向到侦听端口8080的托管sales站点的服务器1(192.168.55.63)

$ sudo vim accounts.conf 

location /accounts/ {

proxy_http_version 1.1;

proxy_pass https://192.168.55.63:8080/accounts/;

proxy_cache_bypass $http_upgrade;

proxy_set_header Connection 'upgrade';

proxy_set_header Upgrade $http_upgrade;

}

这就是您需要配置nginx来使用相同的FQDN代理站点或API的全部操作。

 

相关主题

CentOS 8/RHEL 8系统Apache/Nginx服务器中安装配置Varnish Cache 6

精选文章
热门文章