Skip to content

Nginx

Nginx 是毛子出品的高性能 HTTP 和反向代理 web 服务器

安装

在 Linux(Ubuntu) 服务器上安装 Nginx

sh
sudo apt update
sudo apt install -y nginx

如果要安装最新版本的 Nginx,参考 "Official Debian/Ubuntu packages",使用 PPA 来安装

shell
sudo add-apt-repository ppa:nginx/stable
sudo apt update
sudo apt install nginx

Nginx 命令

bash
# ---------------------------------
# sudo nginx -s stop    # 停止
# sudo nginx -s quit    # 优雅停止
# sudo nginx -s reload  # 重新加载配置文件
# sudo nginx -s reopen  # 重新打开日志文件
# sudo nginx -c /etc/nginx/nginx.conf # 指定配置文件
# ---------------------------------

操作完成后,可能需要检查相应端口是否打开,否则服务仍然无法访问

bash
SSH_PORT=<xxxx>   # <xxxx> 是新的端口号
sudo firewall-cmd --permanent --zone=public \
  --add-port=${SSH_PORT}/tcp    # 添加新端口
sudo firewall-cmd --reload      # 更新防火墙规则
sudo firewall-cmd --list-ports  # 查看已开放的端口

# sudo firewall-cmd --permanent --zone=public \
#   --remove-port=${SSH_PORT}/tcp # 移除端口

主配置文件

基本配置

Nginx 的配置文件 nginx.conf 可能会在这几个地方: /usr/local/nginx/conf, /etc/nginx, /usr/local/etc/nginx

ubuntu apt 默认安装位置为 /etc/nginx/nginx.conf

配置文件 nginx.conf 的结构

shell
user www-data; # 用户
worker_processes auto;
pid /run/nginx.pid;
include /etc/nginx/modules-enabled/*.conf;

events {
	worker_connections 768;
	# multi_accept on;
}

http {
    ...   
}

#mail {
#	...
#}

其中需要修改的是 userworker_processesuser 是运行 Nginx 的用户,worker_processes 是 Nginx 的工作进程数,一般设置为 auto,表示根据 CPU 核数自动设置

如果不设置用户,Nginx 默认使用 nobody 用户,这个用户没有权限访问文件系统,所以需要修改为 www-data 用户

Nginx 用户权限

Nginx 默认使用 nobody 用户,这个用户没有权限访问文件系统,所以可以建立一个 nginx 用户,然后修改配置文件中的 usernginx 用户

shell

常用配置

HTTP 端口转发

以 http 常用的 80 端口为例,基本配置文件为

shell
server {
    listen 80;
    server_name localhost; 
    access_log /home/ubuntu/nginx/logs/access.log combined;
    error_log /home/ubuntu/nginx/logs/error.log;
}
  • listen 监听端口,http 一般是 80
  • server_name 监听ip。换成服务器 公网IP 或者 域名
  • access_logerror_log 是日志文件,需要保证目录存在 /home/ubuntu/nginx/logs/ ,否则就无法生存日志文件

这时候重新加载数据文件 sudo nginx -s reload

静态站点

文件服务器

参考

⏰ 最后更新于: