在Ubuntu Linux 18.04 LTS上安装和配置Nginx

时间:2020-01-09 10:40:53  来源:igfitidea点击:

如何在Ubuntu Linux 18.04 LTS上安装和配置Nginx?

说明:Nginx是一个免费的开源Web服务器。

Nginx具有通过Internet发送网页的服务。
您可以发送由PHP生成的静态或动态网页。

Nginx以高性能HTTP,HTTPS和反向代理服务器而闻名。
它提供了简单的配置,并在服务器上使用了较少的资源。
它是Apache服务器的绝佳替代品。

在Ubuntu Linux 18.04上安装和配置Nginx

在Ubuntu 18.04 LTS上安装Nginx的过程如下:

  • 使用apt命令更新系统
  • 使用apt install nginx在Ubuntu上安装Nginx
  • 配置Nginx服务器
  • 启用并重启Nginx服务器

让我们详细了解所有步骤,以便在Ubuntu Linux 18.04 LTS服务器上安装Nginx。

步骤1.使用ssh命令登录到服务器

首先,使用ssh命令登录到服务器:

$ ssh user@server
$ ssh [email protected]

步骤2.找出您的Ubuntu Linux服务器IP地址

输入以下ip命令:

$ ip show
$ ip addr show

记下IP地址10.105.28.46。
您可能有一个公共IPv4地址。
这完全取决于您的设置。

步骤3.在Ubuntu Linux 18.04 LTS上安装Nginx

运行以下apt命令以在Ubuntu 18.04上安装安全更新:

$ sudo apt update
$ sudo apt upgrade

输出示例:

Hit:1 http://us-east-1.ec2.archive.ubuntu.com/ubuntu bionic InRelease
Get:2 http://us-east-1.ec2.archive.ubuntu.com/ubuntu bionic-updates InRelease [88.7 kB]
Get:3 http://us-east-1.ec2.archive.ubuntu.com/ubuntu bionic-backports InRelease [74.6 kB]
Get:4 http://security.ubuntu.com/ubuntu bionic-security InRelease [88.7 kB]     
Fetched 252 kB in 1s (503 kB/s)                                
Reading package lists... Done
Building dependency tree       
Reading state information... Done
All packages are up to date.

如何在Ubuntu 18.04上安装Nginx

最后安装Nginx Weber服务器:

$ sudo apt install nginx

步骤4.在Ubuntu上启动/停止/重启Nginx服务器的命令

在启动时使用systemctl命令启用Nginx服务器:

$ sudo systemctl enable nginx

使用systemctl命令启动Nginx服务器:

$ sudo systemctl start nginx

使用systemctl命令重新启动Nginx服务器:

$ sudo systemctl restart nginx

使用systemctl命令停止Nginx服务器:

$ sudo systemctl stop nginx

使用systemctl命令重新加载Nginx服务器:

$ sudo systemctl reload nginx

使用systemctl命令获取Nginx服务器的状态:

$ sudo systemctl status nginx

步骤5.在Ubuntu Linux上使用UFW打开端口80和443(防火墙配置)

UFW是简单防火墙的首字母缩写。
它用于管理Linux防火墙,旨在为用户提供易于使用的界面。
要打开端口80(HTTP)和HTTPS(443),请运行:

$ sudo ufw allow https comment 'Open all to access Nginx port 443'
$ sudo ufw allow http comment 'Open access Nginx port 80'
$ sudo ufw allow ssh comment 'Open access OpenSSH port 22'
$ sudo ufw enable

验证一下:

$ sudo ufw status

步骤6.验证Nginx在Ubuntu 18.04 LTS上正常工作

您的Web服务器已启动并正在运行。
现在该进行测试了。
使用步骤2中收集的IP地址。
启动Web浏览器并输入URL:

http://10.105.28.46/

或使用公共IP地址:

http://104.200.23.232/

步骤7.配置Nginx服务器

让我们通过目录设置我们的公共领域(例如cms.theitroad.local或www.theitroad.local等)。

创建一个用户来存储网页

使用useradd命令添加名为www-pubcms的新Linux用户

$ sudo useradd -s /usr/sbin/nologin -m -d /home/lighttpd/ -c 'cms.theitroad.local user' www-pubcms

使用passwd命令锁定Linux用户帐户:

$ sudo passwd -l www-pubcms
`passwd: password expiry information changed.`

使用mkdir命令创建目录来存储网页

$ sudo mkdir -v /home/lighttpd/http/

创建一个新的示例网页

使用文本编辑器,例如nano命令或vim命令:

$ sudo nano /home/lighttpd/http/index.html

或者

$ sudo vim /home/lighttpd/http/index.html

追加以下HTML代码:

<html>
        <head>
                <title>CMS.theitroad.local</title>
        </head>
        <body>
                <h1>Welcome</h1>
                This is a test page for cms.theitroad.local.
                <hr>
                <small>Powered by Nginx and Ubuntu 18.04 LTS</small>
        </body>
</html>

设置目录权限:

$ sudo chown -vR www-pubcms:www-pubcms /home/lighttpd/

为cms.theitroad.local域创建虚拟域配置

$ sudo vim /etc/nginx/sites-available/http.cms.theitroad.local.conf

或者

$ sudo nano /etc/nginx/sites-available/http.cms.theitroad.local.conf

追加配置:

# our first viraul host cms.theitroad.local
server {
    listen      80;             # port
    server_name cms.theitroad.local; # dns server name
 
    # log files
    access_log  /var/log/nginx/cms.theitroad.local_access.log;
    error_log   /var/log/nginx/cms.theitroad.local_error.lg;
 
    # document root where files stores for cms.theitroad.local domain
    root /home/lighttpd/http;
    index index.html index.htm;
}

保存并关闭文件。
在启用站点的目录中使用ln命令创建新的软链接,以启用cms.theitroad.local域:

$ cd /etc/nginx/sites-enabled/
$ sudo ln -v -s /etc/nginx/sites-available/http.cms.theitroad.local.conf .

测试并正常加载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
$ sudo systemctl reload nginx

确保将域名映射到您的公共IP地址,例如104.200.23.232。
可以使用host命令或dig命令来验证cms.theitroad.local的A记录:

$ host cms.theitroad.local

启动浏览器并输入您的域名:

http://cms.theitroad.local/

导入Nginx日志文件

  • /var/log/nginx/Nginx服务器日志文件。
  • /etc/nginx/Nginx服务器配置文件目录。所有活动站点的配置都可以在实际目录下的/etc/nginx/sites-enabled /目录中找到,该目录位于/etc/nginx/sites-available /。
  • /etc/nginx/nginx.conf您的主要nginx配置文件。

使用tail命令或更多命令或grep命令或cat命令查看服务器日志文件:

$ tail -f /var/log/nginx/access.log
$ more /var/log/nginx/error.log
$ grep 'something' /var/log/nginx/cms.theitroad.local_access.log
$ cat /var/log/nginx/cms.theitroad.local_access.log

检查Nginx日志文件以确保所有域的所有内容均正常运行

使用ss命令或netstat命令验证是否在Ubuntu Linux上打开了Nginx端口:

$ ss -tulpn
$ ss -tulpn | grep :80
$ netstat -tulpn