ming's blog
Linux安装Nginx

Linux安装Nginx

一、安装nginx

使用 apt 来安装 Nginx

sudo apt -y update
sudo apt -y install nginx

二、配置防火墙

在测试 Nginx 之前,我们需要调整防火墙,让他允许 Nginx 服务通过。Nginx ufw 在安装时会把他自身注册成为服务。

sudo ufw app list

输出结果:

Available applications:
  Nginx Full
  Nginx HTTP
  Nginx HTTPS
  OpenSSH

Nginx 提供了三个配置文件:

  • Nginx Full
    开端口80 正常,未加密的网络流量
    端口443 TLS / SSL加密的流量

  • Nginx HTTP
    仅打开端口80 正常,未加密

  • Nginx HTTPS
    仅打开端口443 TLS / SSL加密


先测试HTTP,配置防火墙允许服务通过
sudo ufw allow 'Nginx HTTP'

三、检查web服务器

用以下命令来查看更改结果

sudo ufw status

我们可以在输出结果中看到

Status: active

To                         Action      From
--                         ------      ----
OpenSSH                    ALLOW       Anywhere                  
Nginx HTTP                 ALLOW       Anywhere                  
OpenSSH (v6)               ALLOW       Anywhere (v6)             
Nginx HTTP (v6)            ALLOW       Anywhere (v6)

若未看到上述结果,先检查nginx服务是否开启

service nginx status

看到 Active: active (running) 说明已启动

使用以下命令检查内网ip

ip addr show eth0 | grep inet | awk '{ print $2; }' | sed 's/\/.*$//'

使用以下命令检查公网ip

curl -4 icanhazip.com

当nginx服务运行后可以在浏览器访问http://本地IP


四、管理nginx

停止、启动、重启、配置服务器跟随系统启动,配置不跟随服务器启动,热加载配置

sudo service nginx stop
sudo service nginx start
sudo service nginx restart
sudo service nginx disable
sudo service nginx enable
sudo service nginx reload  

五、设置服务块

如果是部署到公网上以供公共访问,首先需要准备一个域名

假设网站是 http://example.com

nginx默认前端资源存储位置在 /var/www

先在该路径下创建存放网页资源的文件夹,路径为 /var/www/example.com/html,然后为该文件夹分配权限

sudo chown -R $USER:$USER /var/www/example.com/html
sudo chmod -R 755 /var/www/example.com

先随便添加一个网页做测试

vim /var/www/example.com/html/index.html

内容随便写一个 <h1>HELLO WORLD!</h1>

接下来要在nginx的服务中创建一个新的服务器块

sudo vim /etc/nginx/sites-available/example.com

内容如下:

server {
        listen 80;
        listen [::]:80;
        root /var/www/example.com/html;
        index index.html index.htm index.nginx-debian.html;
        server_name example.com www.example.com;
        location / {
                try_files $uri $uri/ =404;
        }
}

为上述文件创建链接,让nginx启动时读取目录

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

为避免可能由于添加其他服务器名称而引起的哈希存储区内存问题,有必要调整 /etc/nginx/nginx.conf 文件中的单个值

http {
    ...
    # 找到这行,将注释去掉
    server_names_hash_bucket_size 64;
    ...
}

重启nginx

sudo service nginx restart

检查一下nginx的运行状态之后,就可以尝试在浏览器访问 http://example.com


六、 一些重要路径

/etc/nginx Nginx 配置目录。所有 Nginx 的配置文件都在这里

/etc/nginx/nginx.conf Nginx的配置文件。大多数全局配置可以通过这个文件来修改

/etc/nginx/sites-available/sites-enabled 用来存储服务器下每个站点服务器块的目录。 默认情况下 Nginx 不会直接使用目录下的配置文件,需要我们更改配置来告诉 Nginx 来去读

/etc/nginx/sites-enabled/sites-available 这里是存储已经启用站点服务器块的目录

/etc/nginx/snippets 这个目录包含一些 Nginx 的配置文件。可打开详细查看这些配置文件到文档进行学习

/var/log/nginx/access.log 这里是 Nginx 到日志文件,对 Web 服务器的每个请求都会记录在这个日志中

/var/log/nginx/error.log 记录 Nginx 运行过程中发生的错误日志