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 运行过程中发生的错误日志