在 Rancher 中通过 http://服务代号.命名空间:端口 内网调用各个容器的实现

1、新的部署规划,期望服务端的容器之间相互调用不再基于域名,而是基于服务名。如图1

新的部署规划,期望服务端的容器之间相互调用不再基于域名,而是基于服务名。

图1

2、现有的规划。一个服务的容器中包含 3 个应用,其端口皆配置为 80 ,基于域名区分。调用:https://ccpapi.dev.chinamcloud.cn 。如图2

现有的规划。一个服务的容器中包含 3 个应用,其端口皆配置为 80 ,基于域名区分。调用:https://ccpapi.dev.chinamcloud.cn 。

图2

https://ccpauth.dev.chinamcloud.cn
https://ccpapi.dev.chinamcloud.cn
https://ccprpc.dev.chinamcloud.cn

3、现有的规划。一个服务的容器中包含 3 个应用,其端口皆配置为 80 ,基于域名区分。调用:https://ccpauth.dev.chinamcloud.cn 。如图3

现有的规划。一个服务的容器中包含 3 个应用,其端口皆配置为 80 ,基于域名区分。调用:https://ccpauth.dev.chinamcloud.cn 。

图3

4、现有的规划。容器中的 Nginx 配置文件内容如下

 
server {
listen 80; ## listen for ipv4
server_name ccpauth.dev.chinamcloud.cn;
charset utf-8;
root /mcloud/www/channel-pub-api/frontend/web;
index index.php;
location / {
# 如果找不到真实存在的文件,把请求分发至 index.php
try_files $uri $uri/ /index.php$is_args$args;
}
# uncomment to avoid processing of calls to non-existing static files by Yii
#location ~ /.(js|css|png|jpg|gif|swf|ico|pdf|mov|fla|zip|rar)$ {
#    try_files $uri =404;
#}
#error_page 404 /404.html;
# deny accessing php files for the /assets directory
location ~ ^/assets/.*/.php$ {
deny all;
}
# pass the PHP scripts to FastCGI server listening on 127.0.0.1:9000
#
location ~ /.php$ {
fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params;
}
# deny access to .htaccess files, if Apache's document root
# concurs with nginx's one
#
location ~* //. {
deny all;
}
}
server {
listen 80; ## listen for ipv4
server_name ccprpc.dev.chinamcloud.cn;
charset utf-8;
root /mcloud/www/channel-pub-api/rpc/web;
index index.php;
location / {
# 如果找不到真实存在的文件,把请求分发至 index.php
try_files $uri $uri/ /index.php$is_args$args;
}
# uncomment to avoid processing of calls to non-existing static files by Yii
#location ~ /.(js|css|png|jpg|gif|swf|ico|pdf|mov|fla|zip|rar)$ {
#    try_files $uri =404;
#}
#error_page 404 /404.html;
# deny accessing php files for the /assets directory
location ~ ^/assets/.*/.php$ {
deny all;
}
# pass the PHP scripts to FastCGI server listening on 127.0.0.1:9000
#
location ~ /.php$ {
fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params;
}
# deny access to .htaccess files, if Apache's document root
# concurs with nginx's one
#
location ~* //. {
deny all;
}
}
server {
listen 80; ## listen for ipv4
server_name ccpapi.dev.chinamcloud.cn localhost;
charset utf-8;
root /mcloud/www/channel-pub-api;
index index.php;
location / {
root /mcloud/www/channel-pub-api/api/web;
try_files $uri $uri/ /api/web/index.php$is_args$args;
# omit static files logging, and if they don't exist, avoid processing by Yii (uncomment if necessary)
#location ~ ^/.+/.(css|js|ico|png|jpe?g|gif|svg|ttf|mp4|mov|swf|pdf|zip|rar)$ {
#    log_not_found off;
#    access_log off;
#    try_files $uri =404;
#}
location ~ ^/assets/.+/.php(/|$) {
deny all;
}
}
location /customize {
alias /mcloud/www/channel-pub-api/customize/web/;
location = /customize {
try_files $uri /customize/customize/web/index.php$is_args$args;
}
try_files $uri $uri/ /customize/customize/web/index.php$is_args$args;
location ~ ^/customize/assets/.+/.php(/|$) {
deny all;
}
}
location /baijia {
alias /mcloud/www/channel-pub-api/baijia/web/;
# redirect to the URL without a trailing slash (uncomment if necessary)
#location = /baijia/ {
#    return 301 /baijia;
#}
# prevent the directory redirect to the URL with a trailing slash
location = /baijia {
# if your location is "/baijia", try use "/baijia/baijia/web/index.php$is_args$args"
# bug ticket: https://trac.nginx.org/nginx/ticket/97
try_files $uri /baijia/baijia/web/index.php$is_args$args;
}
# if your location is "/baijia", try use "/baijia/baijia/web/index.php$is_args$args"
# bug ticket: https://trac.nginx.org/nginx/ticket/97
try_files $uri $uri/ /baijia/baijia/web/index.php$is_args$args;
# omit static files logging, and if they don't exist, avoid processing by Yii (uncomment if necessary)
#location ~ ^/baijia/.+/.(css|js|ico|png|jpe?g|gif|svg|ttf|mp4|mov|swf|pdf|zip|rar)$ {
#    log_not_found off;
#    access_log off;
#    try_files $uri =404;
#}
location ~ ^/baijia/assets/.+/.php(/|$) {
deny all;
}
}
location /douyin {
alias /mcloud/www/channel-pub-api/douyin/web/;
# redirect to the URL without a trailing slash (uncomment if necessary)
#location = /douyin/ {
#    return 301 /douyin;
#}
# prevent the directory redirect to the URL with a trailing slash
location = /douyin {
# if your location is "/douyin", try use "/douyin/douyin/web/index.php$is_args$args"
# bug ticket: https://trac.nginx.org/nginx/ticket/97
try_files $uri /douyin/douyin/web/index.php$is_args$args;
}
# if your location is "/douyin", try use "/douyin/douyin/web/index.php$is_args$args"
# bug ticket: https://trac.nginx.org/nginx/ticket/97
try_files $uri $uri/ /douyin/douyin/web/index.php$is_args$args;
# omit static files logging, and if they don't exist, avoid processing by Yii (uncomment if necessary)
#location ~ ^/douyin/.+/.(css|js|ico|png|jpe?g|gif|svg|ttf|mp4|mov|swf|pdf|zip|rar)$ {
#    log_not_found off;
#    access_log off;
#    try_files $uri =404;
#}
location ~ ^/douyin/assets/.+/.php(/|$) {
deny all;
}
}
location /netease {
alias /mcloud/www/channel-pub-api/netease/web/;
# redirect to the URL without a trailing slash (uncomment if necessary)
#location = /netease/ {
#    return 301 /netease;
#}
# prevent the directory redirect to the URL with a trailing slash
location = /netease {
# if your location is "/netease", try use "/netease/netease/web/index.php$is_args$args"
# bug ticket: https://trac.nginx.org/nginx/ticket/97
try_files $uri /netease/netease/web/index.php$is_args$args;
}
# if your location is "/netease", try use "/netease/netease/web/index.php$is_args$args"
# bug ticket: https://trac.nginx.org/nginx/ticket/97
try_files $uri $uri/ /netease/netease/web/index.php$is_args$args;
# omit static files logging, and if they don't exist, avoid processing by Yii (uncomment if necessary)
#location ~ ^/netease/.+/.(css|js|ico|png|jpe?g|gif|svg|ttf|mp4|mov|swf|pdf|zip|rar)$ {
#    log_not_found off;
#    access_log off;
#    try_files $uri =404;
#}
location ~ ^/netease/assets/.+/.php(/|$) {
deny all;
}
}
location /qq {
alias /mcloud/www/channel-pub-api/qq/web/;
# redirect to the URL without a trailing slash (uncomment if necessary)
#location = /qq/ {
#    return 301 /qq;
#}
# prevent the directory redirect to the URL with a trailing slash
location = /qq {
# if your location is "/qq", try use "/qq/qq/web/index.php$is_args$args"
# bug ticket: https://trac.nginx.org/nginx/ticket/97
try_files $uri /qq/qq/web/index.php$is_args$args;
}
# if your location is "/qq", try use "/qq/qq/web/index.php$is_args$args"
# bug ticket: https://trac.nginx.org/nginx/ticket/97
try_files $uri $uri/ /qq/qq/web/index.php$is_args$args;
# omit static files logging, and if they don't exist, avoid processing by Yii (uncomment if necessary)
#location ~ ^/qq/.+/.(css|js|ico|png|jpe?g|gif|svg|ttf|mp4|mov|swf|pdf|zip|rar)$ {
#    log_not_found off;
#    access_log off;
#    try_files $uri =404;
#}
location ~ ^/qq/assets/.+/.php(/|$) {
deny all;
}
}
location /vtt {
alias /mcloud/www/channel-pub-api/vtt/web/;
# redirect to the URL without a trailing slash (uncomment if necessary)
#location = /vtt/ {
#    return 301 /vtt;
#}
# prevent the directory redirect to the URL with a trailing slash
location = /vtt {
# if your location is "/vtt", try use "/vtt/vtt/web/index.php$is_args$args"
# bug ticket: https://trac.nginx.org/nginx/ticket/97
try_files $uri /vtt/vtt/web/index.php$is_args$args;
}
# if your location is "/vtt", try use "/vtt/vtt/web/index.php$is_args$args"
# bug ticket: https://trac.nginx.org/nginx/ticket/97
try_files $uri $uri/ /vtt/vtt/web/index.php$is_args$args;
# omit static files logging, and if they don't exist, avoid processing by Yii (uncomment if necessary)
#location ~ ^/vtt/.+/.(css|js|ico|png|jpe?g|gif|svg|ttf|mp4|mov|swf|pdf|zip|rar)$ {
#    log_not_found off;
#    access_log off;
#    try_files $uri =404;
#}
location ~ ^/vtt/assets/.+/.php(/|$) {
deny all;
}
}
location /weibo {
alias /mcloud/www/channel-pub-api/weibo/web/;
# redirect to the URL without a trailing slash (uncomment if necessary)
#location = /weibo/ {
#    return 301 /weibo;
#}
# prevent the directory redirect to the URL with a trailing slash
location = /weibo {
# if your location is "/weibo", try use "/weibo/weibo/web/index.php$is_args$args"
# bug ticket: https://trac.nginx.org/nginx/ticket/97
try_files $uri /weibo/weibo/web/index.php$is_args$args;
}
# if your location is "/weibo", try use "/weibo/weibo/web/index.php$is_args$args"
# bug ticket: https://trac.nginx.org/nginx/ticket/97
try_files $uri $uri/ /weibo/weibo/web/index.php$is_args$args;
# omit static files logging, and if they don't exist, avoid processing by Yii (uncomment if necessary)
#location ~ ^/weibo/.+/.(css|js|ico|png|jpe?g|gif|svg|ttf|mp4|mov|swf|pdf|zip|rar)$ {
#    log_not_found off;
#    access_log off;
#    try_files $uri =404;
#}
location ~ ^/weibo/assets/.+/.php(/|$) {
deny all;
}
}
location /wx {
alias /mcloud/www/channel-pub-api/wx/web/;
# redirect to the URL without a trailing slash (uncomment if necessary)
#location = /wx/ {
#    return 301 /wx;
#}
# prevent the directory redirect to the URL with a trailing slash
location = /wx {
# if your location is "/wx", try use "/wx/wx/web/index.php$is_args$args"
# bug ticket: https://trac.nginx.org/nginx/ticket/97
try_files $uri /wx/wx/web/index.php$is_args$args;
}
# if your location is "/wx", try use "/wx/wx/web/index.php$is_args$args"
# bug ticket: https://trac.nginx.org/nginx/ticket/97
try_files $uri $uri/ /wx/wx/web/index.php$is_args$args;
# omit static files logging, and if they don't exist, avoid processing by Yii (uncomment if necessary)
#location ~ ^/wx/.+/.(css|js|ico|png|jpe?g|gif|svg|ttf|mp4|mov|swf|pdf|zip|rar)$ {
#    log_not_found off;
#    access_log off;
#    try_files $uri =404;
#}
location ~ ^/wx/assets/.+/.php(/|$) {
deny all;
}
}
# pass the PHP scripts to FastCGI server listening on 127.0.0.1:9000
#
location ~ ^/.+/.php(/|$) {
rewrite (?!^/((api|customize|baijia|customize|douyin|netease|qq|vtt|weibo|wx)/web|baijia|customize|douyin|netease|qq|vtt|weibo|wx))^ /api/web$uri break;
rewrite (?!^/baijia/web)^/baijia(/.+)$ /baijia/web$1 break;
rewrite (?!^/customize/web)^/customize(/.+)$ /customize/web$1 break;
rewrite (?!^/douyin/web)^/douyin(/.+)$ /douyin/web$1 break;
rewrite (?!^/netease/web)^/netease(/.+)$ /netease/web$1 break;
rewrite (?!^/qq/web)^/qq(/.+)$ /qq/web$1 break;
rewrite (?!^/vtt/web)^/vtt(/.+)$ /vtt/web$1 break;
rewrite (?!^/weibo/web)^/weibo(/.+)$ /weibo/web$1 break;
rewrite (?!^/wx/web)^/wx(/.+)$ /wx/web$1 break;
include fastcgi_params;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
fastcgi_pass 127.0.0.1:9000;
#fastcgi_pass unix:/var/run/php5-fpm.sock;
try_files $fastcgi_script_name =404;
}
# deny access to .htaccess files, if Apache's document root
# concurs with nginx's one
#
location ~ //. {
deny all;
}
}

