在Nginx上配置多个站点的方法

Nginx上配置多个站点需要完成以下步骤:

1.创建站点目录

在服务器上创建每个站点的目录,例如,假设我们要创建两个站点,一个是example1.com,另一个是example2.com。我们可以在服务器上的/var/www目录下创建两个目录,分别命名为example1.com和example2.com:

sudo mkdir /var/www/example1.com
sudo mkdir /var/www/example2.com
  1. 编辑nginx.conf文件

在Ubuntu系统中,Nginx的配置文件位于/etc/nginx/nginx.conf。在此文件中,可以找到http块。http块定义了全局配置。在http块中,添加以下内容:

server {
    listen 80;
    server_name example1.com;
    root /var/www/example1.com;
    index index.html;
    location / {
        try_files $uri $uri/ /index.html;
    }
}

server {
    listen 80;
    server_name example2.com;
    root /var/www/example2.com;
    index index.html;
    location / {
        try_files $uri $uri/ /index.html;
    }
}

上述代码共定义了两个server块。每个server块定义了一个网站配置。

其中,listen指令用于监听指定的端口,可以是任意一个未被占用的端口。server_name指令是该站点所对应的域名。root指令是该站点的文件根目录,也就是之前创建的站点目录。index指令是站点默认页面的文件名。在上面的示例中,我们指定了index.html作为站点默认页面。

location块用于处理特定的URI请求。这里的代码表示,如果某个URL请求无法找到,则尝试按以下方式处理请求:

(1)尝试直接读取$uri文件是否存在;

(2)如果没有找到,尝试读取$uri/目录是否存在且包含一个index.html文件;

(3)如果以上两种情况都不是,则返回站点默认页面。

  1. 重启Nginx服务

在完成以上步骤后,需要重新启动Nginx服务。可执行如下命令:

sudo service nginx restart

现在,我们可以通过浏览器访问example1.com和example2.com,来查看配置是否生效。

  1. 其他配置

如果要为每个站点添加SSL证书,可以使用Let's Encrypt工具来生成免费的SSL证书,以增加站点的安全性。具体方法可以参考Let's Encrypt官方文档。

示例:

假设当前我们服务器的IP地址为192.168.0.1,我们需要创建两个站点分别是www.example1.com和www.example2.com,那么我们需要做的就是按照上述步骤,在Nginx的配置文件nginx.conf中新增如下内容:

server {
    listen 80;
    server_name www.example1.com;
    return 301 https://$server_name$request_uri;
}

server {
    listen 443 ssl;
    server_name www.example1.com;

    ssl_certificate /etc/ssl/certs/www.example1.com.crt;
    ssl_certificate_key /etc/ssl/private/www.example1.com.key;

    root /var/www/example1.com;
    index index.html;

    access_log /var/log/nginx/example1.com.access.log;
    error_log /var/log/nginx/example1.com.error.log;

    location / {
        try_files $uri $uri/ /index.html;
    }
}

server {
    listen 80;
    server_name www.example2.com;
    return 301 https://$server_name$request_uri;
}

server {
    listen 443 ssl;
    server_name www.example2.com;

    ssl_certificate /etc/ssl/certs/www.example2.com.crt;
    ssl_certificate_key /etc/ssl/private/www.example2.com.key;

    root /var/www/example2.com;
    index index.html;

    access_log /var/log/nginx/example2.com.access.log;
    error_log /var/log/nginx/example2.com.error.log;

    location / {
        try_files $uri $uri/ /index.html;
    }
}

注意,我们还配置了日志记录、SSL证书路径等内容,如果域名与示例不同,需要根据实际情况修改配置文件中的server_name、SSL证书路径、站点根目录等内容。

使用如下命令重启Nginx服务:

sudo service nginx restart

这样,我们即可通过浏览器访问https://www.example1.com和https://www.example2.com访问我们新建的两个站点。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:在Nginx上配置多个站点的方法 - Python技术站

