当前位置 主页 > 服务器问题 > nginx问题汇总 >

    Nginx 多站点配置实例详解

    栏目:nginx问题汇总 时间:2018-10-08 16:22

    这篇文章主要介绍了Nginx 多站点配置实例详解的相关资料,需要的朋友可以参考下

    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 的配置: