不知何故,我不知道如何,我们已经configuration了一个nginx反向代理,作为一个开放的代理。 日志文件告诉我们匹配请求正在与下面的conf文件进行比较: map $http_upgrade $connection_upgrade { default upgrade; '' close; } access_log /var/log/nginx/access.p.log; error_log /var/log/nginx/error.p.log; proxy_next_upstream error timeout invalid_header http_500 http_502 http_503 http_504; proxy_buffers 8 32k; proxy_buffer_size 64k; proxy_http_version 1.1; proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_redirect off; proxy_set_header Upgrade $http_upgrade; proxy_set_header Connection $connection_upgrade; server { listen 80; server_name ~first.*\.second\.com; location / […]
我在使用FastCGIcaching的NGINX服务器上使用基于php的博客。 没有这个caching,很容易更新页面浏览与每个页面加载一个特定的url。 当FastCGIcaching处于运行状态时,浏览量不会更新。 我正在考虑实现基于像素的跟踪,所以当该页面不在caching中并获取cachingMISS时,请求将打到实际页面,然后我可以借助访问日志(24小时)更新浏览量。 这将是好的或任何人都可以build议一个更好的解决方法来实现这一目标?
我正在使用一个基于nginx + php-fpm + mysql堆栈上的几个magento版本进行testing的环境,我把每个发行版放在不同的文件夹中,并放在nginx的vhostconfiguration文件中,我使用下面的语句: server_name〜^(?<。>。+)\。magento \ .test $; root [root_path] / distro / $ version; 所以,直到在这里,我可以得到任何dynamicurl映射到其文件夹 ce107.magento.test => [root_path] / distro / ce107 / ce108.magento.test => [root_path] / distro / ce108 / ce109.magento.test => [root_path] / distro / ce109 / 当我尝试使用“主机名称标签”来切换每个发行版上的网站时,问题就开始了: us.ce107.magento.test,ar.ce107.magento.test … 因为nginx会查找: [root_path] /distro/us.ce107/和[root_path] /distro/ar.ce107/文件夹。 所以我需要parsing和检索值: [ws_code] [版] .magento.test 我不知道该怎么做,也许我可以使用“map $ host […]
我正在冒险进入nginx重写规则,所以这对我来说是一个相当新的话题。 我在根文件夹中有一系列使用重写规则的页面,如下所示: server { listen 80; ## listen [::]:80 default_server ipv6only=on; listen 443 ssl; root /nginx/gtt/; index index.html index.htm index.php gttindex.php; # Make site accessible from http://localhost/ server_name gtt.deb; ssl_certificate /etc/nginx/ssl/nginx.crt; ssl_certificate_key /etc/nginx/ssl/nginx.key; client_max_body_size 10M; # When access gps page just show gps if ( $request_uri = "/gps" ) { rewrite ^ /gps.lf.ws.vh.sprite.php break; } […]
我的安装是这样的 访客 – >磅 – >光油 – > nginx 我的WordPress的网站看起来很好,从前端(与https),但只要我尝试login到后端出现此错误“您没有足够的权限访问此页面”。 当我把磅出链的工作正常(与光油只有http),但nginx直接没有清漆与SSL。 这是我的英镑configuration User "www-data" Group "www-data" LogLevel 1 Alive 30 Control "/var/run/pound/poundctl.socket" ListenHTTP Address 0.0.0.0 Port 80 Service BackEnd Address 127.0.0.1 Port 6081 End End End ListenHTTPS HeadRemove "X-Forwarded-Proto" AddHeader "X-Forwarded-Proto: https" Address 0.0.0.0 Port 443 Cert "/etc/ssl/domain.com/mycert.pem" Service BackEnd Address 127.0.0.1 Port 6081 End […]
我试图这样做 if ($request_uri ~ ^/page/submit$ ) { set $test A; } if ($request_body = '') { set $test B; } if ($test = AB) { return 403; } 但我得到200请求curl –request POST http://example.com/page/submit
例如,如果对像这样的图像发出请求… /static/images/00f37ac6291bb6e8_150.jpeg 但150px的缩略图版本还没有生成,并返回一个404,我想让它尝试全尺寸的基本图像,将始终可用… … /static/images/00f37ac6291bb6e8.jpeg 我该如何让nginx做到这一点? 这是我已经开始,但我遇到问题搞清楚正则expression式。 我也不知道这是否是完成这个的最好方法。 location /static/ { resolver 8.8.8.8; try_files $uri @redirect; proxy_pass https://s3.amazonaws.com/<buckets>$request_uri; } location @redirect { rewrite ^(.*)(?=_)(\.*)$ https://s3.amazonaws.com/<buckets>$1; } 这也是我正则expression式与正则expression式…我无法弄清楚如何抓取文件扩展名。 更新: 这是我最终做的,它运作良好! location /static/images/ { resolver 8.8.8.8; proxy_intercept_errors on; proxy_pass https://s3.amazonaws.com/my-bucket$request_uri; error_page 400 401 402 403 404 @redirect; } location @redirect { rewrite ^(.*)\/(.*)(_)[0,1](.*)\.(.+)$ https://s3.amazonaws.com/my-bucket/images/$2.$5; }
我有一个wordpress网站example.com 。 我有一个可以跨多个服务器使用的域SSL证书。 当用户访问example.com或任何子文件夹期望论坛时,他们访问运行apache的server1 。 当用户访问example.com/forum时,他们被redirect到运行nginx的server2 。 我将如何设置这两个IP地址映射在example.com下,使得redirect只是内部的,并且域始终保持example.com 在我的网站apache虚拟主机,我正在使用 Redirect permanent /forum http://server2ip redirect到server2 编辑根据卢卡的答案将server1设置为PROXY到SERVER2 这里是我的apache虚拟主机configuration的设置 VirtualHost *:80> RewriteEngine on ServerName example.com ServerAdmin [email protected] DocumentRoot /var/www/example #Redirect all HTTP requests to HTTPS # RewriteCond %{SERVER_PORT} 80 # RewriteRule ^(.*)$ https://example.com/$1 [R=301,L] ProxyPass /forum https://server2ip/ <Location /forum> ProxyPass https://server2ip/ ProxyPassReverse https://server2ip/ </Location> <Proxy *> Order allow,deny […]
我看过那个男人 ,但我还不清楚。 我的问题主要与NGINXnetworking服务器日志有关。 这是我目前的logrotate.conf: # rotate log files weekly weekly # keep 4 weeks worth of backlogs rotate 4 # create new (empty) log files after rotating old ones create # use date as a suffix of the rotated file dateext # uncomment this if you want your log files compressed #compress # RPM packages […]
我已经尝试了所有的东西,并且search了Google的一些解决scheme,但是不能在我的Nginx服务器中configurationSSL(https),它位于Amazon EC2上的Ubuntu 14.04.2 LTS中。 我的网站使用HTTP完全在80端口上工作,但是我会使用HTTPS更安全。 注意事项: 每当我尝试通过https://访问它https://给出错误: ERR_CONNECTION_TIMED_OUT 命令curl -v https://www.mywebsite.com/返回: curl: (7) Failed to connect to www.mywebsite.com port 443: Connection timed out 命令nc -vz localhost 443返回: Connection to localhost 443 port [tcp/https] succeeded! 命令nc -vz myserverIP 443返回:nc:连接到myserverIP端口443(tcp)失败:连接超时 用于HTTPS的TCP 443端口在入站和出站时在安全组(Amazon EC2防火墙)上的任何位置打开。 `netstat -ntlp | grep LISTEN: tcp 0 0 0.0.0.0:21 0.0.0.0:* LISTEN 1244 / proftpd […]