在Ubuntu上安装nginx

环境
Ubuntut 22桌面版

如果在安装nginx之前已经安装了apache2,那么80端口已经被apache2监听了,使用以下命令停止apache2服务:
sudo systemctl stop apache2

使用以下命令禁止apache2开机自动启动:
sudo systemctl disable apache2

由于apache2和nginx默认的网站根目录都是/var/www/html/,因此成功安装和启动nginx后,在操作系统内部的火狐浏览器访问:
http://localhost
访问到了apache2的欢迎页面,不要惊讶,因为nginx在/var/www/html/目录安装的是index.nginx-debian.html。我们可以执行以下命令备份apache2安装的index.html:
sudo mv /var/www/html/index.html /var/www/html/index.apache2-ubuntu22.html
然后把index.nginx-debian.html改名为index.html:
sudo mv /var/www/html/index.nginx-debian.html /var/www/html/index.html
这样再访问http://localhost就能访问到nginx的欢迎页面了!

Ubuntu安装nginx后,默认没有创建nginx用户和组(在CentOS系统是创建nginx用户和组),而是创建www-data用户和组。

有关根域名被CNAME拉平

RFC文档说根域名不支持CNAME映射到其他域名,否则和MX记录有冲突。即配置为CNAME zuotijia.me www.zuotijia.me,Cloudflare DNS CNAME拉平操作会把根域名zuotijia.me直接解析到IP地址,因此默认情况下,在浏览器输入zuotijia.me访问不到www.zuotijia.me。

要在浏览器输入根域名zuotijia.me访问到https://www.zuotijia.me,可以使用Nginx重定向。新建一个Nginx配置块/etc/nginx/conf.d/zuotijia.me.conf,输入以下内容:

server {
listen 80;
listen [::]:80;
server_name zuotijia.me;
return 301 https://www.zuotijia.me$request_uri;
}
server {
listen 443;
listen [::]:443;
server_name zuotijia.me;
return 301 https://www.zuotijia.me$request_uri;
}

重启Nginx使配置生效:
$ sudo systemctl restart nginx

然后以下网址都能重定向到https://www.zuotijia.me了:
https://zuotijia.me
http://zuotijia.me
即使在URL后面加了参数也能连带参数重定向。