5、现有的规划。查看负载均衡的规则,皆是自定义域名。如图4

现有的规划。查看负载均衡的规则,皆是自定义域名。

图4

6、新的规划。一个服务的容器中包含 3 个应用,ccpauth 需要支持外网域名,无需要支持内网调用。ccpapi 与 ccprpc 需要支持内网服务名调用,无需要支持外网调用。其端口分别配置为 80、82、83 ,基于端口区分。

https://ccpauth.dev.chinamcloud.cn
http://ccpapi.ccp:82
http://ccpapi.ccp:83

7、新的规划。容器中的 Nginx 配置文件内容如下

server {
listen 80; ## listen for ipv4
server_name ccpauth.dev.chinamcloud.cn;
charset utf-8;
root /mcloud/www/channel-pub-api/frontend/web;
index index.php;
location / {
# 如果找不到真实存在的文件,把请求分发至 index.php
try_files $uri $uri/ /index.php$is_args$args;
}
# uncomment to avoid processing of calls to non-existing static files by Yii
#location ~ /.(js|css|png|jpg|gif|swf|ico|pdf|mov|fla|zip|rar)$ {
#    try_files $uri =404;
#}
#error_page 404 /404.html;
# deny accessing php files for the /assets directory
location ~ ^/assets/.*/.php$ {
deny all;
}
# pass the PHP scripts to FastCGI server listening on 127.0.0.1:9000
#
location ~ /.php$ {
fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params;
}
# deny access to .htaccess files, if Apache's document root
# concurs with nginx's one
#
location ~* //. {
deny all;
}
}
server {
listen 83; ## listen for ipv4
server_name ccpapi.ccp;
charset utf-8;
root /mcloud/www/channel-pub-api/rpc/web;
index index.php;
location / {
# 如果找不到真实存在的文件,把请求分发至 index.php
try_files $uri $uri/ /index.php$is_args$args;
}
# uncomment to avoid processing of calls to non-existing static files by Yii
#location ~ /.(js|css|png|jpg|gif|swf|ico|pdf|mov|fla|zip|rar)$ {
#    try_files $uri =404;
#}
#error_page 404 /404.html;
# deny accessing php files for the /assets directory
location ~ ^/assets/.*/.php$ {
deny all;
}
# pass the PHP scripts to FastCGI server listening on 127.0.0.1:9000
#
location ~ /.php$ {
fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params;
}
# deny access to .htaccess files, if Apache's document root
# concurs with nginx's one
#
location ~* //. {
deny all;
}
}
server {
listen 82; ## listen for ipv4
server_name ccpapi.ccp localhost;
charset utf-8;
root /mcloud/www/channel-pub-api;
index index.php;
location / {
root /mcloud/www/channel-pub-api/api/web;
try_files $uri $uri/ /api/web/index.php$is_args$args;
# omit static files logging, and if they don't exist, avoid processing by Yii (uncomment if necessary)
#location ~ ^/.+/.(css|js|ico|png|jpe?g|gif|svg|ttf|mp4|mov|swf|pdf|zip|rar)$ {
#    log_not_found off;
#    access_log off;
#    try_files $uri =404;
#}
location ~ ^/assets/.+/.php(/|$) {
deny all;
}
}
location /customize {
alias /mcloud/www/channel-pub-api/customize/web/;
location = /customize {
try_files $uri /customize/customize/web/index.php$is_args$args;
}
try_files $uri $uri/ /customize/customize/web/index.php$is_args$args;
location ~ ^/customize/assets/.+/.php(/|$) {
deny all;
}
}
location /baijia {
alias /mcloud/www/channel-pub-api/baijia/web/;
# redirect to the URL without a trailing slash (uncomment if necessary)
#location = /baijia/ {
#    return 301 /baijia;
#}
# prevent the directory redirect to the URL with a trailing slash
location = /baijia {
# if your location is "/baijia", try use "/baijia/baijia/web/index.php$is_args$args"
# bug ticket: https://trac.nginx.org/nginx/ticket/97
try_files $uri /baijia/baijia/web/index.php$is_args$args;
}
# if your location is "/baijia", try use "/baijia/baijia/web/index.php$is_args$args"
# bug ticket: https://trac.nginx.org/nginx/ticket/97
try_files $uri $uri/ /baijia/baijia/web/index.php$is_args$args;
# omit static files logging, and if they don't exist, avoid processing by Yii (uncomment if necessary)
#location ~ ^/baijia/.+/.(css|js|ico|png|jpe?g|gif|svg|ttf|mp4|mov|swf|pdf|zip|rar)$ {
#    log_not_found off;
#    access_log off;
#    try_files $uri =404;
#}
location ~ ^/baijia/assets/.+/.php(/|$) {
deny all;
}
}
location /douyin {
alias /mcloud/www/channel-pub-api/douyin/web/;
# redirect to the URL without a trailing slash (uncomment if necessary)
#location = /douyin/ {
#    return 301 /douyin;
#}
# prevent the directory redirect to the URL with a trailing slash
location = /douyin {
# if your location is "/douyin", try use "/douyin/douyin/web/index.php$is_args$args"
# bug ticket: https://trac.nginx.org/nginx/ticket/97
try_files $uri /douyin/douyin/web/index.php$is_args$args;
}
# if your location is "/douyin", try use "/douyin/douyin/web/index.php$is_args$args"
# bug ticket: https://trac.nginx.org/nginx/ticket/97
try_files $uri $uri/ /douyin/douyin/web/index.php$is_args$args;
# omit static files logging, and if they don't exist, avoid processing by Yii (uncomment if necessary)
#location ~ ^/douyin/.+/.(css|js|ico|png|jpe?g|gif|svg|ttf|mp4|mov|swf|pdf|zip|rar)$ {
#    log_not_found off;
#    access_log off;
#    try_files $uri =404;
#}
location ~ ^/douyin/assets/.+/.php(/|$) {
deny all;
}
}
location /netease {
alias /mcloud/www/channel-pub-api/netease/web/;
# redirect to the URL without a trailing slash (uncomment if necessary)
#location = /netease/ {
#    return 301 /netease;
#}
# prevent the directory redirect to the URL with a trailing slash
location = /netease {
# if your location is "/netease", try use "/netease/netease/web/index.php$is_args$args"
# bug ticket: https://trac.nginx.org/nginx/ticket/97
try_files $uri /netease/netease/web/index.php$is_args$args;
}
# if your location is "/netease", try use "/netease/netease/web/index.php$is_args$args"
# bug ticket: https://trac.nginx.org/nginx/ticket/97
try_files $uri $uri/ /netease/netease/web/index.php$is_args$args;
# omit static files logging, and if they don't exist, avoid processing by Yii (uncomment if necessary)
#location ~ ^/netease/.+/.(css|js|ico|png|jpe?g|gif|svg|ttf|mp4|mov|swf|pdf|zip|rar)$ {
#    log_not_found off;
#    access_log off;
#    try_files $uri =404;
#}
location ~ ^/netease/assets/.+/.php(/|$) {
deny all;
}
}
location /qq {
alias /mcloud/www/channel-pub-api/qq/web/;
# redirect to the URL without a trailing slash (uncomment if necessary)
#location = /qq/ {
#    return 301 /qq;
#}
# prevent the directory redirect to the URL with a trailing slash
location = /qq {
# if your location is "/qq", try use "/qq/qq/web/index.php$is_args$args"
# bug ticket: https://trac.nginx.org/nginx/ticket/97
try_files $uri /qq/qq/web/index.php$is_args$args;
}
# if your location is "/qq", try use "/qq/qq/web/index.php$is_args$args"
# bug ticket: https://trac.nginx.org/nginx/ticket/97
try_files $uri $uri/ /qq/qq/web/index.php$is_args$args;
# omit static files logging, and if they don't exist, avoid processing by Yii (uncomment if necessary)
#location ~ ^/qq/.+/.(css|js|ico|png|jpe?g|gif|svg|ttf|mp4|mov|swf|pdf|zip|rar)$ {
#    log_not_found off;
#    access_log off;
#    try_files $uri =404;
#}
location ~ ^/qq/assets/.+/.php(/|$) {
deny all;
}
}
location /vtt {
alias /mcloud/www/channel-pub-api/vtt/web/;
# redirect to the URL without a trailing slash (uncomment if necessary)
#location = /vtt/ {
#    return 301 /vtt;
#}
# prevent the directory redirect to the URL with a trailing slash
location = /vtt {
# if your location is "/vtt", try use "/vtt/vtt/web/index.php$is_args$args"
# bug ticket: https://trac.nginx.org/nginx/ticket/97
try_files $uri /vtt/vtt/web/index.php$is_args$args;
}
# if your location is "/vtt", try use "/vtt/vtt/web/index.php$is_args$args"
# bug ticket: https://trac.nginx.org/nginx/ticket/97
try_files $uri $uri/ /vtt/vtt/web/index.php$is_args$args;
# omit static files logging, and if they don't exist, avoid processing by Yii (uncomment if necessary)
#location ~ ^/vtt/.+/.(css|js|ico|png|jpe?g|gif|svg|ttf|mp4|mov|swf|pdf|zip|rar)$ {
#    log_not_found off;
#    access_log off;
#    try_files $uri =404;
#}
location ~ ^/vtt/assets/.+/.php(/|$) {
deny all;
}
}
location /weibo {
alias /mcloud/www/channel-pub-api/weibo/web/;
# redirect to the URL without a trailing slash (uncomment if necessary)
#location = /weibo/ {
#    return 301 /weibo;
#}
# prevent the directory redirect to the URL with a trailing slash
location = /weibo {
# if your location is "/weibo", try use "/weibo/weibo/web/index.php$is_args$args"
# bug ticket: https://trac.nginx.org/nginx/ticket/97
try_files $uri /weibo/weibo/web/index.php$is_args$args;
}
# if your location is "/weibo", try use "/weibo/weibo/web/index.php$is_args$args"
# bug ticket: https://trac.nginx.org/nginx/ticket/97
try_files $uri $uri/ /weibo/weibo/web/index.php$is_args$args;
# omit static files logging, and if they don't exist, avoid processing by Yii (uncomment if necessary)
#location ~ ^/weibo/.+/.(css|js|ico|png|jpe?g|gif|svg|ttf|mp4|mov|swf|pdf|zip|rar)$ {
#    log_not_found off;
#    access_log off;
#    try_files $uri =404;
#}
location ~ ^/weibo/assets/.+/.php(/|$) {
deny all;
}
}
location /wx {
alias /mcloud/www/channel-pub-api/wx/web/;
# redirect to the URL without a trailing slash (uncomment if necessary)
#location = /wx/ {
#    return 301 /wx;
#}
# prevent the directory redirect to the URL with a trailing slash
location = /wx {
# if your location is "/wx", try use "/wx/wx/web/index.php$is_args$args"
# bug ticket: https://trac.nginx.org/nginx/ticket/97
try_files $uri /wx/wx/web/index.php$is_args$args;
}
# if your location is "/wx", try use "/wx/wx/web/index.php$is_args$args"
# bug ticket: https://trac.nginx.org/nginx/ticket/97
try_files $uri $uri/ /wx/wx/web/index.php$is_args$args;
# omit static files logging, and if they don't exist, avoid processing by Yii (uncomment if necessary)
#location ~ ^/wx/.+/.(css|js|ico|png|jpe?g|gif|svg|ttf|mp4|mov|swf|pdf|zip|rar)$ {
#    log_not_found off;
#    access_log off;
#    try_files $uri =404;
#}
location ~ ^/wx/assets/.+/.php(/|$) {
deny all;
}
}
# pass the PHP scripts to FastCGI server listening on 127.0.0.1:9000
#
location ~ ^/.+/.php(/|$) {
rewrite (?!^/((api|customize|baijia|customize|douyin|netease|qq|vtt|weibo|wx)/web|baijia|customize|douyin|netease|qq|vtt|weibo|wx))^ /api/web$uri break;
rewrite (?!^/baijia/web)^/baijia(/.+)$ /baijia/web$1 break;
rewrite (?!^/customize/web)^/customize(/.+)$ /customize/web$1 break;
rewrite (?!^/douyin/web)^/douyin(/.+)$ /douyin/web$1 break;
rewrite (?!^/netease/web)^/netease(/.+)$ /netease/web$1 break;
rewrite (?!^/qq/web)^/qq(/.+)$ /qq/web$1 break;
rewrite (?!^/vtt/web)^/vtt(/.+)$ /vtt/web$1 break;
rewrite (?!^/weibo/web)^/weibo(/.+)$ /weibo/web$1 break;
rewrite (?!^/wx/web)^/wx(/.+)$ /wx/web$1 break;
include fastcgi_params;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
fastcgi_pass 127.0.0.1:9000;
#fastcgi_pass unix:/var/run/php5-fpm.sock;
try_files $fastcgi_script_name =404;
}
# deny access to .htaccess files, if Apache's document root
# concurs with nginx's one
#
location ~ //. {
deny all;
}
}

