如何设置 nginx 以创建子域?
How to setup nginx to create a sub-domain?
我有一个域 myartistbook.in,工作正常。我想为它创建一个名为 adminpanel.myartistbook.in 的子域。我遵循的步骤是:
- 已将子域名添加到 /etc/hosts
127.0.0.1 localhost
***.***.***.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 service nginx restart
访问站点时出现错误 adminpanel。myartistbook.in 找不到服务器 IP 地址。
我是否遗漏了任何步骤?
连同 server-side 配置涉及 server_name
中的域和子域,您需要确保 myartistbook.in
的 DNS 记录也正确配置。
您是否添加了 DNS 记录以指向 adminpanel.myartistbook.in
您的服务器?您可以为此添加 A 记录或 CNAME 记录。查看使用 whatsmydns.net for adminpanel.myartistbook.in 的快速检查,您似乎错过了这一步。请查看您的域注册商的文档以了解如何执行此操作。
添加记录后,使用whatsmydns.net再次快速检查您的CNAME/A记录是否生效。
在您的第 3 步中,将 server_name
修改为 adminpanel.myartistbook.in
而没有 www
,除非这实际上是您打算使用整个 www.adminpanel.myartistbook.in,而我不这样做'认为这里是这种情况,因为您试图在没有 www:
的情况下访问它
adminpanel.myartistbook.in’s server IP address could not be found.
此外,在将 IP 地址引用为 server_name
然后重定向到 domain/subdomain 时,使用不同的 server {}
块可能会很好。但是,从 IP 地址重定向到您的 domain/subdomain 现在可能不是优先事项。建议同时删除该行。
然后 运行 快速 nginx -T
检查您的配置是否有错误。如果检查成功,请重新加载您的 nginx 网络服务器并尝试再次访问该子域。
希望对您有所帮助!
我有一个域 myartistbook.in,工作正常。我想为它创建一个名为 adminpanel.myartistbook.in 的子域。我遵循的步骤是:
- 已将子域名添加到 /etc/hosts
127.0.0.1 localhost ***.***.***.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 service nginx restart
访问站点时出现错误 adminpanel。myartistbook.in 找不到服务器 IP 地址。 我是否遗漏了任何步骤?
连同 server-side 配置涉及 server_name
中的域和子域,您需要确保 myartistbook.in
的 DNS 记录也正确配置。
您是否添加了 DNS 记录以指向 adminpanel.myartistbook.in
您的服务器?您可以为此添加 A 记录或 CNAME 记录。查看使用 whatsmydns.net for adminpanel.myartistbook.in 的快速检查,您似乎错过了这一步。请查看您的域注册商的文档以了解如何执行此操作。
添加记录后,使用whatsmydns.net再次快速检查您的CNAME/A记录是否生效。
在您的第 3 步中,将 server_name
修改为 adminpanel.myartistbook.in
而没有 www
,除非这实际上是您打算使用整个 www.adminpanel.myartistbook.in,而我不这样做'认为这里是这种情况,因为您试图在没有 www:
adminpanel.myartistbook.in’s server IP address could not be found.
此外,在将 IP 地址引用为 server_name
然后重定向到 domain/subdomain 时,使用不同的 server {}
块可能会很好。但是,从 IP 地址重定向到您的 domain/subdomain 现在可能不是优先事项。建议同时删除该行。
然后 运行 快速 nginx -T
检查您的配置是否有错误。如果检查成功,请重新加载您的 nginx 网络服务器并尝试再次访问该子域。
希望对您有所帮助!