首页
学习
活动
专区
圈层
工具
发布
社区首页 >专栏 >多种方案在Linux中安装nginx环境

多种方案在Linux中安装nginx环境

原创
作者头像
是山河呀
发布2025-02-01 14:16:47
发布2025-02-01 14:16:47
2.3K0
举报
文章被收录于专栏:Linux代码Linux代码

方案一:使用包管理器安装Nginx

1. 更新系统包
代码语言:javascript
复制
sudo apt update && sudo apt upgrade -y 
2. 安装Nginx
代码语言:javascript
复制
sudo apt install nginx -y 
3. 启动Nginx服务
代码语言:javascript
复制
sudo systemctl start nginx 
4. 设置开机启动
代码语言:javascript
复制
sudo systemctl enable nginx 
5. 验证安装

打开浏览器访问http://your_server_ip,看到“Welcome to nginx!”页面即表示安装成功。

方案二:从源码编译安装Nginx

1. 安装依赖工具
代码语言:javascript
复制
sudo apt install build-essential libpcre3 libpcre3-dev zlib1g zlib1g-dev libssl-dev -y 
2. 下载并解压Nginx源码
代码语言:javascript
复制
wget http://nginx.org/download/nginx-1.24.0.tar.gz  
tar -zxvf nginx-1.24.0.tar.gz  
cd nginx-1.24.0 
3. 编译并安装
代码语言:javascript
复制
./configure --prefix=/usr/local/nginx 
make 
sudo make install 
4. 创建启动脚本
代码语言:javascript
复制
sudo nano /etc/init.d/nginx 

添加以下内容:

代码语言:javascript
复制
#!/bin/sh 
nginx="/usr/local/nginx/sbin/nginx"
case "$1" in 
    start)
        $nginx 
        ;;
    stop)
        $nginx -s stop 
        ;;
    restart)
        $nginx -s reload 
        ;;
esac 
exit 0 

保存后赋予执行权限:

代码语言:javascript
复制
sudo chmod +x /etc/init.d/nginx 
5. 启动Nginx
代码语言:javascript
复制
sudo /etc/init.d/nginx start 

方案三:使用第三方仓库安装Nginx

1. 添加Nginx官方PPA仓库
代码语言:javascript
复制
sudo add-apt-repository ppa:nginx/stable 
sudo apt update 
2. 安装Nginx
代码语言:javascript
复制
sudo apt install nginx -y 
3. 启动Nginx服务
代码语言:javascript
复制
sudo systemctl start nginx 

配置Nginx

1. 编辑配置文件
代码语言:javascript
复制
sudo nano /etc/nginx/nginx.conf  

主要配置包括:

代码语言:javascript
复制
user www-data;
worker_processes auto;
error_log /var/log/nginx/error.log; 
pid /run/nginx.pid; 
 
events {
    worker_connections 768;
}
 
http {
    include mime.types; 
    default_type application/octet-stream;
    sendfile on;
    tcp_nopush on;
    keepalive_timeout 65;
    gzip on;
 
    server {
        listen 80 default_server;
        listen [::]:80 default_server;
        root /var/www/html;
        index index.html  index.htm; 
 
        server_name your_domain_or_ip;
 
        location / {
            try_files $uri $uri/ =404;
        }
    }
}
2. 创建虚拟主机配置
代码语言:javascript
复制
sudo nano /etc/nginx/sites-available/my_site 

添加内容:

代码语言:javascript
复制
server {
    listen 80;
    server_name example.com  www.example.com; 
 
    root /var/www/example.com/public_html; 
    index index.html  index.htm; 
 
    location / {
        try_files $uri $uri/ =404;
    }
 
    location ~ /\.ht {
        deny all;
    }
}
3. 启用配置并测试
代码语言:javascript
复制
sudo ln -s /etc/nginx/sites-available/my_site /etc/nginx/sites-enabled/
sudo nginx -t 
sudo systemctl reload nginx 

配置SSL证书

