[大阪/横滨/德岛] 寻找基础设施/服务器端工程师!

[大阪/横滨/德岛] 寻找基础设施/服务器端工程师!

【超过500家企业部署】AWS搭建、运维、监控服务

【超过500家企业部署】AWS搭建、运维、监控服务

【CentOS的后继者】AlmaLinux OS服务器搭建/迁移服务

【CentOS的后继者】AlmaLinux OS服务器搭建/迁移服务

[仅适用于 WordPress] 云服务器“Web Speed”

[仅适用于 WordPress] 云服务器“Web Speed”

[便宜]网站安全自动诊断“快速扫描仪”

[便宜]网站安全自动诊断“快速扫描仪”

[预约系统开发] EDISONE定制开发服务

[预约系统开发] EDISONE定制开发服务

[注册100个URL 0日元] 网站监控服务“Appmill”

[注册100个URL 0日元] 网站监控服务“Appmill”

【兼容200多个国家】全球eSIM“超越SIM”

【兼容200多个国家】全球eSIM“超越SIM”

[如果您在中国旅行、出差或驻扎]中国SIM服务“Choco SIM”

[如果您在中国旅行、出差或驻扎]中国SIM服务“Choco SIM”

【全球专属服务】Beyond北美及中国MSP

【全球专属服务】Beyond北美及中国MSP

[YouTube]超越官方频道“美由丸频道”

[YouTube]超越官方频道“美由丸频道”

我尝试使用 Nginx 进行基本身份验证

你好,我叫肯。

上次,我们使用apache来执行基本身份验证。在我之前的博客中,我宣布我将使用 nginx 进行基本身份验证,因此在本文中我想写一下如何使用 nginx 设置基本身份验证。这次我也想使用Vagrant来介绍从安装nginx到设置虚拟主机以及如何进行基本身份验证的所有内容。我希望你能一直滚动到最后。

本次使用的环境及版本

虚拟机版本 6.1

流浪者版本2.2.19

分/7

nginx 版本 nginx/1.23.1

 

此博客的目标和步骤

这次的目标

本博客的目标是将基本身份验证应用于使用 nginx 设置的虚拟主机页面。

设置步骤

  1. 编辑vagrantfile并启动vagrant
  2. 使用vagrant ssh进入服务器
  3. 安装nginx
  4. 设置虚拟主机
  5. 执行基本身份验证

我将大致遵循上述步骤,因此请随意跳过您已经知道的步骤! !

 使用SSH登录Vagrant启动的虚拟服务器

为了使用vagrant ssh,我们还将在这里实现apache基本身份验证部分中所做的设置。

编辑 vagrantfile 以在本地环境中启用互联网连接。

Vagrantfile 的示例具有以下设置。

您需要连接的是

 config.vm.network“私有网络”,IP:“192.168.43.20”

就变成了。

  # -*- mode: ruby​​ ​​-*- # vi: set ft=ruby : # 所有 Vagrant 配置均在下面完成。 Vagrant.configure 中的“2”配置配置版本(我们支持旧样式以实现向后兼容。 ). 除非您知道 # Vagrant.configure("2") 做什么 |config| # 您可以在 https:// 中搜索 # 个框。 vagrantcloud. config.vm.box = "centos/7" # 创建一个转发端口映射,允许从主机上的端口访问计算机内的特定端口。 localhost: 8080" 将访问来宾计算机上的端口 80。 # 注意:这将启用对开放端口的公共访问 config.vm.network "forwarded_port", guest: 80, host: 8080 # 创建一个专用网络,允许主机-仅访问使用特定 IP 的机器 # config.vm.network "private_network", ip: "192.168.43.20" end。

完成编辑后,vagrant up。

流浪向上

vagrant up 完成后,使用 vagrant ssh 连接,

 

流浪者 ssh 

正如您可能已经猜到的,这与上一篇关于使用 apache 使用基本身份验证的文章完全相同。

对不起,但我想如果你能好心说一声谢谢就更好了,但如果你能忽略它,我会很高兴。 。 。 。
如果能登录就成功了。接下来,让我们安装nginx。

让我们安装nginx

上次我安装Apache时,我想都没想就能安装httpd,但是nginx不是那样的。如果你突然尝试安装某些东西,你会被告知没有这样的东西。因此,在继续安装之前,让我们先做一些艰苦的工作。

  • 请注意,我写这篇文章的前提是您已经完成了 yum 更新。

首先,让我们为 nginx 创建一个存储库。

sudo vi /etc/yum.repos.d/nginx.repo

现在您可以打开 nginx.repo,在编辑器中编写以下设置。

[nginx] name=nginx repo baseurl=http://nginx.org/packages/centos/7/$basearch/ gpgcheck=0enabled=1

创建上述描述后,使用 :wq 保存。

