Articles of nginx

通配符子域名和自定义域名

我有一些关于Nginxconfiguration和通配符子域的问题,以及自定义域如何进入图片。 这是我的情况。 假设我拥有这个网站awesome.com 。 当用户注册我的网站时,他们会自动获得一个子域名。 所以用户史蒂夫可以通过steve.awesome.com导航到他的主页。 要做到这一点,请创build一个通配符子域CNAMElogging。 在内部,我希望应用程序将其视为awesome.com/users/steve 。 查看这篇文章后 ,我相信我应该能够重写路由到我想要的结果,而不必实际更改URL在浏览器中显示的内容。 现在,我想让史蒂夫build立自己的自定义域名。 假设Steve拥有域名iamsteve.com 。 史蒂夫然后可以指出他的域名,他的子域名steve.awesome.com 。 我的主要问题是,当向iamsteve.com发出请求时,我的Nginx服务器会以steve.awesome.com接收请求,从而允许重写逻辑仍然正常工作? 或者它会实际收到请求作为iamsteve.com ?

如何将URL参数从Nginx转发到我的服务器的API?

我试图创build“用户唯一”部分,我设法得到这一点,但我卡住了。 我怎样才能发送请求的url到我的api? 这是我的Express.js API路由,非常简单。 用户访问链接(直接链接,页面上embedded的链接/video等),并尝试查看它。 我将他的请求redirect到我的/ api,并检查他是否被允许看到它。 如果我删除:文件部分,并使用200和403进行testing,但是我需要能够dynamic检查它们。 下面更清楚的解释。 “/”是通用的URL,但是只有当访问者试图访问文件时,/ api才会被触发,而不pipe文件的位置/ URL是什么。 所以我想要做的是,“好吧,我是Nginx,我发现有些访问者试图访问某个文件,我们把这个文件的名字传给Express.js服务器,让它检查是否允许这个用户看到这个图片如果是200,我会允许的,如果是403,那么不。 app.get('/api/:file', function(req,res,next) { // This part decides what you're allowed to see. // Redis database query. Returns 0 or 1. // 1 returns 200, 0 returns 403. res.sendStatus(200); // It works, so this part is done. }); 但我不知道如何将请求的url参数从Nginx传递到我的Express.js应用程序(例如, http:// localhost / api […]

将EC2 nginxredirect到不同的域

我有一个网站mysubdomain.mydomain.com,需要redirect到myotherdomain.com/coming-soon 具有现有用户的应用程序需要redirect到完全不同的域上的另一个站点。 我的EC2机器正在使用nginx。 我试着通过添加修改/etc/nginx/nginx.conf文件 server { listen 443; listen 80; server_name *.mydomain.com; return 301 http://www.reallifeglobal.com/coming-soon; } 我也尝试过对此进行各种修改,包括将server_name更改为像.mydomain.com , * , mysubdomain.mydomain.com ,但似乎没有任何效果。 当我去到URL,它加载一个完全空白的页面(而不是加载现有的应用程序),但它不会redirect到返回的URL。 此外,我首先尝试直接通过DNS提供商redirect,但它只为http工作,他们使我redirecthttps非常复杂,所以我看到了什么需要在AWS的一面redirect的东西。 我只是一个小小的开发人员,不太了解devOps,还有其他的东西需要知道,以帮助我知道。 编辑网站已启用:启用网站内部是一个。elastic文件的.bean文件 map $http_upgrade $connection_upgrade { default "upgrade"; "" ""; } server { listen 80; location / { proxy_pass http://docker; proxy_http_version 1.1; proxy_set_header Connection $connection_upgrade; proxy_set_header Upgrade $http_upgrade; proxy_set_header Host $host; […]

Nginx重写某些端口到子path(nginx + uwsgi + django)

我的目标是重写http://localhost:8000下的所有内容到http://localhost/foo 我遵循这个链接中提到的每一个步骤,但仍然无法得到它的工作。 这是我的设置: urls.py(Django) urlpatterns = [ url(r'^$', 'home.view'), url(r'^foo$', 'foo.view'), ] uwsgi.ini(uWSGI) [uwsgi] chdir = /home/user/folder/project wsgi-file = /home/user/folder/project/iTrends/wsgi.py home = /home/user/.pyenv/versions/project master = true processes = 10 threads = 5 socket = /tmp/project.sock chmod-socket = 666 vacuum = true logto = /tmp/project_uwsgi.log http-websocket = true buffer-size = 65535 nginx80.conf(带端口80的nginx) server { listen 80; […]

magic try_files语句的目的是什么?

维护由第三方设置的系统在nginx虚拟主机configuration中find以下内容 server { listen *:80; listen *:443 ssl; ssl_certificate /path/to/cert.crt; ssl_certificate_key /path/to/cert.key; server_name <server-name-here>; root /path/to/vhost/root; index index.html index.htm index.php index.cgi index.pl index.xhtml; error_log /var/log/ispconfig/httpd/domain-name/error.log; access_log /var/log/ispconfig/httpd/domain-name/access.log combined; location ~ /\. { deny all; access_log off; log_not_found off; } location = /favicon.ico { log_not_found off; access_log off; } location = /robots.txt { allow all; log_not_found […]

在Nginx上运行一个python脚本

这个问题听起来有点奇怪,但是我只是想开始学习服务器端编程 是否有可能通过replace直接在Nginx服务器上运行python脚本 root /usr/share/nginx/html; index index.py; // instead of index.html index.htm 我试着运行相同的,但没有结果。 我所要做的就是获取请求的发布数据并将其打印在网页上。 我已经search了一下谷歌,发现如何使用uWSGI和Ngnix 链接运行python脚本。 我会挑战性地尝试这个,但是如果有人能够澄清我的疑问,那将是非常好的。 提前致谢。

如何设置单独的日志文件,在nginx中logging400个错误的请求错误

我有一个nginx主持django应用程序。 我需要从我的网页上logging400个错误的请求错误到nginxconfiguration中的一个单独的日志文件。 我发现的文档是在出现错误时给出单独的回复。 我用nginxconfiguration尝试下面的代码: error_page 400 /400.html; location /400.html { internal; } 但是上面的代码不会logging400个错误。

GoAccessdate/时间/日志格式错误

当用我的Nginx日志文件运行GoAccess时出现这个错误: Fatal error has occurred Error occured at: src/goaccess.c – main – 1017 Nothing valid to process. Verify your date/time/log format. 日志行示例: example.com 66.87.119.148 – – [27/May/2016:10:45:50 +0000] "GET /uploads/5458ac234488de92aa9cda3a/logo300.png HTTP/1.1" 200 11153 "http://example.com/page1" "Mozilla/5.0 (iPhone; CPU iPhone OS 9_2_1 like Mac OS X) AppleWebKit/601.1.46 (KHTML, like Gecko) Version/9.0 Mobile/13D15 Safari/601.1" example.com 207.250.34.193 – – […]

AWS Elastick Beanstalk + Node JS + HTTPS =拒绝连接

我在AWS上部署了一个节点js应用程序,使用单个实例的Elastic Beanstalk。 它适用于HTTP,但在设置HTTPS访问时遇到问题。 我创build了我的证书,并遵循AWS EB文档中的说明: http : //docs.aws.amazon.com/elasticbeanstalk/latest/dg/https-singleinstance-nodejs.html 这是我部署新代码后对我的问题的描述: 我仍然可以使用HTTP连接到浏览器上的URL,但是,当尝试使用HTTPS连接时,我收到消息ERR_CONNECTION_REFUSED 我用netcat来检查端口443是否可达,而不是: nc -z environment.elasticbeanstalk.com 80 收益: Connection to environment.elasticbeanstalk.com port 80 [tcp/http] succeeded! 但 nc -z environment.elasticbeanstalk.com 443 什么也不返回 我还检查了与EC2实例关联的安全组的入站规则,并确实打开了端口443: 最后,我检查了弹性beanstalk日志,找不到任何对HTTPS请求的引用。 如果我在尝试使用HTTPS访问应用程序的时候查找时间戳,则没有。 看起来nginx服务器从来没有收到请求。 当我使用php / apache服务器使用Elatstic Beanstalk时,我没有设置类似的HTTPS访问的任何问题,但在这种情况下,我是node / nginx的新手,所以我可能会错过一些基本的东西。 你有什么build议,我可以检查什么,我可以做什么? 非常感谢你提前, 埃雷兹

Postfix(pipe理员),Dovecot,MySQL:别名不起作用

我可以发送邮件到我用postfixadmin设置的邮箱。 这是正常工作,我可以发送邮件在他们身上。 但是现在我还需要别名才能正常工作。 我已经使用了一个教程来设置这里列出的东西 。 但不知怎的,后缀不断尝试发送邮件到别名的邮箱。 主要电子邮件: [email protected] 别名邮件: [email protected] 数据库中的logging正确设置,当我运行这个命令: postmap -q [email protected] mysql:/etc/postfix/sql/mysql_virtual_alias_maps.cf 我检索正确的电子邮件地址: [email protected]有一个邮箱附加到它。 我究竟做错了什么? 日志不提供任何有用的信息。 当我发送邮件到我的别名日志如下所示: Jun 10 10:38:13 localhost postfix/smtpd[3061]: C27DC614DD: client=mail-wm0-f41.google.com[74.125.82.41] Jun 10 10:38:13 localhost postfix/cleanup[3072]: C27DC614DD: message-id=<CAGUk6whj3Drb-c=5N55TU80UoKR6sC2r4k+3jtxj9pBO5Gp5Pg@mail.gmail.com> Jun 10 10:38:13 localhost postfix/qmgr[30229]: C27DC614DD: from=<[email protected]>, size=2011, nrcpt=1 (queue active) Jun 10 10:38:13 localhost postfix/smtpd[3061]: disconnect from mail-wm0-f41.google.com[74.125.82.41] Jun 10 […]