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 {
# ...
#}
其中需要修改的是 user
和 worker_processes
,user
是运行 Nginx 的用户,worker_processes
是 Nginx 的工作进程数,一般设置为 auto
,表示根据 CPU 核数自动设置
如果不设置用户,Nginx 默认使用 nobody
用户,这个用户没有权限访问文件系统,所以需要修改为 www-data
用户
Nginx 用户权限
Nginx 默认使用 nobody
用户,这个用户没有权限访问文件系统,所以可以建立一个 nginx 用户,然后修改配置文件中的 user
为 nginx
用户
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_log
和error_log
是日志文件,需要保证目录存在/home/ubuntu/nginx/logs/
,否则就无法生存日志文件
这时候重新加载数据文件 sudo nginx -s reload