Nginx Web 服务

Nginx 部署优势

Nginx 是一款 light-weight、高性能?HTTP 和反向代理服务器,是 Linux 环境下Web 开发的首选方案

1. 安装与管

安装与管
# 安装
sudo yum install -y nginx

# 管理命令
sudo systemctl enable nginx --now
sudo systemctl restart nginx
# 检查语法错误(修改配置后必做!)
sudo nginx -t

2. 核心配置示例

2.1 静态网站托

server {
    listen 80;
    server_name www.example.com;
    root /var/www/html;
    index index.html;

    location / {
        try_files $uri $uri/ =404;
    }
}

2.2 反向代理 (后端应用)

server {
    listen 80;
    server_name api.example.com;

    location / {
        proxy_pass http://127.0.0.1:8080;
        proxy_set_header Host $host;
        proxy_set_header X-Real-IP $remote_addr;
    }
}

3. HTTPS 证书配置

建议将 SSL 密钥存放于/etc/nginx/ssl/ 目录下

server {
    listen 443 ssl;
    server_name www.example.com;

    ssl_certificate /etc/nginx/ssl/fullchain.pem;
    ssl_certificate_key /etc/nginx/ssl/privkey.pem;

    # 安全套件优化
    ssl_protocols TLSv1.2 TLSv1.3;
    ssl_ciphers HIGH:!aNULL:!MD5;
}

常见问题解答

Q: Nginx 启动报错: Address already in use

A: 说明 80 端口被占用了。使用sudo ss -tulnp | grep :80 查找占用该端口的程序,将其停止后再开启 Nginx

Q: 修改配置后网站还是旧的?

A: 1. 确认是否执行。nginx -s reload ? systemctl reload nginx。2. 检查浏览器缓存,试用强制刷新(Ctrl+F5)。

Q: 配置反代后返回 502 Bad Gateway

A: 1. 检查后端程序是否真的运行在指定的端口上?2. 检查防火墙是否允许访问后端端口3. 在麒麟系统上,可能是 SELinux 拦截了,可以尝试 setsebool -P httpd_can_network_connect 1?