Nginx(发音为"engine x")是一款高性能的HTTP和反向代理服务器,也是一个IMAP/POP3/SMTP代理服务器。它具有占用内存少、并发能力强、稳定性高等特点,被广泛用于负载均衡、Web服务、反向代理等场景。
# 更新软件包列表
sudo apt update
# 安装Nginx
sudo apt install nginx
# 启动Nginx服务
sudo systemctl start nginx
# 设置开机自启
sudo systemctl enable nginx
Nginx的主要配置文件通常位于:
- Linux: /etc/nginx/nginx.conf
- Windows: conf/nginx.conf
配置文件主要由以下几部分组成: - 全局块:配置影响nginx全局的指令 - events块:配置影响nginx服务器或与用户的网络连接 - http块:可以嵌套多个server,配置代理,缓存,日志定义等绝大多数功能 - server块:配置虚拟主机的相关参数 - location块:配置请求的路由,以及各种页面的处理情况
# 全局配置
user www-data;
worker_processes auto;
pid /run/nginx.pid;
# 事件模块配置
events {
worker_connections 768;
# multi_accept on;
}
# HTTP模块配置
http {
# 基础设置
sendfile on;
tcp_nopush on;
tcp_nodelay on;
keepalive_timeout 65;
types_hash_max_size 2048;
# MIME类型
include /etc/nginx/mime.types;
default_type application/octet-stream;
# 日志格式
access_log /var/log/nginx/access.log;
error_log /var/log/nginx/error.log;
# Gzip压缩
gzip on;
gzip_disable "msie6";
# 虚拟主机配置
server {
listen 80;
server_name example.com www.example.com;
root /var/www/example.com/html;
index index.html index.htm;
location / {
try_files $uri $uri/ =404;
}
# 静态文件缓存
location ~* \.(jpg|jpeg|png|gif|ico|css|js)$ {
expires 30d;
}
# 禁止访问隐藏文件
location ~ /\. {
deny all;
}
}
}
server {
listen 80;
server_name api.example.com;
location / {
proxy_pass http://localhost:3000;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
}
}
upstream backend {
server backend1.example.com weight=5;
server backend2.example.com;
server backend3.example.com;
server backup.example.com backup;
}
server {
listen 80;
server_name app.example.com;
location / {
proxy_pass http://backend;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
}
}
# 启动Nginx
sudo systemctl start nginx
# 停止Nginx
sudo systemctl stop nginx
# 重启Nginx
sudo systemctl restart nginx
# 重新加载配置(不中断服务)
sudo systemctl reload nginx
# 检查配置语法
sudo nginx -t
# 查看Nginx状态
sudo systemctl status nginx
端口冲突:
sudo netstat -tulnp | grep :80
权限问题:
sudo chown -R www-data:www-data /var/www/example.com
sudo chmod -R 755 /var/www/example.com
403 Forbidden错误:
502 Bad Gateway错误:
通过以上配置和优化,您可以搭建一个高性能、稳定的Nginx服务器,满足各种Web服务需求。