Nginx

2022-03-30

Nginx 是一个高性能的 HTTP 和反向代理服务器。

安装

Terminal window
sudo apt install nginx

如果希望通过 [[Docker Compose]] 安装,配置可参考:[[nginx.yml]]

参数

  • -t: 检测配置文件
  • -s: 发送信号
    • stop: 停止
    • reload: 重新加载

Nginx 重启或者停止也可以使用 [[systemctl]] 命令:

  • systemctl restart nginx: 重启
  • systemctl stop nginx: 停止
  • systemctl start nginx: 启动

使用

配置

默认配置文件: /etc/nginx/nginx.conf, 如果文件配置内存在 include /etc/nginx/conf.d/*.conf; 语句, 可以自动加载 conf.d 目录下 conf hb 后缀的配置.

SSL

server {
listen 443 ssl;
listen [::]:443 ssl ipv6only=on;
ssl_certificate /etc/nginx/cert/fullchain.pem;
ssl_certificate_key /etc/nginx/cert/privkey.pem;
}
# http 请求转 https
server {
listen 80;
server_name i.immwind.com www.i.immwind.com;
return 301 https://$host$request_uri;
}

问题

一些常见问题可以先查看错误日志:tail -f /var/log/nginx/error.log

80 端口已运行

通过 [[apt]] 安装时,在 /etc/nginx/sites-enabled/default 有个默认的配置文件,删除即可(原文件在 sites-vailable)。

docker-compose 无法转发到其他容器

通过 [[Docker Compose]] 安装的 Nginx 转发到其他容器时总是失败。

主要是在仅有公网 IP 的场景下才会出现,用容器名称互相访问解决:

location / {
proxy_pass http://one-api:3000;
}