(0)
上一篇 2023年5月16日
下一篇 2023年5月16日

相关文章

  • nginx 网络层的优化

    TCP三次握手四次挥手   系统层的优化,主动建立连接时的重试次数 net.ipv4.tcp_syn_retries = 6   建立连接时本地端口可用范围;手动可以tiaoz net.ipv4.ip_local_port_range = 32768 60999   应用层建立连接超时时间 Syntax: proxy_connect_timeout time…

    Nginx 2023年4月13日
    00
  • nginx中斜杠(/)详解

    Nginx中斜杠(/)详解 在Nginx配置的过程中,斜杠(/)经常使用到,它们不仅可以区分不同的路径,还有其他的作用。本文将详细讲解Nginx中斜杠的使用方法。 区分URI和文件路径 Nginx中使用斜杠来区分URI和文件路径。URI通常以斜杠(/)作为路径的分隔符,以指示请求的资源。而文件路径本身也是由斜杠(/)作为分隔符。一般来说,URI和文件路径中的…

    Nginx 2023年5月16日
    00
  • centos7 安装 nginx-1.14.2

    第一步:安装依赖包 yum -y install pcre-devel  openssl openssl-devel libevent-devel libxslt-devel gcc gcc-c++ gcc-g7 第二步:下载 nginx-1.14.2.tar.gz                解压到 /usr/local/tools           …

    Nginx 2023年4月11日
    00
  • 服务器使用Nginx部署Springboot项目的详细教程(jar包)

    下面我将详细讲解“服务器使用Nginx部署Springboot项目的详细教程(jar包)”。 前置条件 在开始部署之前,请确保已满足以下条件: 已安装JDK和Maven; 已编译打包好Springboot项目的jar包; 已安装Nginx。 步骤一:上传jar包到服务器 将打包好的Springboot项目上传到服务器,可以使用FTP、SFTP等方式进行上传。…

    Nginx 2023年5月16日
    00
  • 使用Nginx过滤网络爬虫

    原文:https://www.liaoxuefeng.com/article/001509844125769eafbb65df0a04430a2d010a24a945bfa000   现在的网络爬虫越来越多,有很多爬虫都是初学者写的,和搜索引擎的爬虫不一样,他们不懂如何控制速度,结果往往大量消耗服务器资源,导致带宽白白浪费了。 其实Nginx可以非常容易地根…

    Nginx 2023年4月9日
    00
  • 在nginx上面部署多个项目

    在网上搜了一下,一般有两种方法,第一种方法:在一个配置文件里面操作,把多个域名写在一个配置文件里面,第二种方法:一个域名对应一个配置文件,我是按照第二种方法操作的。比如在一个服务器上面,需要配置的域名为:www.ceshi1.com,www.ceshi2.com,操作步骤为: 1:在/etc/nginx/下面建立文件夹vhosts 2:在/etc/nginx…

    Nginx 2023年4月15日
    00
  • Nginx 请求的11个阶段

    48 1:当请求进入Nginx后先READ REQUEST HEADERS 读取头部 然后再分配由哪个指令操作 2:Identity 寻找匹配哪个Location  3:Apply Rate Limits 是否要对该请求限制 4:Preform Authertication 权限验证 5:Generate Content 生成给用户的响应内容 6:如果配置了…

    Nginx 2023年4月13日
    00
  • ELK收集监控nginx请求日志 elastalert 报警

    1.前言 对于互联网公司来说,nginx的请求日志简直就是一座金矿,如果不能充分利用,简直太可惜了。初期一般都是输出到日志文件,要查什么就awk\grep\uniq\sort…,能满足不少统计需求,但最大的缺点是不直观,不方便监控(目前虽然用了ELK,但是有些信息我还是用shell统计,两者互补)。整理下实施ELK最起码要实现的需求: 查询条件(精确匹配…

    Nginx 2023年4月11日
    00
合作推广
合作推广
分享本页
返回顶部