标签 ubuntu 下的文章

获取 acme.sh
acme.shshell 脚本可自动颁发和续订来自 Let's Encrypt 的免费证书。您可以通过直接从 Web 下载脚本或克隆其 git 项目来获取 acme.sh 脚本。
从网络下载 acme.sh
运行以下两个命令中的任何一个以下载并执行 acme.sh 脚本。
curl https://get.acme.sh | sh -s [email protected]
wget -O - https://get.acme.sh | sh -s [email protected]
安装出现错误,安装crontab与socat
apt install cron socat -y
一旦看到“安装成功!”消息,您都可以关闭终端窗口并再次打开它以验证安装。
若要查看 acme.sh 使用情况信息,请运行下一个命令。
acme.sh -h
您也可以运行以下命令来检查 acme.sh 版本。
acme.sh --version
生成证书
要为单个域生成单个证书,请运行以下命令。

yourdomain.com替换为您注册的域。此外,根据需要将/home/www/yourdomain.com替换为您域的网站根文件夹。
acme.sh --issue -d yourdomain.com -w /var/www/yourdomain.com
对于共享同一网站根文件夹的多个域/子域,您可以运行下一个命令来颁发证书。
acme.sh --issue -d yourdomain.com -d www.yourdomain.com -d subdomain.yourdomain.com -w /var/www/yourdomain.com
生成的证书将存储在 ~/.acme.sh/yourdomain.com 中

使用 acme 在 NGINX 上安装证书

通过 acme.sh 脚本生成证书后,下一步是将其安装在NGINX上。首先,创建一个文件夹,将生成的证书复制到该文件夹。
sudo mkdir -p /etc/nginx/certs/yourdomain.com
运行下一个命令以安装证书。不要忘记将yourdomain.com替换为您注册的域。
acme.sh --install-cert -d yourdomain.com --key-file /etc/nginx/certs/yourdomain.com/key.pem --fullchain-file /etc/nginx/certs/yourdomain.com/cert.pem --reloadcmd "service nginx force-reload"
更新 NGINX 服务器块文件
最后一步是更新域的服务器块文件以包含与 SSL 相关的指令。
运行以下命令以编辑服务器块文件。
sudo nano /etc/nginx/sites-available/yourdomain.com
接下来,添加以下行。

listen [::]:443 ssl ipv6only=on;
listen 443 ssl;
ssl_certificate /etc/nginx/certs/cloudindevs.com/cert.pem;
ssl_certificate_key /etc/nginx/certs/cloudindevs.com/key.pem;

保存更改并关闭文件。
更新 NGINX 服务器块文件以使用 SSL
使用以下命令重新启动 NGINX:

sudo systemctl restart nginx
在浏览器中访问您的网站,以确认现在已启用安全通信。

证书续订
Let's Encrypt颁发的证书将每60天自动续订一次。

但是,如果您愿意,也可以手动续订证书。运行以下命令。

acme.sh --renew -d yourdomain.com --force
若要停止证书续订,请运行以下命令。

acme.sh --remove -d yourdomain.com
升级 acme.sh
建议始终使用最新版本的 acme.sh。运行以下命令以确保自动更新 acme.sh。

acme.sh --upgrade --auto-upgrade
若要禁用 acme.sh 的自动升级,请运行下一个命令。

acme.sh --upgrade --auto-upgrade 0
如果您不希望 acme.sh 自动升级,请使用以下命令手动更新它。

acme.sh --upgrade
结论
在本指南中,我们描述了使用 Ubuntu 上的 acme.sh shell 脚本从 Let's Encrypt 获取和续订免费 SSL/TLS 证书的步骤。此方法是使用 Certbot 工具的替代方法。我们想听听您使用这些工具的经验。

新买的vps服务器,有一部分商家会提前预装apache2,要用nginx的,把它卸载掉。

apt-get --purge remove apache2
apt-get --purge remove apache2.2-common
apt-get --purge remove apache2-doc
apt-get --purge remove apache2-utils
apt-get autoremove                

NGINX是一个开源的Web服务器软件。您可以将NGINX部署为独立的Web服务器,也可以部署为其他Web服务器前面的代理(实质上是反向代理)。Nginx 是托管高流量网站的最佳网络服务器之一。

在本教程中,我们将重点介绍如何在Ubuntu 20.04 上将 NGINX 安装为独立的 Web 服务器。

在 Ubuntu 20.04 上安装 NGINX
首先运行sudo apt-get update以检索有关新的和更新的软件包的信息,然后再继续安装NGINX。

Nginx 在 Ubuntu 软件包存储库中可用。因此,使用以下命令很容易安装 Nginx:

sudo apt-get install nginx
检查 NGINX 服务状态
让我们做一个快速检查以确认NGINX服务的状态,运行以下命令:

sudo systemctl status nginx
上述命令的输出确认 NGINX 处于活动状态并正在运行。如果您收到一条消息,指示 NGINX 处于非活动状态、未启动或未运行,则可以通过运行以下命令手动启动 NGINX 服务。

systemctl start nginx
要检查 Nginx 版本,请运行:

sudo dpkg -l nginx
输出显示,在编写本教程时,Nginx 版本 1.18.0正在 Ubuntu 20.04 上运行。