8、新的规划。查看负载均衡的规则,仅保留 ccpauth.dev.chinamcloud.cn。如图5

新的规划。查看负载均衡的规则,仅保留 ccpauth.dev.chinamcloud.cn。

图5

9、新的规划。在自身容器内部调用 3 个应用的地址,调用成功。

[root@ccpapi-78d6f74688-rfjhf /]# cd /mcloud/www/channel-pub-api/
[root@ccpapi-78d6f74688-rfjhf channel-pub-api]# cd api/web/
[root@ccpapi-78d6f74688-rfjhf web]# vi api.txt
[root@ccpapi-78d6f74688-rfjhf web]# cd ..
[root@ccpapi-78d6f74688-rfjhf api]# cd ..
[root@ccpapi-78d6f74688-rfjhf channel-pub-api]# cd qq/web/
[root@ccpapi-78d6f74688-rfjhf web]# vi qq.txt
[root@ccpapi-78d6f74688-rfjhf web]# cd rpc/web
bash: cd: rpc/web: No such file or directory
[root@ccpapi-78d6f74688-rfjhf web]# cd ..
[root@ccpapi-78d6f74688-rfjhf qq]# cd ..
[root@ccpapi-78d6f74688-rfjhf channel-pub-api]# cd rpc/web/
[root@ccpapi-78d6f74688-rfjhf web]# vi rpc.txt
[root@ccpapi-78d6f74688-rfjhf web]# cd ..
[root@ccpapi-78d6f74688-rfjhf rpc]# cd ..
[root@ccpapi-78d6f74688-rfjhf channel-pub-api]# cd frontend/web/
[root@ccpapi-78d6f74688-rfjhf web]# vi auth.txt
[root@ccpapi-78d6f74688-rfjhf web]# curl http://ccpapi.ccp:82/api.txt
api
[root@ccpapi-78d6f74688-rfjhf web]# curl http://ccpapi.ccp:82/qq/qq.txt
qq
[root@ccpapi-78d6f74688-rfjhf web]# curl http://ccpapi.ccp:83/rpc.txt
rpc
[root@ccpapi-78d6f74688-rfjhf web]# curl https://ccpauth.dev.chinamcloud.cn/auth.txt
auth
[root@ccpapi-78d6f74688-rfjhf web]# 

