Nginx 多站点配置实例详解
发布时间 - 2026-01-11 00:21:34 点击率:次Nginx 多站点配置实例详解

在一台 VPS 上,我们有时候需要同时跑几个 virtualenv。比如 virtualenv app1 跑的是 Django 的一个应用,而 virtualenv app2 跑的是 Tornado。那么如何配置 Nginx,让它同时支持这两个 virtualenv 的运行呢?
首先是 Nginx 的主配置,位于 etc/nginx/ngnix.conf,让它保持默认就行:
user nginx;
worker_processes 1;
error_log /var/log/nginx/error.log warn;
pid /var/run/nginx.pid;
events {
worker_connections 1024;
}
http {
include /etc/nginx/mime.types;
default_type application/octet-stream;
log_format main '$remote_addr - $remote_user [$time_local] "$request" '
'$status $body_bytes_sent "$http_referer" '
'"$http_user_agent" "$http_x_forwarded_for"';
access_log /var/log/nginx/access.log main;
sendfile on;
#tcp_nopush on;
keepalive_timeout 65;
#gzip on;
server {
listen 80;
server_name 112.124.7.216;
#server_name localhost;
#if ($host != 'www.nowamagic.net' ) {
# rewrite ^/(.*)$ http://www.nowamagic.net/$1 permanent;
#}
access_log /home/nowamagic/logs/access.log;
error_log /home/nowamagic/logs/error.log;
#root /root/nowamagic_venv/nowamagic_pj;
location / {
uwsgi_pass 127.0.0.1:8077;
#include uwsgi_params;
include /etc/nginx/uwsgi_params;
#uwsgi_pass 127.0.0.1:8077;
#uwsgi_param UWSGI_SCRIPT index;
#uwsgi_param UWSGI_PYHOME $document_root;
#uwsgi_param UWSGI_CHDIR $document_root;
}
location ~ \.php$ {
#root html;
root /var/www/html;
fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params;
}
access_log off;
}
include /etc/nginx/conf.d/*.conf;
}
注意到这一句,include /etc/nginx/conf.d/*.conf; 它会加载 conf.d 文件夹下的所有配置文件。那么接下来的事情就简单了,我们设计两个 .conf ,一个是 django 的配置,一个是 tornado 的配置。
1. app1_django.conf
server {
listen 80;
server_name 112.124.7.216;
#server_name localhost;
#if ($host != 'www.imofa.net' ) {
# rewrite ^/(.*)$ http://www.imofa.net/$1 permanent;
#}
access_log /home/nowamagic/logs/access.log;
error_log /home/nowamagic/logs/error.log;
#root /root/nowamagic_venv/nowamagic_pj;
location / {
uwsgi_pass 127.0.0.1:8077;
#include uwsgi_params;
include /etc/nginx/uwsgi_params;
#uwsgi_pass 127.0.0.1:8077;
#uwsgi_param UWSGI_SCRIPT index;
#uwsgi_param UWSGI_PYHOME $document_root;
#uwsgi_param UWSGI_CHDIR $document_root;
}
location ~ \.php$ {
#root html;
root /var/www/html;
fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params;
}
access_log off;
}
下面是 tornado 的配置:
2. app2_tornado.conf
upstream tornado {
server 127.0.0.1:8888;
}
server {
listen 80;
root /root/nmapp2_venv;
index index.py index.html;
server_name server;
location / {
#if (!-e $request_filename) {
# rewrite ^/(.*)$ /index.py/$1 last;
#}
}
location ~ /index\.py {
proxy_pass_header Server;
proxy_set_header Host $http_host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Scheme $scheme;
proxy_pass http://tornado;
}
}
重启 Nginx:
service nginx restart
OK,两个虚拟环境的 app 都能访问了。
感谢阅读,希望能帮助到大家,谢谢大家,对本站的支持!
# Nginx多站点配置
# Nginx多站点配置实例
# Nginx如何实现多站点配置
# nginx 多站点配置方法集合
# 详解Nginx配置多站点需要踩的坑
# Nginx 的多站点配置方案
# Nginx+Tomcat多站点部署的方法
# docker Nginx PHP-FPM单机多站点布署的方法
# Nginx环境下WordPress的多站点功能配置详解
# Nginx多ip部署多站点的实现步骤
# 的是
# 让它
# 几个
# 这一
# 都能
# 一台
# 这两个
# 就行
# 希望能
# 注意到
# 谢谢大家
# 重启
# 它会
# 配置文件
# 加载
# remote_user
# main
# remote_addr
# types
# default_type
相关栏目:
【
网站优化151355 】
【
网络推广146373 】
【
网络技术251813 】
【
AI营销90571 】
相关推荐:
专业企业网站设计制作公司,如何理解商贸企业的统一配送和分销网络建设?
电商网站制作多少钱一个,电子商务公司的网站制作费用计入什么科目?
Laravel与Inertia.js怎么结合_使用Laravel和Inertia构建现代单页应用
香港服务器网站卡顿?如何解决网络延迟与负载问题?
如何快速生成高效建站系统源代码?
Laravel Seeder怎么填充数据_Laravel数据库填充器的使用方法与技巧
清除minerd进程的简单方法
Laravel如何使用软删除(Soft Deletes)功能_Eloquent软删除与数据恢复方法
标题:Vue + Vuex 项目中正确使用 JWT 进行身份认证的实践指南
企业在线网站设计制作流程,想建设一个属于自己的企业网站,该如何去做?
Laravel Admin后台管理框架推荐_Laravel快速开发后台工具
如何为不同团队 ID 动态生成多个“认领值班”按钮
如何在建站主机中优化服务器配置?
Laravel怎么返回JSON格式数据_Laravel API资源Response响应格式化【技巧】
如何制作一个表白网站视频,关于勇敢表白的小标题?
详解MySQL数据库的安装与密码配置
iOS发送验证码倒计时应用
原生JS实现图片轮播切换效果
QQ浏览器网页版登录入口 个人中心在线进入
INTERNET浏览器怎样恢复关闭标签页_INTERNET浏览器标签恢复快捷键与方法【指南】
在线制作视频的网站有哪些,电脑如何制作视频短片?
Laravel怎么实现软删除SoftDeletes_Laravel模型回收站功能与数据恢复【步骤】
如何自定义safari浏览器工具栏?个性化设置safari浏览器界面教程【技巧】
Laravel队列任务超时怎么办_Laravel Queue Timeout设置详解
Laravel怎么实现模型属性的自动加密
图册素材网站设计制作软件,图册的导出方式有几种?
Laravel怎么生成二维码图片_Laravel集成Simple-QrCode扩展包与参数设置【实战】
Laravel的HTTP客户端怎么用_Laravel HTTP Client发起API请求教程
香港服务器租用每月最低只需15元?
敲碗10年!Mac系列传将迎来「触控与联网」双革新
如何快速登录WAP自助建站平台?
如何在阿里云虚拟机上搭建网站?步骤解析与避坑指南
浅谈javascript alert和confirm的美化
Laravel如何记录自定义日志?(Log频道配置)
如何用y主机助手快速搭建网站?
JavaScript中的标签模板是什么_它如何扩展字符串功能
Python结构化数据采集_字段抽取解析【教程】
Python数据仓库与ETL构建实战_Airflow调度流程详解
北京网站制作的公司有哪些,北京白云观官方网站?
如何在建站宝盒中设置产品搜索功能?
Linux虚拟化技术教程_KVMQEMU虚拟机安装与调优
简历在线制作网站免费版,如何创建个人简历?
广州网站制作公司哪家好一点,广州欧莱雅百库网络科技有限公司官网?
高配服务器限时抢购:企业级配置与回收服务一站式优惠方案
如何实现javascript表单验证_正则表达式有哪些实用技巧
如何注册花生壳免费域名并搭建个人网站?
C语言设计一个闪闪的圣诞树
Win11应用商店下载慢怎么办 Win11更改DNS提速下载【修复】
Laravel怎么配置S3云存储驱动_Laravel集成阿里云OSS或AWS S3存储桶【教程】
Win11怎么设置默认图片查看器_Windows11照片应用关联设置

