我正在使用一个React应用程序作为前端和一个Laravel应用程序作为后端。这两个通过Laravel Sactum API相互连接。整个环境使用Docker部署在服务器上,前端和后端是独立的容器,但与network:someNetwork
连接
API调用是使用URL http://myserverip:8000从前端完成的--这是可行的,但我希望关闭8000端口(外部),并保持打开前端工作的3000端口。现在,当我关闭8000端口(带有防火墙),并尝试从前端发出API请求时,我得到了一个网络错误。
server {
listen 80;
index index.php index.html;
error_log /var/log/nginx/error.log;
access_log /var/log/nginx/access.log;
root /var/www/public;
location ~ \.php$ {
try_files $uri =404;
fastcgi_split_path_info ^(.+\.php)(/.+)$;
fastcgi_pass app:9000;
fastcgi_index index.php;
include fastcgi_params;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
fastcgi_param PATH_INFO $fastcgi_path_info;
}
location / {
try_files $uri $uri/ /index.php?$query_string;
gzip_static on;
}
}
你想做的事永远行不通。
ReactJS(我想这就是您所说的ReactApp的意思)在用于生产之前应该是“构建”的。结果将是一个包含一堆静态文件的build
文件夹。
这些文件可以使用nginx部署/serverd。来自ReactJS(前端应用程序)的API调用总是来自网络外部,因为客户机/客户机不是Docker NAT网络的一部分(我猜)。
server {
listen 443 ssl;
server_name example.com
.....
root /path/to/your/reactapp/static/files;
location / {
try_files $uri /index.html;
}
}
server {
listen 443 ssl;
server_name api.example.com;
...all the laravel PHP config here
}
如果您不能或不想为API创建子域,请使用位置
server {
listen 443 ssl;
server_name example.com
.....
root /path/to/your/reactapp/static/files;
location / {
try_files $uri /index.html;
}
location /api/ {
Do your Laravel config here (use nested locations for handling the php files)
Or do a `proxy_pass` and configure an internal server (listen `8000`) and do not expose it.
}
}
问题内容: 我正在通过docker compose中的选项。显然,您可以从容器或服务导入卷。从docker compose文档中是: volume_from 从另一个服务或容器挂载所有卷,可以选择指定只读访问(ro)或读写(rw)。 注意:仅版本2文件格式支持container:…格式。在版本1中,您可以使用容器名称而无需将其标记为: 我很困惑,这里的容器和服务有什么区别? 问题答案: 服务和容器
我在我的Windows10电脑(Ubuntu18.04)上安装了Windows子系统Linux。我在Windows上安装了Docker toolbox,通过虚拟机运行,我可以通过以下设置正常运行Docker命令: 我可以很好地访问它并正确安装/运行docker容器。其中一个服务是运行在localhost:8084上的Kafka Connect容器,如果是从我的Windows创建的。如果我直接从Ub
我使用docker撰写启动一个mysql da和一个springstart应用程序。 这是我的docker-compose.yml 这是我的application.properties 在这里,我创建了jdbi: 不管我怎么做,我都无法让集装箱在码头内相互交谈。如果我单独启动sql,我可以在主机中看到连接(在datagrip中)。如果我从容器中运行java程序,它会看到主机中的数据库。即使我运行d
问题内容: 目前,我在需要连接到camunda的docker容器内运行一个node.js应用程序,该容器在另一个容器中运行。 我使用以下命令启动容器 这两个应用程序现在都在运行,我可以通过在端口8000上导航到主机的IP来访问camunda,运行wget 还会返回camunda页面。使用和键入我的应用程序容器时,我无法访问camunda。相反,我得到以下错误: 当我使用将我的应用程序容器链接到ca
问题内容: 我正在尝试完成有关如何在Azure域/环境中正确使用Windows容器的架构研究,其中我必须将Dot Net Core Web API应用程序容器化并将该容器部署到Azure容器服务中 这是我做的事情 我确实在Azure门户中创建了Azure容器服务帐户/域/虚拟机 此外,我确实使用已安装Docker的容器为Windows Server 2016创建了另一个虚拟机 在Windows S
我有一个运行Ubuntu的服务器,安装了Redis和Docker。我正在创建托管在Docker容器中的服务。如何将Docker容器中运行的服务与Docker外部运行的Redis连接起来? 我可以ping服务器。ioredis驱动程序无法连接到redis。错误:connect ECONREFUSE:6379