10、新的规划。在其他容器内部调用 3 个应用的地址,调用成功。如图6

新的规划。在其他容器内部调用 3 个应用的地址,调用成功。

图6

[root@ccpvtt-54dc6fb788-t9ldd /]# curl http://ccpapi.ccp:82/api.txt
api
[root@ccpvtt-54dc6fb788-t9ldd /]# curl http://ccpapi.ccp:82/qq/qq.txt
qq
[root@ccpvtt-54dc6fb788-t9ldd /]# curl http://ccpapi.ccp:83/rpc.txt
rpc
[root@ccpvtt-54dc6fb788-t9ldd /]# curl https://ccpauth.dev.chinamcloud.cn/auth.txt
auth
[root@ccpvtt-54dc6fb788-t9ldd /]# 

11、新的规划。在外网中依次调用。查看结果。符合预期。

https://ccpauth.dev.chinamcloud.cn/auth.txt 响应成功,auth
https://ccpapi.dev.chinamcloud.cn/api.txt 响应 404,404 Not Found
https://ccprpc.dev.chinamcloud.cn/rpc.txt 响应 404,404 Not Found
http://ccpapi.ccp:82/api.txt 无响应,Failed to load response data
http://ccpapi.ccp:83/rpc.txt 无响应,Failed to load response data

