Nginx+uwsgi.在本地主机上运行良好,但在远程计算机上运行不正常.为什么



案例:在docker网络创建与:

docker network create --attachable --subnet 1.1.1.0/29 some-network

第一个集装箱是Flask+uwsgi,并像一样启动

docker run -d --rm --net some-network --ip 1.1.1.4 
-p 8080:8080 --name my-flask my-flask-image

uwsgi ini看起来像:

[uwsgi]
module = app:app
master = true
processes = 2
socket = :8080

第二个容器是nginx,启动方式如下:

docker run -d --rm --net some-network --ip 1.1.1.2 
-p 80:80 --name my-nginx my-nginx-image

config只添加下一个服务器配置

upstream app_dev {
server  1.1.1.4:8080;
}
server {
listen 80;
server_name develop.localhost;
location / {
include uwsgi_params;
uwsgi_pass app_dev;
}
}

我运行容器并访问develop.localhost,没有任何问题。

然而,当我在带有domain_name的远程机器上运行容器时(当然添加了A记录,我可以通过ssh by domain_name访问服务器),我不能访问nginx,也不能访问uwsgi:docker日志显示没有请求。

我只能通过ip地址访问(从浏览器),但nginx用502响应。nginx-config与添加了domain_name的仅本地ssl内容(和ssl)略有不同

server {
listen 80;
listen 443 ssl;
server_name develop.domainname.com;
ssl_certificate /etc/nginx/ssl/CERTIFICATE.crt;
ssl_certificate_key /etc/nginx/ssl/KEY.key;
ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
ssl_prefer_server_ciphers on;
ssl_ciphers 'EECDH+AESGCM:EDH+AESGCM:AES256+EECDH:AES256+EDH';

location / {
include uwsgi_params;
uwsgi_pass app_dev;
}
}

我不知道如何诊断问题——我不明白为什么日志是空的。

当我输入这个案例时,我意识到了问题
我没有为nginx公开443端口。我添加了端口来运行命令,它有点工作。

-p 443:443

"有点"-因为在那之后,firefox开始尖叫我的ssl证书不好。显然,godaddy给了我www.domain.com和domain.com的ssl证书,但没有给通配符域。

最新更新