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?