【发布时间】:2017-12-11 17:25:01
【问题描述】:
我的Nginx 配置有问题,我无法设置我的server_name。
我尝试在内部使用 Nginx 配置构建我的 docker 容器。
我的 Dockerfile 的正文。
FROM nginx
RUN rm -rf /etc/nginx/conf.d/*
RUN mkdir /etc/nginx/ssl
RUN chown -R root:root /etc/nginx/ssl
RUN chmod -R 600 /etc/nginx/ssl
COPY etc/ssl/certs/qwobbleprod.crt /etc/nginx/ssl
COPY etc/ssl/certs/app.qwobble.com.key /etc/nginx/ssl
COPY nginx/default.conf /etc/nginx/conf.d/
COPY dist /usr/share/nginx/html
EXPOSE 443
还有我的Nginx配置文件->
server {
listen 443 ssl default_server;
root /usr/share/nginx/html;
server_name blabla.com www.blabla.com;
access_log /var/log/nginx/nginx.access.log;
error_log /var/log/nginx/nginx.error.log;
ssl on;
ssl_certificate /etc/nginx/ssl/blabla.crt;
ssl_certificate_key /etc/nginx/ssl/blabla.com.key;
sendfile on;
location / {
try_files $uri /index.html =404;
}
location ~* \.(js|css|png|jpg|jpeg|gif|ico|html)$ {
expires max;
log_not_found off;
}
}
我尝试构建和运行我的 docker 容器
docker build -t <name> .
docker run -it -p 443:443 <name>
因此,我的应用程序在 https://localhost:443 但我无法通过https://blabla.com:443 或https://www.blabla.com:443 访问我的应用
我是使用Docker 和Nginx 的新手,我不知道出了什么问题。
如有任何帮助,我将不胜感激!
【问题讨论】:
-
由于您只托管一个站点,因此服务器名称并不重要。您已经有
listen说这是默认值,因为 443 是端口,对该端口的任何请求都会转到 docker 和内部的 nginx。 nginx 会看到这是默认站点。