12、由于在开发环境中,可能其他服务的本地环境需要调用 ccpapi 与 ccprpc。因此,需要 ccpapi 与 ccprpc 支持外网调用。编辑负载均衡的规则,ccpapi.dev.chinamcloud.cn:82、ccprpc.dev.chinamcloud.cn:83。如图7

由于在开发环境中,可能其他服务的本地环境需要调用 ccpapi 与 ccprpc。因此,需要 ccpapi 与 ccprpc 支持外网调用。编辑负载均衡的规则,ccpapi.dev.chinamcloud.cn:82、ccprpc.dev.chinamcloud.cn:83。

图7

13、新的规划。在外网中依次调用。查看结果。符合预期。

https://ccpauth.dev.chinamcloud.cn/auth.txt 响应成功,auth
https://ccpapi.dev.chinamcloud.cn/api.txt 响应成功,api
https://ccprpc.dev.chinamcloud.cn/rpc.txt 响应成功,rpc
http://ccpapi.ccp:82/api.txt 无响应,Failed to load response data
http://ccpapi.ccp:83/rpc.txt 无响应,Failed to load response data

原创文章,作者:ItWorker,如若转载,请注明出处:https://blog.ytso.com/251067.html

(0)
上一篇 2022年5月1日
下一篇 2022年5月1日

相关推荐

发表回复

登录后才能评论