nginx怎么配置二级域名
我的vps挂了三个服务, 分别是:
wordpress搭建的博客服务, 运行于8000端口, 访问方式 http://fangyuanxiaozhan.com:8000
gogs搭建的git服务, 运行于10080端口, 访问方式 http://fangyuanxiaozhan.com:10080
nextcloud搭建的网盘服务, 运行于8080端口, 访问方式 http://fangyuanxiaozhan.com:10080
我的需求:
1.访问博客服务时, 直接输入 http://fangyuanxiaozhan.com
访问git服务时, 直接输入 http://git.fangyuanxiaozhan.com
访问网盘服务时, 直接输入 http://cloud.fangyuanxiaozhan.com
实现的方法
1、到托管域名的网站, 添加dns解析, 我的域名 fangyuanxiaozhan.com 托管在阿里云, 我的做法是登录 https://dns.console.aliyun.com/#/dns/domainlist , 添加二级记录
2、我使用的是centos7, nginx配置文件的默认位置为 /etc/nginx/nginx.conf , 有意思的是, /etc/nginx/nginx.conf 内引入了 配置文件夹 /etc/nginx/conf.d , 也就是我们可以把 /etc/nginx/nginx.conf 中的一些默认配置注释掉, 直接在文件夹 /etc/nginx/conf.d 中配置多个独立的配置文件.
/etc/nginx/nginx.conf 的配置
# for more information on configuration, see:# * official english documentation: http://nginx.org/en/docs/
# * official russian documentation: http://nginx.org/ru/docs/
user nginx;
worker_processes auto;
error_log /var/log/nginx/error.log;
pid /run/nginx.pid;
# load dynamic modules. see /usr/share/nginx/readme.dynamic.
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;
}
注意上述配置文件的最后一行, include /etc/nginx/conf.d/*.conf;
保证了 /etc/nginx/conf.d/ 下,所有以.conf结尾的配置文件, 都会被主配置文件 nginx.conf 引入并生效
在 /etc/nginx/conf.d/ 下面需要新建三个文件
blog.conf (实现8000端口映射到80端口, 不使用二级域名)
server {listen 80;
server_name fangyuanxiaozhan.com;
location / {
proxy_set_header x-real-ip $remote_addr;
proxy_set_header host $http_host;
proxy_pass http://0.0.0.0:8000;
}
}
blog.conf实现了fangyuanxiaozhan.com:8000映射到 fangyuanxiaozhan.com
git.conf (实现10080端口映射到80端口, 使用二级域名 git )
server {listen 80;
server_name git.fangyuanxiaozhan.com;
location / {
proxy_set_header x-real-ip $remote_addr;
proxy_set_header host $http_host;
proxy_pass http://0.0.0.0:10080;
}
}
git.conf实现了fangyuanxiaozhan.com:10080映射到 git.fangyuanxiaozhan.com
nc.conf (实现10080端口映射到80端口, 使用二级域名 cloud )
server {listen 80;
server_name cloud.fangyuanxiaozhan.com;
location / {
proxy_set_header x-real-ip $remote_addr;
proxy_set_header host $http_host;
proxy_pass http://0.0.0.0:8080;
}
}
git.conf实现了fangyuanxiaozhan.com:8080映射到 cloud.fangyuanxiaozhan.com
重启nginx使配置生效
关闭nginx
sudo $(which nginx) -s stop开启nginx
sudo $(which nginx)效果展示
Nginx是一款开源的高性能Web服务器,也是现代化Web服务器架构的代表之一。配置Nginx实现二级域名访问不仅有助于提高网站可用性,还能提升用户体验和搜索引擎优化。接下来,我们将详细介绍如何配置Nginx实现二级域名访问。
一、添加DNS解析
在完成域名购买后,需要在DNS解析中添加二级域名的解析。要实现二级域名访问,首先需要DNS解析指向相应IP地址,将二级域名解析到服务器相应的IP地址上。
二、配置虚拟主机
在Nginx中,Virtual Host(虚拟主机)将一个Web服务器分割成多个不同的站点,每个站点使用不同的域名(二级域名或其他域名)。配置虚拟主机需要修改nginx.conf文件,并在server指定二级域名,设置root目录和location等信息,实现二级域名的访问。
三、配置证书
为保证数据传输的安全性,使用HTTPS进行访问是必不可少的。HTTPS使用TLS/SSL协议对数据进行加密,确保数据传输过程中不被窃听和篡改。配置证书需要申请SSL证书并在Nginx中进行配置。
四、配置反向代理
如果需要将二级域名访问从后端的Tomcat或其他服务器获取数据,需要配置反向代理。反向代理服务器接受客户端的请求,然后将请求转发给Tomcat服务器,最后将Tomcat服务器返回的内容发送给客户端,实现二级域名的访问。
五、重启Nginx
修改完nginx.conf配置文件后,需要重启Nginx,使配置生效。只有重启后,Nginx才会重新加载配置文件并使用新的设置重新启动Web服务器。
六、测试二级域名访问
完成以上配置后,可以通过浏览器访问设定的二级域名,如:http://blog.mydomain.com或https://blog.mydomain.com,并查看访问情况,是否实现了二级域名的访问。如果网站访问出现异常,需要逐步排查问题。
七、总结
通过以上七个步骤,Nginx二级域名的配置已经实现。此外,关于Nginx的优化、缓存等方面,还可以参考相关教程,优化网站性能。Nginx的高性能、高并发和负载均衡等特性,提高了Web服务器的稳定性和安全性,使得二级域名的访问更加畅通和高效。