轻松设置:服务器域名配置全攻略

news2024/9/22 19:37:09

目录

前置条件

在阅读本篇内容之前,请先确保以下物料已准备好:

  • 一台公网服务器,服务正常运行
  • 申请完成的域名,在对应域名服务商后台正常DNS解析
  • 域名备案完成
  • 可选条件:有https访问请求时,需要申请SSL证书

下面是我的配置:

公网服务器

公网服务器我使用的是阿里云ESC,使用docker运行了halo博客系统,对应端口是8090。使用ps aux | grep portlsof -i : 8090可以查看对应端口占用和具体服务运行情况。

域名完成DNS解析

在域名服务商后台给自己的域名配置DNS解析,如果不知道如何操作,点击新手引导即可。完成后状态是绿色的正常,我是由于备案所以设为了暂停状态。

:新申请的域名需要实名认证通过后注册局需1-2个工作日同步信息,同步后DNS正常可以设置解析记录。

域名备案

在云服务商完成DNS解析、实名认证后,域名即可正常使用,但是需要及时备案使用。

容易混淆的地方:

实名认证模板 ≠ 域名备案实名认证。

域名实名认证成功 ≠ 域名备案成功。

备案信息可以在域名服务商进行申请,以阿里云为例:

可选:SSL证书申请

什么是SSL证书?

SSL 证书是一个数字证书,用于认证网站的身份并启用加密连接。SSL 代表安全套接字层,这是一个安全协议,可在 Web 服务器和 Web 浏览器之间创建加密链接。

翻译一下就是通过SSL证书,可以把你不安全的http请求变成加密、安全的https请求。

SSL证书分为两种:正式证书和个人测试证书,正式证书需要购买,个人测试证书免费,有效期三个月,阿里云每年单个域名可以签发20个免费证书,到有效期后再次下载新的免费证书替换即可,20个免费证书足够一年的使用量。

在页面签发后下载到本地以备下文使用。

以上便完成了配置域名的所有准备工作。

Nginx配置

在个人公网服务器上安装Nginx,以CentOS 7.9为例:

Nginx安装

  1. 更新系统包: 首先,确保你的系统包是最新的:
sudo yum update
  1. 安装EPEL仓库: EPEL(Extra Packages for Enterprise Linux)是一个由Fedora社区构建的高质量软件包集合,提供了许多不在默认仓库中的软件包。安装EPEL仓库:
sudo yum install epel-release
  1. 安装Nginx: 使用yum包管理器安装Nginx:
sudo yum install nginx -y
  1. 启动Nginx服务: 安装完成后,启动Nginx服务:
sudo systemctl start nginx
  1. 设置Nginx开机自启:如果需要让Nginx在系统启动时自动启动,执行以下命令:
sudo systemctl enable nginx
  1. 检查Nginx状态: 检查Nginx服务是否正在运行:
sudo systemctl status nginx
  1. 访问Nginx: 在浏览器中输入http://你的服务器IP地址,你应该能看到Nginx的欢迎页面。

配置反向代理

在配置前需要安装unzip工具以解压上文保存在本地的ssl证书。

sudo yum install unzip -y

将ssl证书的压缩包解压到/etc/pki/nginx/private/路径下,可自定义路径,自定义路径在nginx.conf配置中ssl_certificatessl_certificate_key填写自定义路径即可。

解压ssl文件:

unzip your_file.zip

解压后是一个.pem文件和一个.key文件,为了后续配置方便,我将文件名称分别改为:server.pem、server.key。

进入Nginx配置文件路径,Nginx的配置文件通常位于/etc/nginx/nginx.conf。编辑这个文件来配置反向代理。

使用vimvi工具编辑nginx.conf文件:

vim /etc/nginx/nginx.conf

我的配置文件:

user nginx;
worker_processes auto;
error_log /var/log/nginx/error.log;
pid /run/nginx.pid;

