我的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
的新手,我不知道出了什么问题。
我将不胜感激任何帮助!
答案 0 :(得分:0)
在这种情况下,我希望您确实需要blabla.com域,并且dns(域名服务)应该指向您的外部IP地址。
然后,您必须将路由器配置为接受端口443上的连接(您所需的)并将其指向(运行端口转发)到运行实际运行的端口上的docker镜像的计算机。
可能还需要在计算机泊坞窗上运行防火墙设置。
我看到你也想听https,所以你可能需要一些证书。
或者如果你想伪造它,你可以编辑你的hosts
文件(在mac或linux /etc/hosts
上)并添加如下条目:
##
# Host Database
#
# localhost is used to configure the loopback interface
# when the system is booting. Do not change this entry.
##
127.0.0.1 localhost
255.255.255.255 broadcasthost
::1 localhost
127.0.0.1 blabla.com
但现在blabla.com只适用于你的机器...
希望有所帮助