• 精创网络
  • 精创网络
  • 首页
  • 产品优势
  • 产品价格
  • 产品功能
  • 新闻中心
  • 关于我们
  • 在线客服
  • 登录
  • DDoS防御和CC防御
  • 精创网络云防护,专注于大流量DDoS防御和CC防御。可防止SQL注入,以及XSS等网站安全漏洞的利用。
  • 免费试用
  • 新闻中心
  • 关于我们
  • 资讯动态
  • 帮助文档
  • 白名单保护
  • 常见问题
  • 政策协议
  • 帮助文档
  • 如何在Ubuntu上使用Nginx为多个网站配置反向代理
  • 来源:www.jcwlyf.com浏览:38更新:2025-11-17
  • 在Ubuntu系统上,利用Nginx为多个网站配置反向代理是一项非常实用的技能,它能够帮助我们高效地管理多个网站,提升服务器的性能和安全性。本文将详细介绍如何在Ubuntu上使用Nginx为多个网站配置反向代理。

    1. 安装Nginx

    首先,我们需要在Ubuntu系统上安装Nginx。打开终端,输入以下命令来更新系统的软件包列表:

    sudo apt update

    更新完成后,使用以下命令安装Nginx:

    sudo apt install nginx

    安装过程中,系统会提示你确认安装,输入“Y”并回车即可。安装完成后,Nginx会自动启动。你可以使用以下命令来验证Nginx是否正在运行:

    sudo systemctl status nginx

    如果看到“active (running)”字样,说明Nginx已经成功启动。

    2. 配置Nginx反向代理

    在配置反向代理之前,我们需要了解一些基本概念。反向代理是指服务器接收客户端的请求,然后将请求转发到内部的服务器,并将内部服务器的响应返回给客户端。这样可以隐藏内部服务器的真实地址,提高安全性。

    接下来,我们将为两个示例网站(example1.com和example2.com)配置反向代理。首先,创建Nginx的配置文件。在Ubuntu中,Nginx的配置文件通常存放在“/etc/nginx/sites-available/”目录下。使用以下命令创建一个新的配置文件:

    sudo nano /etc/nginx/sites-available/example1.com

    在打开的文件中,输入以下内容:

    server {
        listen 80;
        server_name example1.com;
    
        location / {
            proxy_pass http://127.0.0.1:8080;
            proxy_set_header Host $host;
            proxy_set_header X-Real-IP $remote_addr;
            proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        }
    }

    上述配置文件的含义如下:

    listen 80;:表示监听80端口,即HTTP协议的默认端口。

    server_name example1.com;:指定服务器的域名。

    proxy_pass http://127.0.0.1:8080;:将请求转发到本地的8080端口。

    proxy_set_header:设置请求头,确保后端服务器能够获取到正确的客户端信息。

    保存并关闭文件。然后,使用以下命令创建一个符号链接,将配置文件链接到“/etc/nginx/sites-enabled/”目录下:

    sudo ln -s /etc/nginx/sites-available/example1.com /etc/nginx/sites-enabled/

    同样的方法,为example2.com创建配置文件:

    sudo nano /etc/nginx/sites-available/example2.com

    在文件中输入以下内容:

    server {
        listen 80;
        server_name example2.com;
    
        location / {
            proxy_pass http://127.0.0.1:8081;
            proxy_set_header Host $host;
            proxy_set_header X-Real-IP $remote_addr;
            proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        }
    }

    保存并关闭文件,然后创建符号链接:

    sudo ln -s /etc/nginx/sites-available/example2.com /etc/nginx/sites-enabled/

    3. 检查配置文件的语法

    在重新加载Nginx之前,我们需要检查配置文件的语法是否正确。使用以下命令进行检查:

    sudo nginx -t

    如果输出结果显示“syntax is ok”和“test is successful”,说明配置文件的语法没有问题。

    4. 重新加载Nginx

    当配置文件的语法检查通过后,我们可以重新加载Nginx,使配置生效。使用以下命令:

    sudo systemctl reload nginx

    5. 配置域名解析

    为了让客户端能够通过域名访问我们的网站,我们需要配置域名解析。如果你使用的是域名注册商提供的DNS服务,登录到域名管理界面,添加两条A记录,将example1.com和example2.com指向服务器的公网IP地址。

    如果你使用的是本地测试环境,可以修改本地的hosts文件。在Windows系统中,hosts文件位于“C:\Windows\System32\drivers\etc\hosts”;在Linux和macOS系统中,hosts文件位于“/etc/hosts”。打开hosts文件,添加以下内容:

    服务器公网IP地址 example1.com
    服务器公网IP地址 example2.com

    保存并关闭文件。

    6. 测试反向代理

    现在,我们可以在浏览器中输入example1.com和example2.com来测试反向代理是否正常工作。如果一切配置正确,浏览器将显示本地8080和8081端口上运行的网站内容。

    7. 配置HTTPS

    为了提高网站的安全性,我们建议为网站配置HTTPS。可以使用Let's Encrypt来免费获取SSL证书。首先,安装Certbot:

    sudo apt install certbot python3-certbot-nginx

    安装完成后,使用以下命令获取SSL证书:

    sudo certbot --nginx -d example1.com -d example2.com

    Certbot会自动检测Nginx的配置文件,并为指定的域名获取SSL证书。在获取证书的过程中,Certbot会提示你输入一些信息,按照提示操作即可。

    获取证书后,Certbot会自动更新Nginx的配置文件,将HTTP请求重定向到HTTPS。重新加载Nginx使配置生效:

    sudo systemctl reload nginx

    现在,在浏览器中输入https://example1.com和https://example2.com,你会看到浏览器地址栏显示绿色的锁图标,说明网站已经成功配置了HTTPS。

    8. 优化Nginx配置

    为了提高Nginx的性能和安全性,我们可以对Nginx的配置进行一些优化。以下是一些常见的优化建议:

    调整worker_processes和worker_connections:在“/etc/nginx/nginx.conf”文件中,调整“worker_processes”和“worker_connections”的值,根据服务器的硬件配置进行合理设置。

    启用Gzip压缩:在“/etc/nginx/nginx.conf”文件中,添加以下内容:

    gzip on;
    gzip_types text/plain text/css application/json application/javascript text/xml application/xml application/xml+rss text/javascript;

    这样可以压缩网站的静态资源,减少带宽消耗。

    设置缓存:在Nginx的配置文件中,添加缓存设置,减少对后端服务器的请求。例如:

    proxy_cache_path /var/cache/nginx levels=1:2 keys_zone=my_cache:10m max_size=100m inactive=60m use_temp_path=off;
    server {
        ...
        location / {
            proxy_cache my_cache;
            proxy_cache_valid 200 302 60m;
            proxy_cache_valid 404 1m;
            ...
        }
    }

    通过以上步骤,我们详细介绍了如何在Ubuntu上使用Nginx为多个网站配置反向代理,包括安装Nginx、配置反向代理、检查语法、重新加载Nginx、配置域名解析、测试反向代理、配置HTTPS以及优化Nginx配置等内容。希望本文能够帮助你成功搭建一个高效、安全的多网站反向代理环境。

  • 关于我们
  • 关于我们
  • 服务条款
  • 隐私政策
  • 新闻中心
  • 资讯动态
  • 帮助文档
  • 网站地图
  • 服务指南
  • 购买流程
  • 白名单保护
  • 联系我们
  • QQ咨询:189292897
  • 电话咨询:16725561188
  • 服务时间:7*24小时
  • 电子邮箱:admin@jcwlyf.com
  • 微信咨询
  • Copyright © 2025 All Rights Reserved
  • 精创网络版权所有
  • 皖ICP备2022000252号
  • 皖公网安备34072202000275号