# Load dynamic modules. See /usr/share/doc/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 4096;

    include             /etc/nginx/mime.types;
    default_type        application/octet-stream;

    # Load modular configuration files from the /etc/nginx/conf.d directory.
    # See http://nginx.org/en/docs/ngx_core_module.html#include
    # for more information.
    include /etc/nginx/conf.d/*.conf;

    server {
        listen       80;
        listen [::]:80 default_server;
        server_name  www.treecode.top; # 改成你的域名
        root         /usr/share/nginx/html;

        # Load configuration files for the default server block.
        include /etc/nginx/default.d/*.conf;

        error_page 404 /404.html;
        location = /404.html {
        }

        error_page 500 502 503 504 /50x.html;
        location = /50x.html {
        }
    }

# Settings for a TLS enabled server.
#
    server {
        listen       443 ssl http2;
        listen       [::]:443 ssl http2;
        server_name  www.treecode.top; #改成你的域名
        root         /usr/share/nginx/html;

        ssl_certificate "/etc/pki/nginx/private/server.pem"; #改成你刚刚解压的文件路径
        ssl_certificate_key "/etc/pki/nginx/private/server.key"; #改成你刚刚解压的文件路径
        ssl_session_cache shared:SSL:1m;
        ssl_session_timeout  10m;
        ssl_ciphers HIGH:!aNULL:!MD5;
        ssl_prefer_server_ciphers on;

  location / {
           proxy_pass http://127.0.0.1:8090; #端口改成你运行服务的端口
           proxy_set_header Host $host;
           proxy_set_header X-Real-IP $remote_addr;
           proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
           proxy_set_header X-Forwarded-Proto $scheme;
        }

        # Load configuration files for the default server block.
        include /etc/nginx/default.d/*.conf;

        error_page 404 /404.html;
            location = /40x.html {
        }

        error_page 500 502 503 504 /50x.html;
            location = /50x.html {
        }
    }

}

按上述注释中修改即可。

编辑完成后测试配置语法是否正确:

nginx -t

如果失败,按提示行数进行检查修改。

重载nginx配置文件:

nginx -s reload

重启Nginx服务: 配置更改后,重启Nginx服务以应用更改:

sudo systemctl restart nginx

配置完成后可以在本地使用curl命令或者访问域名检查是否生效:

未完待续,持续更新


关于我

👋🏻你好,我是Debug.c。微信公众号:种棵代码技术树 的维护者,一个跨专业自学Java,对技术保持热爱的bug猿,同样也是在某二线城市打拼四年余的Java Coder。

🏆在掘金、CSDN、公众号我将分享我最近学习的内容、踩过的坑以及自己对技术的理解。

📞如果您对我感兴趣,请联系我。

若有收获,就点个赞吧,喜欢原图请私信我。

请添加图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1901562.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Spring源码十三:非懒加载单例Bean

上一篇Spring源码十二:事件发布源码跟踪中,我们介绍了Spring中是如何使用观察者设计模式的思想来实现事件驱动开发的:实际上就是将所有监听器注册到广播器中,并通过监听该事件的监听器来处理时间的。结合前面十二篇文章我们将Spri…

关于linux服务器更改镜像后连接不上vscode问题

问题样子解决办法直接看 问题样子 问题描述:从centos换到ubantu后,xshell能直接连接上(没有更改ssh配置信息),但是vscode连不上(配置文件因为端口号和ip是一样的,也没法改) 猜测…

这款新的 AI 语音助手击败了 OpenAI,成为 ChatGPT 最受期待的功能之一

OpenAI 推迟了 ChatGPT 令人印象深刻的语音模式,这让许多 AI 聊天机器人的粉丝感到不安,但他们现在可能已经被挖走了。法国人工智能开发商 Kyutai 推出了一款名为 Moshi 的实时语音 AI 助手。 Moshi 旨在通过语音(如 Alexa 或 Google Assista…

207 课程表

题目 你这个学期必须选修 numCourses 门课程,记为 0 到 numCourses - 1 。 在选修某些课程之前需要一些先修课程。 先修课程按数组 prerequisites 给出,其中 prerequisites[i] [ai, bi] ,表示如果要学习课程 ai 则 必须 先学习课程 bi 。 …

SpringBoot新手快速入门系列教程二:MySql5.7.44的免安装版本下载和配置,以及简单的Mysql生存指令指南。

我们要如何选择MySql 目前主流的Mysql有5.0、8.0、9.0 主要区别 MySQL 5.0 发布年份:2005年特性: 基础事务支持存储过程、触发器、视图基础存储引擎(如MyISAM、InnoDB)外键支持基本的全文搜索性能和扩展性: 相对较…

3.python

闯关 3作业 本节关卡: 学习 python 虚拟环境的安装 Python 的基本语法 学会 vscode 远程连接 internstudio 打断点调试 python 程序

NATAPP内网穿透使用

1. natapp能干嘛 可以将本地的内网ip映射到外网上,远程访问该连接,实现外网展示网站。平时做的应用开发都只能在局域网本地访问,通过内网穿透,可以通过外网进行访问。 2. 注册用户 网址:https://natapp.cn/自行完成…

2024阿里国际春招笔试

第一题 0 解题思路: 数据范围很大,肯定得找规律。 当n1时,0,1,结果为0 当n2时,00,01,10,11,结果为1 当n3时,000,001,010&a…

C#——密封类详情

密封类 密封类是密封方法的扩展,用于确保某个类不会被继承。在C#中,你可以使用sealed关键字来声明一个密封类。 public sealed class SealedClass {// 类成员定义 } 如果使用密封类继承的话,程序会报错!!&#xff0…

奇景光电战略投资Obsidian,共筑热成像技术新未来

5月29日,业界领先的IC设计公司奇景光电宣布,将对热成像传感器解决方案制造商Obsidian进行战略性投资,并以主要投资者的身份,参与到Obsidian的可转换票据融资活动中。虽然奇景光电并未公开具体的投资金额,但这一举动无疑向市场传递了一个明确的信号:奇景光电对Obsidian的技…

gcc/g++的四步编译

目录 前言1.预处理(进行宏替换)2.编译(生成汇编)3.汇编(生成二进制文件)4. 链接 (生成可执行文件)a. 动态库 && 动态链接b. 静态库 && 静态链接c. 验证d. 动静态链接…

[leetcode hot 150]第一百三十题,被围绕的区域

题目: 给你一个 m x n 的矩阵 board ,由若干字符 X 和 O 组成,捕获 所有 被围绕的区域: 连接:一个单元格与水平或垂直方向上相邻的单元格连接。区域:连接所有 0 的单元格来形成一个区域。围绕&#xff1a…

广州佛山中山数据中心机房搬迁公司

随着数据中心的发展和迭代,必然面临数据中心搬迁。数据中心搬迁听来简单,其实涉及诸多方面,如信息迁移的安全性、业务的连续性、搬迁的规范性、方案的可行性、组织的统一性等。友力科技(广州)有限公司,自原…

女生学计算机好不好?感觉计算机分有点高……?

众所周知,在国内的高校里,计算机专业的女生是非常少的,很多小班30人左右,但是每个班女生人数只有个位数。这就给很多人一个感觉,是不是女生天生就不适合学这个东西呢?女生是不是也应该放弃呢?当…

排序——交换类排序、插入类排序、选择类排序、归并类排序

排序 排序算法分为交换类排序、插入类排序、选择类排序、归并类排序。 交换类排序 冒泡排序 冒泡排序的基本思想是:从后往前(或从前往后)两两比较相邻元素的值。若A[ j - 1 ] > A[ j ],则交换它们,直到序列比较…

软件测试与开发流程

软件测试简介 软件测试是对软件进行检测和评估,以确定其是否满足所需结果的过程和方法。它是在规定的条件下对程序进行操作,发现程序错误,从而衡量软件质量,并对其是否满足设计要求进行评估的过程。 与计算机系统操作有关的计算机…

昇思25天学习打卡营第2天|MindSpore快速入门

打卡 目录 打卡 快速入门案例:minist图像数据识别任务 案例任务说明 流程 1 加载并处理数据集 2 模型网络构建与定义 3 模型约束定义 4 模型训练 5 模型保存 6 模型推理 相关参考文档入门理解 MindSpore数据处理引擎 模型网络参数初始化 模型优化器 …

优化路由,优化请求url

1、使用父子关系调整下使其更加整洁 2、比如说我修改了下url,那所有的页面都要更改 优化:把这个url抽出来,新建一个Api文件夹用于存放所有接口的url,在业务里只需要关注业务就可以 使用时 导包 发请求 如果想要更改路径,在这里…

ReAct Agent 分享回顾

在人工智能的迅速发展中,ReAct Agent作为一项前沿技术,受到越来越多的关注。本文结合ReAct Agent 提出者的访谈内容,探讨ReAct Agent的研究背景、技术挑战、未来展望,以及它与大模型的紧密联系,分析其科研成果与商业化…

迅捷PDF编辑器合并PDF

迅捷PDF编辑器是一款专业的PDF编辑软件,不仅支持任意添加文本,而且可以任意编辑PDF原有内容,软件上方的工具栏中还有丰富的PDF标注、编辑功能,包括高亮、删除线、下划线这些基础的,还有规则或不规则框选、箭头、便利贴…