我真的被困在这里,在相关的post里找不到帮助,这是我第一次和nginx打交道。 我在Synology NAS上安装了一个运行nginx的“Moodle”安装程序,并希望通过域名从外部访问,即我不想使用公共IP。 我已经有了一个域名(让我们说mymoodle.com),并添加了一个“Alogging”到这个域指向我的路由器的公共IP。 当我在浏览器中input“mymoodle.com”时,它指向了Synologynetworking文件夹的根目录,在我的情况下,
/var/services/web/
并包含以下内容:
index.html moodle phpMyAdmin web_images
和我的浏览器基本上呈现index.html,所以我的Alogging似乎按预期工作,即mymoodle.com指向该文件夹中的index.html。 但我希望mymoodle.com指向moodle子文件夹(其中包含一个index.php文件)。
我发现Moodle的以下nginxconfiguration文件:
/etc/nginx/conf.d/www.Moodle.conf
这看起来像:
location ^~ /moodle { include proxy.conf; proxy_read_timeout 3600s; proxy_pass http://127.0.0.1:914; }
我尝试了一堆设置,但似乎没有工作。 我最后的尝试是这样的:
server { server_name moodle.trucker.in; root /var/services/web/moodle; }
但当然没有成功。 / etc / nginx /的内容如下所示
ash-4.3# ls -l /etc/nginx/ total 52 lrwxrwxrwx 1 root root 20 Oct 9 12:13 app.d -> /var/tmp/nginx/app.d lrwxrwxrwx 1 root root 27 Oct 9 12:13 conf.d -> /usr/local/etc/nginx/conf.d -rw-r--r-- 1 root root 1077 Jul 13 00:42 fastcgi.conf -rw-r--r-- 1 root root 1007 Jul 13 00:42 fastcgi_params -rw-r--r-- 1 root root 2837 Jul 13 00:42 koi-utf -rw-r--r-- 1 root root 2223 Jul 13 00:42 koi-win -rw-r--r-- 1 root root 3957 Jul 13 00:42 mime.types -rw-r--r-- 1 root root 9043 Oct 25 21:13 nginx.conf -rw-r--r-- 1 root root 3491 Jul 13 00:31 nginx.conf.default -rw-r--r-- 1 root root 277 Jul 13 00:31 proxy.conf -rw-r--r-- 1 root root 1204 Jul 13 00:42 scgi_params lrwxrwxrwx 1 root root 34 Oct 9 12:13 sites-enabled -> /usr/local/etc/nginx/sites-enabled -rw-r--r-- 1 root root 664 Jul 13 00:42 uwsgi_params -rw-r--r-- 1 root root 3610 Jul 13 00:42 win-utf
这是根据请求的nginx.conf文件:
worker_processes auto; #worker_cpu_affinity auto; worker_rlimit_nofile 65535; include conf.d/main.conf; events { use epoll; multi_accept on; accept_mutex on; worker_connections 1024; include conf.d/events.conf; } http { include 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 off; #access_log syslog:server=unix:/dev/log,facility=local7,tag=nginx_access,nohostname main; error_log syslog:server=unix:/dev/log,facility=local7,tag=nginx_error,nohostname error; sendfile on; server_tokens off; proxy_request_buffering off; fastcgi_request_buffering off; scgi_request_buffering off; proxy_buffering off; fastcgi_buffering off; scgi_buffering off; resolver_timeout 5s; client_header_timeout 10s; client_body_timeout 60s; send_timeout 60s; keepalive_timeout 65s 20s; client_max_body_size 0; server_names_hash_max_size 8192; ssl_certificate /usr/syno/etc/certificate/system/default/fullchain.pem; ssl_certificate_key /usr/syno/etc/certificate/system/default/privkey.pem; ssl_protocols TLSv1 TLSv1.1 TLSv1.2; ssl_ciphers ECDHE-....; ssl_dhparam /usr/syno/etc/ssl/dh2048.pem; ssl_prefer_server_ciphers on; ssl_session_tickets off; ssl_session_cache shared:SSL:1m; ssl_session_timeout 3600s; server_tag "nginx"; gzip_disable "msie6"; gzip_min_length 1000; gzip_types text/plain text/css application/javascript application/json; gzip_vary on; gzip_static on; upstream synoscgi { server unix:/run/synoscgi.sock; } index index.html index.htm index.php; set_real_ip_from 127.0.0.1; real_ip_header X-Real-IP; server { listen 5000 default_server; listen [::]:5000 default_server; server_name _; gzip on; include app.d/alias.*.conf; root /usr/syno/synoman; index index.cgi; ignore_invalid_headers off; include app.d/dsm.*.conf; include /usr/syno/share/nginx/conf.d/dsm.*.conf; include conf.d/dsm.*.conf; location = / { try_files $uri /index.cgi$is_args$query_string; } location ~ ^/volume(?:X|USB|SATA|Gluster)?\d+/ { internal; root /; include app.d/x-accel.*.conf; include conf.d/x-accel.*.conf; } location ~ /webman/modules/(PersonalSettings|ExternalDevices|FileBrowser)/index_ds.php$ { alias /usr/syno/share/OAuth/index_ds.php; default_type text/html; } location ~ \.cgi { include scgi_params; scgi_read_timeout 3600s; scgi_pass synoscgi; } error_page 403 404 500 502 503 504 @error_page; location @error_page { root /usr/syno/share/nginx; rewrite (.*) /error.html break; } location ~ ^/webman/modules/Indexer/ { deny all; } location ~ ^/webapi/lib/ { deny all; } location ~ ^/webapi/(:?(:?.*)\.lib|(:?.*)\.api|(:?.*)\.auth|lib.def)$ { deny all; } location ~ /\. { access_log off; log_not_found off; deny all; } location ~* \.(?:js|css|png|jpg|gif|ico)$ { access_log off; log_not_found off; } location = /favicon.ico { access_log off; log_not_found off; } location = /robots.txt { allow all; access_log off; log_not_found off; } } server { listen 5001 default_server ssl; listen [::]:5001 default_server ssl; server_name _; include app.d/alias.*.conf; root /usr/syno/synoman; index index.cgi; ignore_invalid_headers off; include app.d/dsm.*.conf; include /usr/syno/share/nginx/conf.d/dsm.*.conf; include conf.d/dsm.*.conf; location = / { try_files $uri /index.cgi$is_args$query_string; } location ~ ^/volume(?:X|USB|SATA|Gluster)?\d+/ { internal; root /; include app.d/x-accel.*.conf; include conf.d/x-accel.*.conf; } location ~ /webman/modules/(PersonalSettings|ExternalDevices|FileBrowser)/index_ds.php$ { alias /usr/syno/share/OAuth/index_ds.php; default_type text/html; } location ~ \.cgi { include scgi_params; scgi_read_timeout 3600s; scgi_pass synoscgi; } error_page 403 404 500 502 503 504 @error_page; location @error_page { root /usr/syno/share/nginx; rewrite (.*) /error.html break; } location ~ ^/webman/modules/Indexer/ { deny all; } location ~ ^/webapi/lib/ { deny all; } location ~ ^/webapi/(:?(:?.*)\.lib|(:?.*)\.api|(:?.*)\.auth|lib.def)$ { deny all; } location ~ /\. { access_log off; log_not_found off; deny all; } location ~* \.(?:js|css|png|jpg|gif|ico)$ { access_log off; log_not_found off; } location = /favicon.ico { access_log off; log_not_found off; } location = /robots.txt { allow all; access_log off; log_not_found off; } } server { listen 80 default_server; listen [::]:80 default_server; gzip on; server_name _; location ~ ^/volume(?:X|USB|SATA|Gluster)?\d+/ { internal; root /; include app.d/x-accel.*.conf; include conf.d/x-accel.*.conf; } include app.d/www.*.conf; include app.d/alias.*.conf; include /usr/syno/share/nginx/conf.d/www.*.conf; include conf.d/www.*.conf; location = /webdefault/images/logo.jpg { alias /usr/syno/share/nginx/logo.jpg; } error_page 403 404 500 502 503 504 @error_page; location @error_page { root /usr/syno/share/nginx; rewrite (.*) /error.html break; } location ^~ /.well-known/acme-challenge { root /var/lib/letsencrypt; default_type text/plain; } include app.d/.location.webstation.conf*; location / { rewrite ^ / redirect; } location ~ ^/$ { rewrite / http://$host:5000/ redirect; } } server { listen 443 default_server ssl; listen [::]:443 default_server ssl; server_name _; location ~ ^/volume(?:X|USB|SATA|Gluster)?\d+/ { internal; root /; include app.d/x-accel.*.conf; include conf.d/x-accel.*.conf; } include app.d/www.*.conf; include app.d/alias.*.conf; include /usr/syno/share/nginx/conf.d/www.*.conf; include conf.d/www.*.conf; location = /webdefault/images/logo.jpg { alias /usr/syno/share/nginx/logo.jpg; } error_page 403 404 500 502 503 504 @error_page; location @error_page { root /usr/syno/share/nginx; rewrite (.*) /error.html break; } location ^~ /.well-known/acme-challenge { root /var/lib/letsencrypt; default_type text/plain; } include app.d/.location.webstation.conf*; location / { rewrite ^ / redirect; } location ~ ^/$ { rewrite / https://$host:5001/ redirect; } } include conf.d/http.*.conf; include app.d/server.*.conf; include sites-enabled/*; }
我不能保证下面的工作,因为整个设置是复杂的。
server { server_name moodle.tracker.im; listen 443 ssl; ssl_certificate /path/to/moodle/certificate; ssl_certificate_key /path/to/moodle/key; ... other SSL directives if desired... include proxy.conf; proxy_read_timeout 3600s; location / { proxy_pass http://127.0.0.1:914; } }
所以,需要为Moodle定义另一个虚拟主机,以便通过域名访问它。 您还需要确保Moodle已经正确设置使用该域名或根目录。