docker nginx容器 端口配置
今天在服务器上部署了一个docker的nginx容器,宿主机和容器的端口映射是8181:80
nginx配置文件如下
server {
listen 8181;
server_name docker-test.mydocker.com;
set $project_path user-api/public;
set $docker_root /www;
root $docker_root/$project_path;
index index.php;
try_files $uri $uri/ /index.php?$query_string;
location ~ \.php$ {
fastcgi_pass php72:9000;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $docker_root/$project_path/$fastcgi_script_name;
include fastcgi_params;
if ($http_origin) {
add_header Access-Control-Allow-Origin $http_origin always;
add_header Access-Control-Allow-Credentials true always;
add_header Access-Control-Allow-Headers "Authorization, X-XSRF-TOKEN, Content-Type, Origin, Xmen-Token, Giver-Token" always;
add_header Access-Control-Allow-Methods "GET, POST, PUT, DELETE" always;
}
}
}
访问后一直报错
curl: (56) Recv failure: Connection reset by peer
一顿研究后发现,nginx配置文件 listen应该是80
,而不是8181
。外部访问地址是http://docker-test.mydocker.com:8181
,但是nginx配置文件是在容器内使用,应该使用容器的端口80
,所以把上面的配置改为容器的端口即可
server {
listen 80;
server_name docker-test.mydocker.com;
set $project_path user-api/public;
set $docker_root /www;
root $docker_root/$project_path;
index index.php;
try_files $uri $uri/ /index.php?$query_string;
location ~ \.php$ {
fastcgi_pass php72:9000;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $docker_root/$project_path/$fastcgi_script_name;
include fastcgi_params;
if ($http_origin) {
add_header Access-Control-Allow-Origin $http_origin always;
add_header Access-Control-Allow-Credentials true always;
add_header Access-Control-Allow-Headers "Authorization, X-XSRF-TOKEN, Content-Type, Origin, Xmen-Token, Giver-Token" always;
add_header Access-Control-Allow-Methods "GET, POST, PUT, DELETE" always;
}
}
}
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?
· 【译】Visual Studio 中新的强大生产力特性
· 【设计模式】告别冗长if-else语句:使用策略模式优化代码结构
· AI与.NET技术实操系列(六):基于图像分类模型对图像进行分类