接下来,让我们安装nginx。

sudo yum 安装 nginx

安装现已完成。如果没有问题的话,我们就启动nginx吧。

sudo systemctl 启动 nginx

最后输入http://localhost:8080,当显示通常的nginx页面时,nginx的安装启动就完成了。

接下来,让我们创建一个虚拟主机。

让我们创建一个虚拟主机(*有点麻烦)

首先,为 Virtualhost 创建一个文档根目录。 (有时它的意思是 Virtualhost = vhost。)

*由于我们这次使用的是centoOS,sites-available和sites-enabled默认不存在,所以我们需要创建它们。但是,当使用基于 Debian 的操作系统时,不需要创建sites-available 和sites-enabled,因为它们遵循 apache 约定而存在。

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

创建完成后,转到public_html并创建index.html。

须藤 vi 索引.html

根据需要填写内容,按:wq,然后保存。

在nginx中,要配置vhost,您需要创建名为sites-available和sites-enabled的目录,并在它们下配置它们。稍后我们将在这两个目录之间创建符号链接。首先,创建上面提到的两个目录。

mkdir /etc/nginx/sites-available

创建另一个

mkdir /etc/nginx/sites-enabled

创建两个目录后,为Virtualhost创建conf文件。

由于我们的域是 example.com,因此我们将文件命名为 example.com.conf。

描述如下。

服务器 { 监听 80; 位置 / { root/var/www/vhosts/example.com/public_html 索引 index.html } }

写完后,用 :wq 保存。然后,设置指向sites-available 目录和sites-enabled 目录的符号链接。

sudo ln -s /etc/nginx/sites-available/example.com.conf /etc/nginx/sites-enabled/example.com.conf

为了让nginx读取上面的设置,我们将它们写入nginx.conf中。

这是要写的内容。

包括/etc/nginx/sites-enabled/*;

将其写在 nginx.conf 的底部。

用户nginx; error_log /var/log/nginx/error.log warn; pid /var/run/nginx.pid; 事件{worker_connections 1024; } http { include /etc/nginx/mime.types;八位字节流; 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 main; #tcp_nopush on; #gzip on; include /etc/nginx/conf.d/*.conf;

现在设置完成了,让我们进行语法检查。

nginx-t

如果现在看到语法正常并且配置文件成功,则可以确认没有问题。最后重启nginx使设置生效。

sudo systemctl 重新启动 nginx

并且不要忘记编辑主机文件。

任何 IP 地址 example.com

将其添加到主机文件并保存。

*除非以管理员权限执行,否则设置不会被反映。因此,以管理员权限运行记事本或类似程序,然后打开主机文件。

现在,当您在浏览器中搜索http://example.com时,如果显示您在设置过程中输入的信息,则表示设置已完成。

现在您已经配置了虚拟主机,最后一步是配置基本身份验证。

让我们对配置的虚拟主机应用基本身份验证

使用Apache时,没有问题,因为也安装了ht系统。但是,对于nginx,没有安装基于ht的工具,因此无法使用htpasswd命令。那么,让我们从安装开始。

sudo yum 安装 httpd-tools

安装完成后,使用 htpasswd 命令准备基本身份验证。

htpasswd -c /var/www/vhosts/example.com/.htpasswd 用户名

注册您选择的用户名和密码。

为了确保万无一失,请检查您的用户名和密码是否正确创建。

猫 /var/www/vhosts/example.com/.htpasswd

如果显示配置的用户名和哈希值,则说明设置成功。

最后,要应用基本身份验证,请将 auth_basic 和 auth_basic_user_file 添加到 example.com.conf。

服务器 { 监听 80; 位置 / { root /var/www/vhosts/example.com/public_html index.php; auth_basic_nginx_test; .htpasswd; } }

写完这个描述后,重启nginx。如果启用基本身份验证,则需要用户名和密码。

这样就完成了nginx的基本认证设置。

 

如果您觉得这篇文章有帮助,请点赞!
7
加载中...
7 票,平均:1.00 / 17
6,741
X Facebook 哈特纳书签 口袋
[2025.6.30 Amazon Linux 2 支持结束] Amazon Linux 服务器迁移解决方案

[2025.6.30 Amazon Linux 2 支持结束] Amazon Linux 服务器迁移解决方案

[大阪/横滨] 积极招募基础设施工程师和服务器端工程师!

[大阪/横滨] 积极招募基础设施工程师和服务器端工程师!

写这篇文章的人

关于作者

2022 年应届毕业生加入 Beyond。目前
在系统解决方案部门
。研究生毕业之前我一直在学习语言学,并接受了成为基础设施工程师的挑战。我
建立了一个名为 Beyond Cafe Club 的内部俱乐部,并且充满热情关于每天煮咖啡和茶。ing