部分帶口我有一個應用程序的NodeJS在端口2000上運行和2010年NGINX反向代理的子域從URL
我試圖建立我的nginx.conf文件做以下端口一個WordPress安裝:
- domain.com:服務從端口應用的NodeJS 2000
- info.domain.com:服務WordPress的內容
我已經將DNS設置信息子域的指向,因此它指向與我的NodeJS應用程序相同的服務器。
NodeJS應用程序工作正常。 WordPress的安裝行爲真的很奇怪。
Wordpress網址一直都是錯誤的。我希望他們看起來像http://info.domain.com/blah.../,但他們看起來像這樣http://domain.com:2010/blah.../ - info.domain.com只是似乎重定向。
我試着搞亂Wordpress設置,看看他們是否有上述問題的一些部分。以前的WordPress的地址和網站地址都是http://domain.com:2010。我試圖將它們更改爲http://info.domain.com。這不起作用,因爲「信息」部分似乎從我的URL導致錯誤中被刪除。回到之前的情況,我使用phpMyAdmin將它們改回。
現在我有一個全新的問題:http://domain.com:2010/somepage/按預期工作,但是當我試圖訪問WordPress的主頁,無論是通過http://domain.com:2010/或通過http://info.domain.com/我重定向到http://domain.com/和應用的NodeJS那裏。
我真的很感激,如果有人能幫助我瞭解哪裏出了問題。
我是一個關於服務器配置的初學者,我確信我的nginx.conf文件是一個大混亂。下面附上它。
user www-data;
worker_processes 4;
pid /run/nginx.pid;
events {
worker_connections 768;
# multi_accept on;
}
http {
##
# Basic Settings
##
sendfile on;
tcp_nopush on;
tcp_nodelay on;
keepalive_timeout 65;
types_hash_max_size 2048;
# server_tokens off;
# server_names_hash_bucket_size 64;
# server_name_in_redirect off;
include /etc/nginx/mime.types;
default_type application/octet-stream;
##
# Logging Settings
##
access_log /var/log/nginx/access.log;
error_log /var/log/nginx/error.log;
##
# Gzip Settings
##
gzip on;
gzip_disable "msie6";
# gzip_vary on;
# gzip_proxied any;
# gzip_comp_level 6;
# gzip_buffers 16 8k;
# gzip_http_version 1.1;
# gzip_types text/plain text/css application/json application/x-javascript text/xml application/xml application/xml+rss text/javascript;
##
# nginx-naxsi config
##
# Uncomment it if you installed nginx-naxsi
##
#include /etc/nginx/naxsi_core.rules;
##
# nginx-passenger config
##
# Uncomment it if you installed nginx-passenger
##
#passenger_root /usr;
#passenger_ruby /usr/bin/ruby;
##
# Virtual Host Configs
##
include /etc/nginx/conf.d/*.conf;
include /etc/nginx/sites-enabled/*;
# server for reverse proxy on node application on port 2000
server {
listen 80;
server_name domain.com www.domain.com;
#location /moodle {
# proxy_pass http://moodle.domain.com;
# proxy_http_version 1.1;
# proxy_set_header Upgrade $http_upgrade;
# proxy_set_header Connection 'upgrade';
# proxy_set_header Host $host;
# proxy_cache_bypass $http_upgrade;
#}
location /old {
rewrite^http://old.domain.com/ permanent;
}
location /moodle {
rewrite^http://moodle.domain.com/ permanent;
}
location/{
proxy_pass http://domain.com:2000;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection 'upgrade';
proxy_set_header Host $host;
proxy_cache_bypass $http_upgrade;
}
location /info {
proxy_pass http://domain.com:2010;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection 'upgrade';
proxy_set_header Host $host;
proxy_cache_bypass $http_upgrade;
}
}
# server for reverse proxy on node application on port 3000
server {
listen 80;
server_name beta.domain.com;
location/{
proxy_pass http://beta.domain.com:2000;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection 'upgrade';
proxy_set_header Host $host;
proxy_cache_bypass $http_upgrade;
}
}
# Test re-routing to info.domain.com
server {
listen 80;
server_name info.domain.com;
location/{
proxy_pass http://domain.com:2010/;
}
}
# server access for phpmyadmin to listen on port 81
server {
listen 81;
server_name localhost;
root /usr/share/phpmyadmin;
index index.php index.html index.htm;
if (!-e $request_filename) {
rewrite ^/(.+)$ /index.html?url=$1 last;
break;
}
location ~ .php$ {
try_files $uri =404;
fastcgi_pass unix:/var/run/php5-fpm.sock;
fastcgi_index index.php;
include /etc/nginx/fastcgi_params;
}
}
# server access for Wordpress to listen on port 2010
server {
listen 2010;
server_name info.domain.com;
root /home/take/wordpress;
index index.php index.html index.htm;
client_max_body_size 256M;
#if (!-e $request_filename) {
# rewrite ^/(.+)$ /index.html?url=$1 last;
# break;
#}
#location ~ .php$ {
# try_files $uri =404;
# fastcgi_pass unix:/var/run/php5-fpm.sock;
# fastcgi_index index.php;
# include /etc/nginx/fastcgi_params;
#}
# WordPress single site rules.
# Designed to be included in any server {} block.
# This order might seem weird - this is attempted to match last if rules below fail.
# http://wiki.nginx.org/HttpCoreModule
location/{
try_files $uri $uri/ /index.php?$args;
}
# Add trailing slash to */wp-admin requests.
rewrite /wp-admin$ $scheme://$host$uri/ permanent;
# Directives to send expires headers and turn off 404 error logging.
location ~* ^.+\.(ogg|ogv|svg|svgz|eot|otf|woff|mp4|ttf|rss|atom|jpg|jpeg|gif|png|ico|zip|tgz|gz|rar|bz2|doc|xls|exe|ppt|tar|mid|midi|wav|bmp|rtf)$ {
access_log off; log_not_found off; expires max;
}
# Uncomment one of the lines below for the appropriate caching plugin (if used).
#include global/wordpress-wp-super-cache.conf;
#include global/wordpress-w3-total-cache.conf;
# Pass all .php files onto a php-fpm/php-fcgi server.
location ~ [^/]\.php(/|$) {
fastcgi_split_path_info ^(.+?\.php)(/.*)$;
if (!-f $document_root$fastcgi_script_name) {
return 404;
}
# This is a robust solution for path info security issue and works with "cgi.fix_pathinfo = 1" in /etc/php.ini (default)
include fastcgi_params;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
# fastcgi_intercept_errors on;
# fastcgi_pass php;
fastcgi_pass unix:/var/run/php5-fpm.sock;
}
}
}
感謝您的回覆。這很有道理。但是,我的info.domain.com仍然被重定向到domain.com網站。不過,指向特定文件的網址可以正常工作(info.domain.com/someFile.php正常,info.domain.com/someSubdir/不會)。你有什麼建議,爲什麼發生這種情況,我可以做些什麼呢? – Regicollis
這很奇怪,它不應該重定向。您是否重新啓動了Nginx並清除了您可能擁有的任何緩存機制?如果有,請發佈您的更新配置。當你說'info.domain.com/someSubdir /'不工作,你得到的錯誤是什麼,你期望的結果是什麼?一般來說,Nginx不提供目錄,只提供文件。如果你設置'autoindex on',你會得到一個可以瀏覽的分層結構,但是這不推薦。 –
我嘗試了一段時間,然後工作。這一定是一些關鍵問題。一切正常,現在應該如此。非常感謝您的回答。 – Regicollis