CentOS 8 上设置 Nginx 服务器配置块

简介: 一个服务器配置块是一个 Nginx 指令,它定义了对于一个指定域名的设置,允许你在一个单机服务器上运行多个网站。对于每一个网站,你可以设置网站文件根目录(包含网站文件的目录),创建一个独立的安全策略,使用不同的 SSL 证书等等。本文将为大家介绍如何在 CentOS 8 上设置 Nginx 服务器块。

1.png
镜像下载、域名解析、时间同步请点击 阿里巴巴开源镜像站

一个服务器配置块是一个 Nginx 指令,它定义了对于一个指定域名的设置,允许你在一个单机服务器上运行多个网站。对于每一个网站,你可以设置网站文件根目录(包含网站文件的目录),创建一个独立的安全策略,使用不同的 SSL 证书等等。本文描述了如何在 CentOS 8 上设置 Nginx 服务器块。

一、前提条件

在继续这个指南之前,请确保你满足了下面的前提条件:

  • 指向你公共服务器 IP 的域名
  • 在你的 CentOS 系统上安装了 Nginx
  • 以 root 或者其他有 sudo 权限的用户身份登录

在一些文档中,术语Server Blocks也被称为Virtual host。一个虚拟主机是一个 Apache 的术语。

二、创建文件结构

文档根目录是每个域名对应网站文件所存储并且响应请求的地方。
文档根目录可以被设置到任何你想要设置的地方。
我们将会使用下面的文件夹结构:

/var/www/
├── example.com
│   └── public_html
├── example2.com
│   └── public_html
├── example3.com
│   └── public_html

对于每一个被托管在服务器上的域名,我们将在/var/www目录下创建一个独立的文件夹。在文件夹域名文件夹下,我们创建一个public_html文件夹,它将作为域名的文件根目录,并且将会存储该域名的网站文件。
我们开始为域名example.com创建根目录:

sudo mkdir -p /var/www/example.com/public_html

为了方便测试,我们在域名的文档根目录下创建一个index.html文件。

sudo nano /var/www/example.com/public_html/index.html

拷贝并且粘贴下面的代码到文件中:

<!DOCTYPE html>
<html lang="en" dir="ltr">
  <head>
    <meta charset="utf-8">
    <title>Welcome to example.com</title>
  </head>
  <body>
    <h1>Success! example.com home page!</h1>
  </body>
</html>

想要避免任何权限问题,修改域名的文档根目录的所有者到用户nginx

sudo chown -R nginx: /var/www/example.com

三、创建一个服务器块

在 CentOS 上,Nginx 服务器块配置文件默认以.conf结尾并且被存储在/etc/nginx/conf.d目录。
打开你的文本编辑器,并且为域名创建一个配置文件:

sudo nano /etc/nginx/conf.d/example.com.conf

配置文件可以命名为任何你想要的名字,但是通常情况下,我们最好使用域名名字。
拷贝并且粘贴下面的代码到文件:

server {
    listen 80;
    listen [::]:80;
    root /var/www/example.com/public_html;
    index index.html;
    server_name example.com www.example.com;
    access_log /var/log/nginx/example.com.access.log;
    error_log /var/log/nginx/example.com.error.log;
    location / {
        try_files $uri $uri/ =404;
    }
}

保存文件,并且检测 Nginx 配置文件是否有语法错误:

sudo nginx -t

如果没有错误,输出将会像下面这样:

nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
nginx: configuration file /etc/nginx/nginx.conf test is successful

重启 Nginx 服务,使应用生效:

sudo systemctl restart nginx

