ubuntu下nginx基本使用
安装 Nginx
终端键入以下命令:
1 | sudo apt update |
安装完成后查看版本:
1 | sudo nginx -v |
输出:
1 | nginx version: nginx/1.14.0 (Ubuntu) |
配置防火墙
如果你服务器打开了防火墙,则还需要打开端口 80 和 443。然后键入:
1 | sudo ufw allow 'Nginx Full' |
你可以通过下面方式验证更改:
1 | sudo ufw status |
如果出现:
1 | Nginx Full ALLOW Anywhere |
就说明更改成功。
测试安装
浏览器中打开 http://your_ip ,就能够看到默认的 Nginx 欢迎页面
使用 systemctl 管理 Nginx 服务
你可以像任何其他 systemd 命令一样管理 Nginx 服务。 要停止 Nginx 服务,运行:
1 | sudo systemctl stop nginx |
要再次启动,请键入:
1 | sudo systemctl start nginx |
重新启动 Nginx 服务:
1 | sudo systemctl restart nginx |
在进行一些配置更改后重新加载 Nginx 服务:
1 | sudo systemctl reload nginx |
如果你想禁用 Nginx 服务在启动时启动:
1 | sudo systemctl disable nginx |
并重新启用它:
1 | sudo systemctl enable nginx |
以上参考来源:如何在 Ubuntu 18.04 上安装 Nginx
配置 404
/etc/nginx/sites-enabled/default
中添加:
1 | server { |
参考:使用 Nginx 的 error_page 指令自定义 404 50x 错误页面
关闭自启服务,比如打印机
先安装一个类 GUI 软件,可以管理自启:
1 | sudo apt-get. install sysv-rc-conf |
输入命令 sysv-rc-conf,可以管理开机启动程序。
带 x 的都是开机启动的
配置虚拟主机:
p.s. 默认 nginx 网站根目录为 var/www/html
基于端口号的配置
进入 etc/nginx/sites-available
目录下,新建一个配置,命名为 test :
1 | vim test |
test
1 | server配置 |
保存退出。
然后在终端停掉 nginx 再重开:
1 | nginx -s quit |
❗️ 注意:如果你开启了防火墙,记得把配置的 8001 端口开放出来:
1 | sudo ufw allow 8001/tcp |
另外还需在阿里云的安全组规则中把 8001 端口开发出来。
基于 IP 的配置
把上面 test 文件中的 server_name
改为你的其他 IP 就好。
基于域名的配置
还是以上面的 test
文件为例,只需要把 server_name
改为你的域名就好。
除此之外,你还需要配置域名解析,例如你使用了阿里云 ECS,那么你需要访问阿里云的域名解析添加记录:
在阿里云的控制台中找到域名管理,然后选择顶级域名 evelance.cn 后面的“解析”字样。在新打开的页面中我们可以看到一个提供域名解析的界面,选择解析类型为 A 类解析,然后输入 mall(我们想要的二级域名的头),然后在地址里面输入我们刚才查看到的 ECS 的公网 ip,然后点击确认,之后我们的解析就会生效了。
使用 Nginx 反向代理
仍然以 test
文件为例,示例配置如下:
1 | server { |
Nginx 适配 PC 和移动设备
在
/var/www/
目录下新建两个文件夹,分别为:pc
和mobile
目录:1
2
3cd /var/www
mkdir pc
mkdir mobile分别在两个目录下新建
index.html
文件并对应键入下面文字以示区分:1
2<h1>我是PC</h1>
<h1>我是Mobile</h1>进入
/etc/nginx/sites-enabled/
目录,还是以test
文件作为示例:1
2
3
4
5
6
7
8
9
10
11
12
13
14server {
listen 8001;
listen [::]:8001;
server_name nginx.evelance.cn;
location / {
root /var/www/pc;
if ($http_user_agent ~* '(Android|webOS|iPhone|iPod|BlackBerry)') {
root /var/www/mobile;
}
index index.html;
}
}重启 nginx :
1
2nginx -s quit
nginx
启用 gzip
进入 /etc/nginx
目录,通过 vim 编辑 nginx.conf
文件:
1 | cd /etc/nginx |
找到 Gzip Settings 项,发现 nginx 默认是开启 gzip 的:
1 | gzip on; |
但我们发现 gzip_types 配置项是被注释了的,所以我们只需要解开注释就好:
1 | gzip_types text/plain text/css application/json application/javascript text/html application/xml text/javascript; |
最后重启 nginx
1 | nginx -s quit |