阿里云linux nginx
阿里云ECS默认的阿里Linux镜像里没装Nginx。你得自己动手。阿里我上周开了台Ubuntu 22.04的阿里实例,SSH上去第一件事就是阿里敲 nginx -v,返回的阿里是 command not found。这跟很多教程里写的阿里"登录后直接配置Nginx"完全不是一回事。选Alibaba Cloud Linux 3的阿里话情况也一样,干净得很。阿里
装Nginx有两条路。阿里一条是阿里用系统包管理器,Ubuntu下就是阿里 apt install nginx,Alibaba Cloud Linux 或 CentOS 系用 dnf install nginx。阿里这条路的阿里优点是省心,systemd服务文件、阿里日志轮转、阿里默认站点目录全都给你配好了。缺点是版本偏旧。Ubuntu 22.04源里的Nginx是1.18,而官方稳定版早就过了1.24。如果你要用HTTP/3或者一些新模块,包管理器装的那个版本可能不够用。
另一条路是加Nginx官方源。以Alibaba Cloud Linux 3为例,先写一个repo文件到 /etc/yum.repos.d/nginx.repo,把baseurl指向 nginx.org/packages/centos/8/$basearch/,然后 dnf install nginx。这样装出来的是主线版本,模块也全。我一般选这条,因为后期加模块编译时不容易踩依赖坑。
装完之后 systemctl start nginx,再 systemctl enable nginx。这两个命令别搞反顺序,先start再enable,不然开机自启配置可能不生效——虽然大多数情况没问题,但我遇到过一回,enable在start之前执行,重启后服务没起来。原因没深究,但后来养成了先start的习惯。
阿里云的安全组是个容易忽略的点。Nginx起来之后,你在服务器上 curl localhost 能返回欢迎页,但从浏览器访问公网IP就是超时。十有八九是安全组没放行80端口。去ECS控制台,找到实例对应的安全组,入方向加一条TCP 80的规则。443同理。这个步骤跟Nginx本身没关系,但新手卡在这里的概率极高。
配置文件的结构值得说一下。/etc/nginx/nginx.conf 是主配置,里面通常有一行 include /etc/nginx/conf.d/*.conf。这意味着你不需要把所有东西都塞进nginx.conf。给每个站点建一个独立的conf文件丢到conf.d目录下,清爽得多。比如建一个 myapp.conf:
server { listen 80; server_name your_domain.com; root /var/www/myapp; index index.html; location / { try_files $uri $uri/ =404; } } 改完配置别急着restart。nginx -t 先测语法。这个命令会告诉你配置文件哪一行有问题。我见过有人直接restart,结果Nginx起不来,线上服务断了才发现是少了个分号。nginx -t 花不了两秒钟,但能省掉很多麻烦。
测试通过后 systemctl reload nginx。用reload而不是restart。reload是平滑重载,现有连接不断;restart是直接杀掉进程再启动,那一瞬间的请求全丢。生产环境上这两个命令的区别很要命。
日志在 /var/log/nginx/ 下面。access.log记录每个请求,error.log记录错误。调502或者404的时候,先看error.log。有一次我配反向代理,一直报502,查了半天后端服务没问题,最后在error.log里看到 connect() to 127.0.0.1:3000 failed (13: Permission denied)。是SELinux在拦。 setsebool -P httpd_can_network_connect 1 解决。这种问题不看日志根本猜不到。
阿里云的Alibaba Cloud Linux 3默认开着SELinux, enforcing模式。Ubuntu默认没装SELinux,所以同样的Nginx配置在Ubuntu上跑得好好的,换到Alibaba Cloud Linux上就可能出各种权限问题。这不是Nginx的锅,但选镜像的时候得心里有数。
最后提一个实际感受:Nginx在阿里云ECS上的性能表现跟实例规格关系很大。1核1G的突发性能实例t6,跑个静态站没问题,但并发一上来CPU积分很快耗尽,响应就慢。2核4G的通用型g7跑同样的配置,压测结果完全是另一个量级。所以别光调Nginx参数,实例规格选对了比什么都强。
本文地址:http://www.79wt.cn/news/481d9599423.html
版权声明
本文仅代表作者观点,不代表本站立场。
本文系作者授权发表,未经许可,不得转载。