/etc/nginx/nginx.conf
或/etc/nginx/sites-available/default
)。,2. 在http
块中添加新的server
块,用于配置二级域名和多个域名。,3. 在新的server
块中,设置listen
指令以指定监听的端口(默认为80)。,4. 使用server_name
指令指定要配置的二级域名和多个域名。,5. 配置其他相关的指令,如root
、index
等,根据需求进行设置。,6. 保存配置文件并退出。,7. 重新加载Nginx配置,使更改生效。,,以下是一个示例配置:,,``nginx,http {, ..., server {, listen 80;, server_name example.com www.example.com subdomain.example.com;, root /var/www/example;, index index.html;, ..., }, ...,},
`,,在这个示例中,我们配置了三个域名:
example.com、
www.example.com和
subdomain.example.com`,它们共享相同的根目录和索引文件。你可以根据自己的需求进行相应的修改和扩展。Nginx服务器下配置个性二级域名及多个域名的实例讲解
Nginx简介
Nginx是一款高性能的Web服务器和反向代理服务器,广泛用于提供静态内容服务、负载均衡以及作为HTTP缓存,其以稳定性、丰富的功能集、低系统资源消耗而闻名。
配置个性二级域名
1、绑定子域名到统一目录:
配置示例:
```nginx
server {
listen 80;
server_name yourdomain.com www.yourdomain.com ~^(?<subdomain>.+)\.m\.yourdomain\.com$;
index index.php index.html index.htm;
set $root_path '/var/www/yanue.net';
root $root_path;
try_files $uri $uri/ @rewrite;
location @rewrite {
rewrite ^/(.*)$ /index.php?_url=/$1;
}
location ~ \.php {
fastcgi_pass 127.0.0.1:9000;
}
location ~* ^/(css|img|js|flv|swf|download)/(.+)$ {
root $root_path;
}
location ~ /\.ht {
deny all;
}
}
```
解释:此配置将任何匹配~^(?<subdomain>.+)\.m\.yourdomain\.com$
的子域名都指向同一个目录,通过$subdomain
变量获取当前子域名称。
2、绑定子域名到不同目录(子站):
配置示例:
```nginx
server {
listen 80;
server_name ~^(?<subdomain>.+)\.yourdomain\.com$;
root html/$subdomain;
index index.html index.htm index.php;
fastcgi_intercept_errors on;
error_page 404 = /404.html;
location / {
try_files $uri $uri/ =404;
}
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root html;
}
location ~ \.php$ {
fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params;
}
location ~ /\.ht {
deny all;
}
}
```
解释:此配置将不同的子域名绑定到不同的目录,例如bbs.yourdomain.com
会指向html/bbs
目录,www.yourdomain.com
会指向html/www
目录。
多域名配置
1、每个域名一个文件的写法:
配置示例:
```nginx
server {
listen 80;
server_name www.phperz.com;
index index.htm index.html index.php;
root /home/www/phperz.com;
include location.conf;
}
```
操作步骤:在/usr/local/nginx/conf/servers
目录下创建对应的配置文件,然后重启Nginx服务器。
2、一个文件多个域名的写法:
配置示例:
```nginx
server {
listen 80;
server_name bbs.phperz.com;
index index.htm index.html index.php;
root /home/www/bbs.phperz.com;
include location.conf;
}
server {
listen 80;
server_name www.phperz.com;
index index.htm index.html index.php;
root /home/www/www.phperz.com;
include location.conf;
}
```
解释:在一个文件中添加多个域名的规则,只需重复上述单个域名的配置即可。
3、不带www的域名加301跳转:
配置示例:
```nginx
server {
listen 80;
server_name phperz.com;
rewrite ^/(.*) http://www.phperz.com/$1 permanent;
}
```
解释:此配置将不带www的域名重定向到带www的域名。
4、添加404网页:
配置示例:
```nginx
server {
listen 80;
server_name www.phperz.com;
index index.htm index.html index.php;
root /home/www/phperz.com;
include location.conf;
error_page 404 /404.html;
}
```
解释:此配置为网站添加了自定义的404错误页面。
相关问题与解答
1、如何实现泛域名解析?
解答:泛域名解析可以通过在DNS服务器上创建别名记录(CNAME),将所有二级域名指向同一个主机名,然后在Nginx中使用通配符“*”来匹配所有二级域名,配置如下:
```nginx
server {
listen 80;
server_name *.example.com;
location / {
root /var/www/mywebsite;
index index.html index.htm;
}
}
```
解释:这样,所有以“.example.com”结尾的二级域名都会被解析到同一台服务器上。
2、如何在Nginx中配置HTTPS?
解答:在Nginx中配置HTTPS需要指定SSL证书和私钥的路径,并启用SSL监听,配置如下:
```nginx
server {
listen 443 ssl;
server_name www.ss33.com;
ssl_certificate cert/ss33.com.pem;
ssl_certificate_key cert/ss33.com.key;
ssl_session_cache shared:SSL:1m;
ssl_session_timeout 5m;
ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:ECDHE:ECDH:AES:HIGH:!NULL:!aNULL:!MD5:!ADH:!RC4;
ssl_protocols TLSv1.1 TLSv1.2 TLSv1.3;
ssl_prefer_server_ciphers on;
location / {
root /var/www/movie/admin;
index index.html index.htm;
}
}
```
解释:通过以上配置,Nginx可以安全地接受HTTPS请求,并提供加密的数据传输。
小伙伴们,上文介绍了“Nginx服务器下配置个性二级域名及多个域名的实例讲解”的内容,你了解清楚吗?希望对你有所帮助,任何问题可以给我留言,让我们下期再见吧。