最后,验证服务器配置区块是否正常运行,在你的浏览器中打开[http://example.com](http://example.com),你将会看到下面的画面:
2.png

四、总结

我们已经向你展示如何创建 Nginx 服务器配置块,并且在一个简单的 CentOS 服务器上托管很多域名。
你可以重复上面的步骤,并且为你所有的域名添加额外的服务器配置块。
如果你想要使用 SSL 证书加密你的网站,你可以生成并且安装一个免费的 Letsencrypt 免费SSL证书

阿里巴巴开源镜像站 提供全面,高效和稳定的系统镜像、应用软件下载、域名解析和时间同步服务。”

相关文章
|
27天前
|
应用服务中间件 Linux 网络安全
Centos 8.0中Nginx配置文件和https正书添加配置
这是一份Nginx配置文件,包含HTTP与HTTPS服务设置。主要功能如下:1) 将HTTP(80端口)请求重定向至HTTPS(443端口),增强安全性;2) 配置SSL证书,支持TLSv1.1至TLSv1.3协议;3) 使用uWSGI与后端应用通信(如Django);4) 静态文件托管路径设为`/root/code/static/`;5) 定制错误页面(404、50x)。适用于Web应用部署场景。
387 87
|
2月前
|
Linux Shell
在Linux、CentOS7中设置shell脚本开机自启动服务
以上就是在CentOS 7中设置shell脚本开机自启动服务的全部步骤。希望这个指南能帮助你更好地管理你的Linux系统。
126 25
|
3月前
|
Web App开发 运维 Linux
破防了!原来CentOS联网设置竟藏在这个路径?网友:5年运维都白干了!
默认情况下,新装的 CentOS 无法直接上网。可通过点击桌面右上角的网络图标,启动 `eth0` 连接网络。为实现自动连接,右键该图标选择“编辑连接”,在 `System eth0` 设置中勾选“自动连接”。这样配置后,系统重启也能自动联网。
113 19
破防了!原来CentOS联网设置竟藏在这个路径?网友:5年运维都白干了!
|
3月前
|
存储 运维 网络协议
【Syslog】Centos下的syslog服务器配置
通过本文的配置指导,您不仅学会了如何安装和配置 `rsyslog`,还掌握了如何在防火墙中开放必要的端口,并验证服务器的配置是否正确。希望这些知识能够帮助您更好地管理和维护您的Linux系统。
334 15
|
3月前
|
Ubuntu 应用服务中间件 网络安全
Nginx伪流媒体服务器搭建详细说明以及案例
Nginx伪流媒体服务器搭建步骤如下:1. 安装Nginx,根据系统选择命令;2. 编辑配置文件(/etc/nginx/nginx.conf),添加mp4相关设置;3. 创建视频目录/usr/share/nginx/html/videos并上传视频;4. 重启Nginx应用更改;5. 通过浏览器访问视频,如http://your_server_ip/videos/example.mp4。注意启用mp4模块,确保视频格式支持伪流媒体播放。
108 7
|
4月前
|
应用服务中间件 PHP nginx
当你的nginx服务器和php服务器不在一起的时候,这个nginx 的root目录问题
两个服务器的网站代码目录需要对齐,docker容器里面也是一样
|
7月前
|
负载均衡 监控 应用服务中间件
配置Nginx反向代理时如何指定后端服务器的权重?
配置Nginx反向代理时如何指定后端服务器的权重?
368 61
|
6月前
|
负载均衡 Ubuntu 应用服务中间件
nginx修改网站默认根目录及发布(linux、centos、ubuntu)openEuler软件源repo站点
通过合理配置 Nginx,我们可以高效地管理和发布软件源,为用户提供稳定可靠的服务。
426 13
|
6月前
|
弹性计算 负载均衡 网络协议
ECS中实现nginx4层7层负载均衡和ALB/NLB原SLB负载均衡
通过本文的介绍,希望您能深入理解并掌握如何在ECS中实现Nginx四层和七层负载均衡,以及如何使用ALB和NLB进行高效的负载均衡配置,以提高系统的性能和可靠性。
472 9
|
6月前
|
存储 编解码 应用服务中间件
使用Nginx搭建流媒体服务器
本文介绍了流媒体服务器的特性及各种流媒体传输协议的适用场景,并详细阐述了使用 nginx-http-flv-module 扩展Nginx作为流媒体服务器的详细步骤,并提供了在VLC,flv.js,hls.js下的流媒体拉流播放示例。
697 3