我正在开发一个类似于Imgur的项目,但仅限于客户。 我使用NGINX作为我的networking服务器和PHP-FPM / MYSQL来处理剩下的事情。 我将最终遇到的一个速度缓冲区将耗尽服务器空间。 我希望能够根据需要添加更多的存储服务器。 虽然我知道云存储可能是在我的情况下,这是目前不是一个选项的最佳途径。 所以让我说我有3个存储服务器都运行NGINX,我们将其称为storage1,storage2和storage3。 如果我服务的域如i.myimagehost.com的请求,我需要find一种方法告诉NGINX在哪里代理从我的PHP-FPM脚本或MYSQL数据库reqyest。 另一个例子: i.imagehost.com/1234.jpg – hosted on storage1 i.imagehost.com/5678.jpg – hosted on storage2 i.imagehost.com/9012.jpg – hosted on storage3 我想要做的是从我的数据库和/或PHP-FPM获取服务器和文件位置,并让NGINX通过proxy_pass传递它,类似于: location / { proxy_pass http://$storage_server.imagehost.com/$path_to_file; proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr;} 这只是我试图完成的一个粗略的例子。 由于每个图像名称将是随机的,我将无法设置关键范围来确定服务器。 它需要来自数据库。 我不确定是否有可能这样做,但任何帮助将不胜感激。
我试图在Nginx中列出一个非常特定的用户代理string。 下面的例子演示了如何将一般types的浏览器列入白名单(例如mozilla或chrome),但是我想列入白名单的string是/和(这打破了nginx的conf。 如何将nginx的用户代理列入白名单? https://gist.github.com/supairish/2951524 https://www.scalescale.com/tips/nginx/block-user-agents-nginx/ https://www.cyberciti.biz/faq/nginx-if-conditional-http_user_agent-requests/ https://stackoverflow.com/questions/17674293/allow-only-one-user-agent-block-the-rest-in-nginx 是否可以将下面的string列入白名单? if ($http_user_agent ~* (Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/58.0.3029.110 Safari/537.36) ) { return 403; }
在Apache上的SSLconfiguration SSLEngine On SSLCertificateFile /etc/ssl/domain.crt SSLCertificateKeyFile /etc/ssl/domain.key 这工作得很好 Nginx的: ssl on; ssl_certificate /etc/ssl/domain.crt; ssl_certificate_key /etc/ssl/domain.key; curl给出: * SSL certificate problem: Invalid certificate chain * Curl_http_done: called premature == 1 * Closing connection 0 curl: (60) SSL certificate problem: Invalid certificate chain 铬说: net::ERR_CERT_DATE_INVALID 任何错误的我的nginx conf?
我可以使用gcsfuse装载我的Google云端存储,但是我需要nginx来写入它。 我怎么做? 我已经将nginx添加到安装用户组,没有任何东西。 可能是因为挂载在所有文件夹上有755个? 任何想法将不胜感激。 伯特
我有nginx / 1.12.0,并根据文件包含stream模块。 我用以下命令安装了nginx。 sudo add-apt-repository ppa:nginx/stable sudo apt-get update sudo apt-get install nginx nginx -v nginx version: nginx/1.12.0 我试图在nginx.conf中添加stream指令 stream { upstream sys { server 172.xxx:9516; server 172.xxx:9516; } server { listen 9516 udp; proxy_pass sys; } } 但是当我重新启动nginx时,我得到了nginx日志中的错误 unknown directive "stream" in /etc/nginx/nginx.conf:86 nginx -V output nginx版本:使用OpenSSL 1.0.1f构build的nginx / 1.12.0 2014年1月6日启用了TLS SNI支持的configuration参数:–with-cc-opt =' […]
我刚刚升级到Debian 9(伸展),但系统似乎不支持ALPN协议(运行HTTP2testing后 )。 互联网上的所有指南仍然指Jessie(Debian 8),但没有谈到Stretch(Debian 9)。 OpenSSL> version OpenSSL 1.1.0f 25 May 2017 nginx -v nginx version: nginx/1.13.1 nginx从官方存储库安装 有没有一种简单的方法(无需手动重新编译nginx)来获取Debian 9&nginx的ALPN? 谢谢。
所以,NGINX 1.13.2今天发布了,我想更新我的1.13.1安装。 我不能简单地使用像$ apt-get install nginx这样的东西,因为我在构build中使用了一些静态模块。 因此,我有几个问题: 我应该完全覆盖现有的文件吗? 我最初提取NGINX本身到/opt/nginx所以我应该只是$ tar -xvzf nginx-1.13.2 -C /opt/nginx ? 我猜测我将需要再次运行./configure与以前相同的值。 当我运行make应该使用$ make upgrade而不是$ make install ? 还有什么我应该知道的? 我知道使用USR2和WINCH信号正常closures旧的主进程并启动新的进程,但我假设这是在步骤1和2之后。还有什么我应该知道的? 谢谢!
我正在使用最新的官方nginx docker容器 。 无论何时启动容器,都会在/usr/share/nginx/html中创build两个文件 root@ba65db04a18f:/# ls -la /usr/share/nginx/html total 16 drwxr-xr-x 2 root root 4096 Jun 28 15:38 . drwxr-xr-x 3 root root 4096 Jun 23 00:55 .. -rw-r–r– 1 root root 537 May 30 13:03 50x.html -rw-r–r– 1 root root 612 May 30 13:03 index.html 如何防止这些文件被创build? 我用来启动容器的命令是: docker volume create static docker run -it […]
我有非常简单的configuration: server { listen 80; server_name test.mydomain.ru; location / { proxy_pass http://127.0.0.1:8081; } } server { listen 80; server_name *.test2.ru; index index.html; location / { root html; } } 当我访问test2.ru test.mydomain.ru打开。 为什么? *.test2.ru应该处理任何对test2.ru请求。 这可能是DNSconfiguration的问题吗? 我有以下设置: 对于test2.ru , www A 164.138.29.xxx为test2.ru ; 和 为test.mydomain.ru; test A 164.138.29.xxx test.mydomain.ru;
我是新的AWS …我已经build立了一个EC2实例运行Nginx和PHP 7.1.6我也做了一个页面,返回phpinfo(); 细节,但它返回不是我的弹性IP,但内部IP地址: $_SERVER['SERVER_ADDR'] 172.31.9.228 我的EC2已经正确地关联了一个弹性的IP,同时也试图浏览网站的一切运行平稳。 有没有办法让Nginx返回公有IP而不是私有?