1. 使用Let's Encrypt获取证书
代码语言:javascript
复制
sudo apt install certbot python3-certbot-nginx -y 
sudo certbot --nginx -d example.com  -d www.example.com  
2. 更新配置文件以支持HTTPS
代码语言:javascript
复制
server {
    listen 443 ssl http2;
    server_name example.com  www.example.com; 
 
    ssl_certificate /etc/letsencrypt/live/example.com/fullchain.pem; 
    ssl_certificate_key /etc/letsencrypt/live/example.com/privkey.pem; 
 
    # 其他配置...
}

性能优化

1. 调整工作进程和连接数
代码语言:javascript
复制
worker_processes auto;
events {
    worker_connections 1024;
}
2. 启用gzip压缩
代码语言:javascript
复制
gzip on;
gzip_types text/plain text/css application/json application/javascript text/xml application/xml application/xml+rss text/javascript;

反向代理与负载均衡

1. 配置反向代理
代码语言:javascript
复制
upstream backend {
    server backend1.example.com; 
    server backend2.example.com; 
}
 
server {
    listen 80;
    server_name proxy.example.com; 
 
    location / {
        proxy_pass http://backend;
        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;
    }
}
2. 配置负载均衡策略
代码语言:javascript
复制
upstream backend {
    server backend1.example.com  weight=3;
    server backend2.example.com  weight=2;
    server backend3.example.com  down;
}

缓存配置

1. 配置缓存路径
代码语言:javascript
复制
proxy_cache_path /var/cache/nginx/cache_one levels=1:2 keys_zone=cache_one:10m max_size=1g inactive=60m use_temp_path=off;
2. 应用缓存到location块
代码语言:javascript
复制
location / {
    proxy_pass http://backend;
    proxy_cache cache_one;
    proxy_cache_valid 200 404;
}

日志管理

1. 配置错误日志
代码语言:javascript
复制
error_log /var/log/nginx/error.log  notice;
2. 配置访问日志
代码语言:javascript
复制
access_log /var/log/nginx/access.log  combined;

监控与维护

1. 使用Prometheus监控

安装Prometheus并配置抓取目标:

代码语言:javascript
复制
scrape_configs:
  - job_name: 'nginx'
    static_configs:
      - targets: ['localhost:9113']
2. 集成Grafana仪表盘

导入Nginx相关的仪表盘模板,可视化监控数据。

测试与验证

1. 测试配置语法
代码语言:javascript
复制
sudo nginx -t 
2. 检查服务状态
代码语言:javascript
复制
sudo systemctl status nginx 

常见问题解决

  • 403 Forbidden错误:检查文件权限和SELinux设置。
  • 无法访问网站:确保防火墙开放80和443端口。
  • SSL配置错误:检查证书路径和权限。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 方案一:使用包管理器安装Nginx
    • 1. 更新系统包
    • 2. 安装Nginx
    • 3. 启动Nginx服务
    • 4. 设置开机启动
    • 5. 验证安装
  • 方案二:从源码编译安装Nginx
    • 1. 安装依赖工具
    • 2. 下载并解压Nginx源码
    • 3. 编译并安装
    • 4. 创建启动脚本
    • 5. 启动Nginx
  • 方案三:使用第三方仓库安装Nginx
    • 1. 添加Nginx官方PPA仓库
    • 2. 安装Nginx
    • 3. 启动Nginx服务
  • 配置Nginx
    • 1. 编辑配置文件
    • 2. 创建虚拟主机配置
    • 3. 启用配置并测试
  • 配置SSL证书
    • 1. 使用Let's Encrypt获取证书
    • 2. 更新配置文件以支持HTTPS
  • 性能优化
    • 1. 调整工作进程和连接数
    • 2. 启用gzip压缩
  • 反向代理与负载均衡
    • 1. 配置反向代理
    • 2. 配置负载均衡策略
  • 缓存配置
    • 1. 配置缓存路径
    • 2. 应用缓存到location块
  • 日志管理
    • 1. 配置错误日志
    • 2. 配置访问日志
  • 监控与维护
    • 1. 使用Prometheus监控
    • 2. 集成Grafana仪表盘
  • 测试与验证
    • 1. 测试配置语法
    • 2. 检查服务状态
  • 常见问题解决
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档