我有包含caching清除string的URL。 我想重写这些URL而不使用caching清除string,然后将符合特定条件(如audio/video文件)的重写URL发送到PHP脚本。 例如 /style.1233333555.css => /style.css /video.3232474527.mp4 => /video.mp4 => /index.php 以下是我到目前为止: server { listen 80 default_server; server_name _; #force all traffic to be encrypted return 301 https://xyz.com$request_uri; } server { listen 443 ssl; server_name xyz.com; ssl on; ssl_session_timeout 5m; ssl_protocols TLSv1.1 TLSv1.2; ssl_ciphers "HIGH:!aNULL:!MD5 or HIGH:!aNULL:!MD5:!3DES"; ssl_prefer_server_ciphers on; ssl_certificate /etc/nginx/ssl/xyz.com.crt; ssl_certificate_key /etc/nginx/ssl/xyz.com.key; root /srv/xyz.com; […]
我正在尝试configurationnginx,以便http://example.com/monit访问http://127.0.0.1:2812 ,这是monit正在监听的url。 通过nginx(nginx.conf文件)和monit(monitrc文件)设置了两个authentication。 现在,访问http://example.com/monit/ ,应该popup两个input表单,但进入第二个(通过monit)后,nginx的popup一次。 任何人都可以指出什么是错的? (注意:解决这个问题很简单 – closures一个基本的authentication) 我testing了debian jessie。 对不起,如果它不会重现 这是我的/usr/local/nginx/conf/nginx.conf(从源代码安装) server{ … auth_basic "restricted" auth_basic_user_file /home/user/.htpasswd; location /monit/ { rewrite ^/monit/(.*) /$1 break; proxy_pass http://127.0.0.1:2812; } } 此configuration要求用户input用户名/密码以访问此服务器指令中的任何文件。 如果uri以/ monit /开头,则input位置指令,并将其传递给127.0.0.1:2812 。 简单。 然后在/ etc / monitrc中,我设置了一个基本的authentication。 set httpd port 2812 and allow 127.0.0.1 # allow access only from localhost allow admin:monit […]
我努力在我的专用服务器上configuration两个不同的域名 我已经在虚拟主机DOMAIN_1.net.conf中configuration了一个DN: server { listen 127.0.0.1:8080; server_name DOMAIN_1.net; access_log /home/DOMAIN_1/logs/access.log; error_log /home/DOMAIN_1/logs/error.log; root /home/DOMAIN_1; client_max_body_size 30M; location / { index index.php index.html index.htm; if (!-e $request_filename) { rewrite . /index.php last; } } location ~ \.php$ { fastcgi_split_path_info ^(.+\.php)(/.+)$; fastcgi_pass unix:/var/run/php5-fpm.sock; include /etc/nginx/fastcgi_params; } } 我也有三个其他子域的configuration相同的方式。 我想在vhost DOMAIN_2.ovh.conf中的域名DOMAIN_2.ovh上安装一个owncloud服务器: upstream php-handler { server 127.0.0.1:9000; #server unix:/var/run/php5-fpm.sock; […]
我的意图是有几个webapps在不同的虚拟机上运行,都通过一个nginx代理。 主要的问题是,url被改变,例如http://example.com/app1/获取到web应用程序(但CSS不显示),并点击例如“login”有这样的: http://example.com/login/ 那么,我得到了什么: example.com/app1/ -> "click" -> example.com/login/ 我想要的是: example.com/app1/ -> "click" -> example.com/app1/login/ 安装程序 虚拟机将所有传入的端口80stream量redirect到Nginx-VM,Webapp在不同的虚拟机上运行,在端口8000上托pipe自己的networking服务器。 文件/etc/nginx/sites-enabled/default (abbrev.) : server { listen 0.0.0.0:80; server_name example.com; location /app1/ { proxy_pass http://10.11.100.204:8080/; } } 我尝试了不同的东西,例如在proxy_pass的末尾留下了斜线,但是在调用example.com/app1时给了我一个404。 proxy_set_header Host $host也没有这个把戏。 curl输出 来自Hypervisor机器(如评论): HTTP/1.0 200 OK Content-Type: text/html; charset=utf-8 Content-Length: 3587 Set-Cookie: session=.eJyrVorPTFGyqlZSSFKyUooM98uOCnE0jHIPLfdzcTWMcnGs8s1KrvTNysmOzEo2ijQKrfINdzXwd0m2Va rVUcrJT07MSYVrB2oDCxckpqfGZ2QWl-QXVSpZRStllJQUWOnrF5fmJCbn6-Wm5ZTmF-klZ-grxdYCABkQKVw.B4U2hw.Rbl3k3yxoLQx1UgKpP68uB_X5cI; HttpOnly; Path=/ Server: Werkzeug/0.9.6 Python/2.7.3 […]
在Cent OS上configurationNginx和Tomcat服务器时遇到问题。 这里是nginx.conf : server { listen 80; server_name subdomain.test.com; root /usr/local/tomcat/webapps/webapp_folder; index index.html index.htm index.jsp; proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; location ~ \.jsp { proxy_pass http://127.0.0.1:8080; } } 当我访问subdomain.test.com时 ,我会得到一个下载对话框而不是index.jsp的内容。 另外,我可以通过访问ip_address:8080 / webapp_folder来访问网站。 我也尝试将URL http://127.0.0.1:8080更改为http://127.0.0.1:8080/webapp_folder ,但是当我启动Nginx时,出现以下错误消息: 重新启动nginx守护进程:nginxnginx:[emerg]“proxy_pass”不能在正则expression式给出的位置,或命名的位置内,或者if语句内,或者在/etc/nginx/nginx.conf中的“limit_except” :145 我也试过这个: server { listen 80; server_name subdomain.test.com; root /usr/local/tomcat/webapps/webapp_folder; index index.html index.htm […]
我正在使用axis2networking服务器。 我想通过Nginx来访问它。 这是我的nginxconfiguration server { listen 443; server_name malintha.com; ssl on; ssl_certificate /etc/nginx/wso2esbserver.crt; ssl_certificate_key /etc/nginx/wso2esbserver.key; location /carbon { proxy_pass https://10.100.1.30:9443; } } 我的服务器正在运行,我可以直接访问它。 但是当我通过nginx访问那个web服务器时,nginx给了我“502 Bad Gateway”。 这可能是什么原因? curl结果 curl默认使用证书颁发机构(CA)公钥(CA证书)的“包”来执行SSL证书validation。 如果默认的软件包文件不够用,可以使用–cacert选项指定一个备用文件。 如果此HTTPS服务器使用包中表示的由CA签名的证书,证书validation可能由于证书问题(可能已过期,或名称可能与URL中的域名不匹配)而失败。 如果您想closures卷发的证书validation,请使用-k(或–insecure)选项。 错误日志 2015/01/04 19:59:19 [error] 30334#0:* 3 SSL_do_handshake()失败(SSL:错误:100AE081:椭圆曲线例程:EC_GROUP_new_by_curve_name:未知组错误:1408D010:SSL例程:SSL3_GET_KEY_EXCHANGE:EC lib)而对于上游的SSL握手,客户端:10.174.14.28,服务器:malintha.com,请求:“GET / carbon HTTP / 1.1”,上行:
我想赶在NginX的dev。*。sometld。 但是NginX不接受: server_name dev.*.sometld; 而我不想这样做: server_name dev.*; 我怎样才能匹配“dev。*。sometld”? 谢谢!
我在我的Ubuntu VM上安装了nginx。 在那里我想让Nginx听443端口。 我的configuration如下。 server { listen 443; server_name wso2test.com; ssl on; ssl_certificate /etc/nginx/ssl/server.crt; ssl_certificate_key /etc/nginx/ssl/server.key; #with portOffset 0 running AS location /appserver/ { proxy_pass https://10.100.1.173:9443/; } } 然后我尝试了,无法从其他机器连接到这个监听端口。 然后我telnet到nginx机器的443端口。 它给我connection refused输出。 但telnet到80端口正在连接。 这是什么原因?
我开始使用nginx与多个后端通过使用upstream指令。 我希望nginx添加一个响应头,描述哪个后端服务器被用来提供这个请求。 这样的事情会做: X-Backend-Server: localhost:8000 我configuration了ip_hash作为负载平衡机制。 有没有办法configurationnginx来做到这一点? 谢谢!
我使用nginx作为CouchDB的反向代理。 我想为代理使用前缀,例如http://[ip]:8080/proxy/testdb – > http://localhost:5984/testdb 。 我得到了HTTP响应中的Location: headers,它们导致我的HTTP客户端redirect并中断。 我怎样才能修复我的nginxconfiguration? 我的nginx服务器块如下所示: server { listen 8080; root /var/www/proxy; index index.php index.html index.htm; location /proxy { rewrite /proxy/(.*) /$1 break; proxy_pass http://127.0.0.1:5984; proxy_redirect off; # proxy_set_header Host $host; # proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; } } HTTP响应示例: HTTP/1.1 201 Created Server: nginx/1.6.2 Date: Tue, 13 Jan 2015 01:09:00 GMT Content-Type: […]