gpt4 book ai didi

django - Nginx + Django + Phmyadmin 配置

转载 作者:行者123 更新时间:2023-12-02 06:34:45 26 4
gpt4 key购买 nike

我已将服务器迁移到亚马逊 ec2,并尝试在那里设置以下环境:

Nginx 在前端提供静态内容,传递给 django 以获取动态内容。我也想在这个设置中使用 phpmyadmin 。

我不是服务器管理员,所以我只是按照一些教程来启动并运行 nginx 和 django。但我已经工作了两天试图将 phpmyadmin 连接到此设置,但没有成功。我现在正在发送我当前的服务器配置,我如何在这里提供 phpmyadmin 服务?

server {
listen 80;
server_name localhost;

access_log /opt/django/logs/nginx/vc_access.log;
error_log /opt/django/logs/nginx/vc_error.log;

# no security problem here, since / is always passed to upstream
root /opt/django/;
# serve directly - analogous for static/staticfiles
location /media/ {
# if asset versioning is used
if ($query_string) {
expires max;
}
}
location /admin/media/ {
# this changes depending on your python version
root /path/to/test/lib/python2.7/site-packages/django/contrib;
}
location /static/ {
# if asset versioning is used
if ($query_string) {
expires max;
}
}
location / {
proxy_pass_header Server;
proxy_set_header Host $http_host;
proxy_redirect off;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Scheme $scheme;
proxy_connect_timeout 10;
proxy_read_timeout 10;
proxy_pass http://localhost:8000/;
}
# what to serve if upstream is not available or crashes
error_page 500 502 503 504 /media/50x.html;
}

最佳答案

这个问题应该属于http://serverfault.com

尽管如此,您应该做的第一件事是为您的 phpmyadmin 配置一个单独的子域,以便于管理。

因此将会有两个使用 nginx 作为反向代理运行的应用程序,一个是 nginx server对于您的上述 django 应用程序和另一个 server (也称为虚拟主机)您的 phpmyadmin 的配置与此类似:-

server {
server_name phpmyadmin.<domain.tld>;
access_log /srv/http/<domain>/logs/phpmyadmin.access.log;
error_log /srv/http/<domain.tld>/logs/phpmyadmin.error.log;

location / {
root /srv/http/<domain.tld>/public_html/phpmyadmin;
index index.html index.htm index.php;
}

location ~ \.php$ {
root /srv/http/<domain.tld>/public_html/phpmyadmin;
fastcgi_pass unix:/var/run/php-fpm/php-fpm.sock;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME /srv/http/<domain.tld>/public_html/phpmyadmin/$fastcgi_script_name;
include fastcgi_params;
}
}

您的每个server配置可以通过server_name指向不同的域名配置。在此示例中,server_name phpmyadmin.<domain.tld>;

以下示例取自 http://wiki.nginx.org/ServerBlockExample

http {
index index.html;

server {
server_name www.domain1.com;
access_log logs/domain1.access.log main;

root /var/www/domain1.com/htdocs;
}

server {
server_name www.domain2.com;
access_log logs/domain2.access.log main;

root /var/www/domain2.com/htdocs;
}
}

如您所见,有两个 server 的声明里面大http括号。 server的每个声明应该包含 django 的配置和 phpmyadmin 的配置。

2 个“虚拟主机”(“服务器”实例)由 nginx 负责。

关于django - Nginx + Django + Phmyadmin 配置,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13218802/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com