nginx - 如何设置 nginx 来创建子域?
问题描述
我有一个域 myartistbook.in,它运行良好。我想为其创建一个名为 adminpanel.myartistbook.in 的子域。我遵循的步骤是:
- 在 /etc/hosts 中添加子域名
127.0.0.1 本地主机 ***.***.***.180 myartistbook ***.***.***.180 adminpanel.myartistbook
- 编辑/etc/nginx/nginx.conf:
user nginx;
worker_processes auto;
error_log /var/log/nginx/error.log;
pid /run/nginx.pid;
include /usr/share/nginx/modules/*.conf;
events {
worker_connections 1024;
}
http {
log_format main '$remote_addr - $remote_user [$time_local] "$request" '
'$status $body_bytes_sent "$http_referer" '
'"$http_user_agent" "$http_x_forwarded_for"';
access_log /var/log/nginx/access.log main;
sendfile on;
tcp_nopush on;
tcp_nodelay on;
keepalive_timeout 65;
types_hash_max_size 2048;
include /etc/nginx/mime.types;
default_type application/octet-stream;
include /etc/nginx/conf.d/*.conf;
server {
listen 80 default_server;
listen [::]:80 default_server;
server_name myartistbook.in www.myartistbook.in;
root /root/krim.com;
# Load configuration files for the default server block.
include /etc/nginx/default.d/*.conf;
location / {
}
error_page 404 /404.html;
location = /40x.html {
}
error_page 500 502 503 504 /50x.html;
location = /50x.html {
}
}
server {
listen 80;
root /root/sites/adminpanel.com;
server_name adminpanel.myartistbook.in www.adminpanel.myartistbook.in;
index index.html;
location / {
try_files $uri $uri/;
}
}
}
- 在 /etc/nginx/sites-available 中添加了一个名为 adminpanel.com 的文件。
server {
listen 80;
server_name www.adminpanel.myartistbook.in;
server_name ***.***.***.180;
root /root/sites/adminpanel.com;
index index.html;
access_log /var/log/nginx/adminpanel.com.access.log;
error_log /var/log/nginx/adminpanel.com.error.log;
location / {
try_files $uri /index.html =404;
}
}
- 将上述服务器块链接到 /etc/nginx/sites-enabled
sudo ln -s /etc/nginx/sites-available/adminpanel.com /etc/nginx/sites-enabled/adminpanel.com
- 重新启动nginx
sudo 服务 nginx 重启
访问该站点时,我收到错误adminpanel.myartistbook.in 的服务器 IP 地址找不到。 我错过了任何步骤吗?
解决方案
与涉及域和子域的服务器端配置一起 server_name
,您需要确保您的 DNS 记录myartistbook.in
也正确配置。
您是否添加了 DNS 记录以指向adminpanel.myartistbook.in
您的服务器?您可以为此添加 A 记录或 CNAME 记录。使用 whatsmydns.net 快速检查adminpanel.myartistbook.in,您似乎错过了这一步。请查看您的域名注册商的文档以了解如何执行此操作。
添加记录后,再次使用 whatsmydns.net 快速检查您的 CNAME/A 记录是否已生效。
在您的第 3 步中,将 修改server_name
为adminpanel.myartistbook.in
不带www
,除非这实际上是您打算使用整个 www.adminpanel.myartistbook.in,我认为这里不是这种情况,因为您试图在没有 www 的情况下访问它:
找不到 adminpanel.myartistbook.in 的服务器 IP 地址。
server {}
此外,在引用 IP 地址时使用不同的块可能会很好,server_name
然后重定向到域/子域。但是,从 IP 地址重定向到您的域/子域可能不是现在的优先事项。建议同时删除该行。
然后快速运行nginx -T
以检查配置中的错误。如果检查成功,请重新加载您的 nginx Web 服务器并再次尝试访问子域。
希望有帮助!
推荐阅读
- ionic-framework - 如何在 Ionic 5 中复制 JSON 文件
- grafana-alerts - 如何在 Grafana8 警报中设置升级通知策略
- laravel - 无法理解为什么计算在没有手表的情况下无法工作
- angular - 是否可以从移动浏览器捕获屏幕截图事件
- python - Python:ModuleNotFoundError:没有名为“pandas”的模块
- nginx - 我收到一个 nginx 错误:“nginx.server failed”我需要了解如何解决这个问题
- keycloak - 确定 Keycloak 用户是否启用了 TOTP
- mysql - mysql元素的正确排序
- php - 提交到数据库的日期错误
- svn - 有没有办法在锁定该文件之前强制更新 SVN 文件?