测试 NGINX Web 服务器
确认NGINX服务处于活动状态并正在运行后,您现在可以通过打开首选的Web浏览器并输入安装了NGINX的服务器的IP地址(http://your_server_ip)来测试Web服务器。

您应该会看到标题为“欢迎来到nginx!"
要在端口 443 上允许 NGINX,请执行以下操作:

sudo ufw allow 'Nginx HTTPS'
设置 NGINX 服务器块
如果您想在同一台NGINX Web服务器上托管多个网站,则需要设置服务器块。服务器块也称为虚拟主机(主要在 Apache 中)。

NGINX只预配置了一个服务器块,这是默认网站(/etc/nginx/sites-available)的配置细节存储的地方(/var/www/html)。

一起来看看吧。

sudo ls -l /etc/nginx/sites-available
total 8
-rw-r--r-- 1 root root 2416 Mar 26 2020 default

运行以下命令以显示默认服务器块文件的内容。

sudo cat /etc/nginx/sites-available/default | more
按键盘上的空格键可一次向下滚动一页。您将看到该文件包含默认的服务器配置详细信息,例如侦听端口号,文档根目录(即存储网站内容的基本文件夹),索引文件和服务器名称。

您还应该看到标题为“虚拟主机配置”的部分,如下所示。您可以在此处配置其他网站,但最好创建一个单独的服务器块文件并保留默认文件。
/etc/nginx/sites-available/default

# Virtual Host configuration for example.com
#
# You can move that to a different file under sites-available/ and symlink that
# to sites-enabled/ to enable it.
#
#server {
#    listen 80;
#    listen [::]:80;
#
#    server_name example.com;
#
#    root /var/www/example.com;
#    index index.html;
#
#    location / {
#        try_files $uri $uri/ =404;
#    }
#}

同时,复制上面的示例配置信息并将其保存在文本编辑器中。我们将很快使用这些信息。

创建网站根目录
接下来,您需要在 /var/www下创建一个根文件夹来存储其他网站的内容。例如,我将为我的 domain1.com 网站创建一个名为 domain1.com 的文件夹。

注意:您应该将域名 1 替换为您自己的注册域名。您还应该更新DNS记录,以将您的域名指向NGINX Web服务器的公共IP地址。

sudo mkdir /var/www/domain1.com
创建索引文件
索引文件是打开网站时显示的主网页。运行以下命令为其他网站创建索引文件。

sudo nano /var/www/domain1.com/index.html
我在这个例子中使用了nano,但你可以使用你最喜欢的文本编辑器。接下来,您可以复制并粘贴以下 HTML 代码以进行测试。

<!DOCTYPE html>
<html>
<head>
<title>Welcome to Domain1!</title>
<style>
body {
width: 35em;
margin: 0 auto;
font-family: Tahoma, Verdana, Arial, sans-serif;
}
</style>
</head>
<body>
<h1>Welcome to Domain1!</h1>
<p>If you see this page, the Domain1 website is working!</p>
</body>
</html>

保存更改并关闭文本编辑器。

创建服务器块
下一步是创建服务器块文件以保存其他网站的配置详细信息。运行以下命令。

sudo nano /etc/nginx/sites-available/domain1
复制之前保存的示例虚拟主机配置信息,并将其粘贴到新文件中。从“服务器”行开始,确保删除所有#符号以取消注释指令。另外,请记住将“domain1”替换为您自己的注册域名。

# Virtual Host configuration for example.com
#
# You can move that to a different file under sites-available/ and symlink that
# to sites-enabled/ to enable it.
#
server {
       listen 80;
       listen [::]:80;

       server_name domain1.com www.domain1.com;

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

       location / {
               try_files $uri $uri/ =404;
       }
}

保存更改并关闭此文件。
启用服务器块
要让 NGINX 知道其他网站可用,请运行以下命令以创建指向服务器块文件的符号链接。

ln -s /etc/nginx/sites-available/domain1 /etc/nginx/sites-enabled
测试您的配置
运行sudo nginx -t以测试您的服务器块配置。您应该会看到一条消息,指示一切正常。

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

您可以运行sudo 服务 nginx重新加载来重新加载配置文件。

测试您的新网站
打开网络浏览器并输入您的新网站地址。您应该看到为新网站创建的索引文件的内容,而不是默认的NGINX网页。
控制NGINX的基本命令
让我们学习基本的Nginx命令来管理你的Web服务器。

重新启动命令将停止该服务,然后重新启动它。

sudo systemctl restart nginx
reload命令告诉 NGINX 重新加载其配置文件,但不停止服务。
sudo systemctl reload nginx

stop命令将停止 NGINX 服务。

sudo systemctl stop nginx
要使Nginx 服务能够在启动时启动,请运行

sudo systemctl enable nginx
注意:默认情况下,Nginx服务启用为在服务器启动时自动启动。

基本NGINX配置和日志文件
/etc/nginx --包含所有 NGINX 配置文件

/etc/nginx/sites-available--包含服务器块文件,这些文件存储为一个或多个网站提供服务的配置详细信息

/etc/nginx/sites-enabled --包含一个或多个已启用网站的配置文件

/etc/nginx/nginx.conf --主配置文件,也读取其他文件中的配置指令

/var/log/nginx/access.log --用于存储有关您网站的所有访问的信息的默认位置

/var/log/nginx/error.log --存储 NGINX 错误的默认位置

结论
通过遵循本指南,您应该能够在 Ubuntu 20.04 服务器上启动并运行一个或多个网站。但是,如果您遇到任何问题,请随时在下面的评论部分告诉我们,我们将尽最大努力为您提供帮助。
转:https://linoxide.com/install-nginx-on-ubuntu-20-04/