作者信息:https://home.cnblogs.com/u/huangjiabobk

在运维工作中,如何用nginx部署网站?

在运维工作中,使用 Nginx 部署网站是一个常见且重要的任务。Nginx 是一款高性能的 HTTP 和反向代理服务器,广泛用于托管静态网站、动态网站以及作为负载均衡器。以下是详细步骤,帮助你使用 Nginx 部署网站。

1. 安装 Nginx
(1)基于 Debian/Ubuntu 的系统
sudo apt update
sudo apt install nginx
(2)基于 Red Hat/CentOS 的系统
sudo yum install epel-release
sudo yum install nginx
(3)验证安装

安装完成后,启动 Nginx 并验证其是否正常运行:

sudo systemctl start nginx
sudo systemctl enable nginx # 设置开机自启
sudo systemctl status nginx # 查看状态

访问服务器的 IP 地址或域名,如果看到 Nginx 的欢迎页面,则说明安装成功。

2. 配置 Nginx

Nginx 的配置文件通常位于 /etc/nginx/nginx.conf,虚拟主机的配置文件位于 /etc/nginx/conf.d//etc/nginx/sites-available/。以下是常见的配置方式。

(1)配置静态网站

假设你的静态网站文件存放在 /var/www/mywebsite 目录下,可以创建一个虚拟主机配置文件:

  1. 创建网站目录

    sudo mkdir -p /var/www/mywebsite
    sudo chown -R www-data:www-data /var/www/mywebsite # 设置权限
  2. 创建配置文件
    /etc/nginx/conf.d/ 目录下创建一个配置文件,例如 mywebsite.conf

    server {
    listen 80; # 监听端口
    server_name mywebsite.com; # 网站域名
    root /var/www/mywebsite; # 网站根目录
    index index.html; # 默认页面
    location / {
    try_files $uri $uri/ =404; # 尝试加载文件,否则返回 404
    }
    }
  3. 测试配置文件

    sudo nginx -t
  4. 重新加载 Nginx

    sudo nginx -s reload
(2)配置动态网站(如 PHP)

如果需要部署动态网站(如 PHP),需要安装 PHP-FPM 并配置 Nginx 以支持 PHP。

  1. 安装 PHP-FPM

    sudo apt install php-fpm # Debian/Ubuntu
    sudo yum install php-fpm # Red Hat/CentOS
  2. 修改虚拟主机配置
    在 Nginx 配置文件中,添加对 PHP 的支持:

    server {
    listen 80;
    server_name mywebsite.com;
    root /var/www/mywebsite;
    index index.php index.html;
    location / {
    try_files $uri $uri/ =404;
    }
    location ~ \.php$ {
    include snippets/fastcgi-php.conf; # 包含 PHP-FPM 配置
    fastcgi_pass unix:/var/run/php/php7.4-fpm.sock; # PHP-FPM 套接字路径
    }
    }
  3. 测试并重新加载 Nginx

    sudo nginx -t
    sudo nginx -s reload
3. 部署网站文件
(1)静态文件

将网站的静态文件(如 HTML、CSS、JavaScript、图片等)放置在网站根目录下(如 /var/www/mywebsite)。

(2)动态文件

如果网站是动态的(如 PHP、Python 等),确保后端代码也放置在网站根目录下,并确保 Nginx 配置正确地转发请求到后端服务。

4. 配置域名解析(可选)

如果使用域名访问网站,需要将域名解析到服务器的 IP 地址。可以通过 DNS 服务提供商(如 Cloudflare、阿里云 DNS 等)配置域名解析。

5. 配置 HTTPS(可选)

为了提高安全性,建议为网站配置 HTTPS。可以使用 Let's Encrypt 提供的免费 SSL 证书。

  1. 安装 Certbot

    sudo apt install certbot python3-certbot-nginx # Debian/Ubuntu
    sudo yum install certbot python3-certbot-nginx # Red Hat/CentOS
  2. 获取并安装 SSL 证书

    sudo certbot --nginx -d mywebsite.com
  3. 自动续期
    Certbot 会自动配置 SSL 证书,并在 /etc/nginx/conf.d/ 下生成 SSL 配置文件。确保定期续期证书:

    sudo certbot renew --dry-run
6. 配置日志和监控
(1)日志

Nginx 的日志文件通常位于 /var/log/nginx/,包括访问日志和错误日志。可以通过修改配置文件调整日志格式:

access_log /var/log/nginx/mywebsite.access.log;
error_log /var/log/nginx/mywebsite.error.log;
(2)监控

可以使用工具(如 Prometheus、Grafana)监控 Nginx 的性能指标,或者使用日志分析工具(如 ELK Stack)分析日志。

7. 注意事项
  1. 文件权限
    确保网站目录和文件的权限正确,避免安全问题:

    sudo chown -R www-data:www-data /var/www/mywebsite
    sudo chmod -R 755 /var/www/mywebsite
  2. 备份配置文件
    在修改配置文件之前,建议备份原始文件:

    sudo cp /etc/nginx/nginx.conf /etc/nginx/nginx.conf.bak
  3. 测试配置
    每次修改配置后,使用 nginx -t 检查语法,并通过 nginx -s reload 重新加载配置。

8. 总结

使用 Nginx 部署网站的步骤包括:

  1. 安装 Nginx。
  2. 配置虚拟主机(静态或动态网站)。
  3. 部署网站文件到指定目录。
  4. 配置域名解析(可选)。
  5. 配置 HTTPS(可选)。
  6. 配置日志和监控。

综上所述,通过以上步骤,可以高效地使用 Nginx 部署网站,并确保其安全、稳定运行。

posted @   黄嘉波  阅读(23)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 25岁的心里话
· 闲置电脑爆改个人服务器(超详细) #公网映射 #Vmware虚拟网络编辑器
· 零经验选手,Compose 一天开发一款小游戏!
· 因为Apifox不支持离线,我果断选择了Apipost!
· 通过 API 将Deepseek响应流式内容输出到前端
历史上的今天:
2024-03-06 在Docker中,Docker容器有几种状态?
2024-03-06 在Docker中,Docker可以用来做什么?
2024-03-06 在Docker中,Docker和虚拟机有什么不同?
2024-03-06 在Docker中,stage和step有什么区别?
2024-03-06 在Docker中,镜像层级压缩如何实现?
版权声明:原创作品,谢绝转载!否则将追究法律责任。--作者 黄嘉波
点击右上角即可分享
微信分享提示