Articles of nginx

使用nginx反向代理进行redirect

我有ab域(例如),并希望在ab/c提供一些github页面( username.github.io/project )。 这意味着我也想保持我的浏览器url为ab/c并显示username.github.io/project内容。 我在nginx模块中有以下设置 location /c { proxy_pass http://username.github.io/project; proxy_redirect http://username.github.io http://ab; proxy_set_header Host $http_host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_buffering off; } 如果我更改proxy_set_header Host $http_host到proxy_set_header Host $proxy_host或$host ,它只是redirect到http://username.github.io/project这不是我的意思。 我能怎么做?

去(lang)与nginx – 服务静态文件

目前我有以下用Go编写的HTTP服务器: func main() { http.HandleFunc("/", func(response http.ResponseWriter, request *http.Request) { http.ServeFile(response, request, "/var/www/default/htdocs/index.html") }) http.Handle("/public/", http.StripPrefix("/public/", http.FileServer(http.Dir("/var/www/default/htdocs/public")))) http.HandleFunc("/json", func(response http.ResponseWriter, request *http.Request) { // serves a JSON response }) http.HandleFunc("/socket", func(w http.ResponseWriter, r *http.Request) { // replies to the WebSocket }) http.ListenAndServe(":3000", nil) } 我已经看到了一些基准,表明nginx在静态文件方面每秒可以提供更多的请求。 nginx的另一个有用的function是它可以透明地gzip响应,甚至可以使用gzip_static模块提供预压缩的文件。 理想情况下,我希望nginx提供所有现有的(静态)文件,并将所有不存在的东西代理到Go: location / { try_files $uri $uri/ @go; } […]

Nginx 502 Bad Gateway – 111:连接被拒绝,端口没有被侦听

我知道还有很多其他类似的问题,但是我觉得我已经有了这些问题的解决scheme。 我有3个站点在VirtualBox Ubuntu 12.04.4 LTS服务器上本地运行,我使用nginx和php-fpm。 它们被configuration为在端口9001 – > 9003上运行: server:/etc/php5/fpm/pool.d$ grep 900 * my-app-deploy.conf:listen = 127.0.0.1:9002 my-app-dev.conf:listen = 127.0.0.1:9001 my-web.conf:listen = 127.0.0.1:9003 server:/etc/nginx/conf.d$ grep 900 * my-app-deploy.conf: fastcgi_pass 127.0.0.1:9002; my-app-dev.conf: fastcgi_pass 127.0.0.1:9001; my-app-web.conf: fastcgi_pass 127.0.0.1:9003; 我已经成功地重启了php-fpm和nginx : server:$ sudo service nginx restart * Restarting nginx nginx …done. server:$ sudo service php5-fpm restart * Restarting PHP5 […]

Nginx不发送证书链

我有以下证书(第一个是我自己的,另外两个来自Comodo PositiveSSL): —–BEGIN CERTIFICATE—– MIIFWTCCBEGgAwIBAgIPPZlYpZLvxHV+Rsy+qSD/MA0GCSqGSIb3DQEBCwUAMIGQ MQswCQYDVQQGEwJHQjEbMBkGA1UECBMSR3JlYXRlciBNYW5jaGVzdGVyMRAwDgYD VQQHEwdTYWxmb3JkMRowGAYDVQQKExFDT01PRE8gQ0EgTGltaXRlZDE2MDQGA1UE AxMtQ09NT0RPIFJTQSBEb21haW4gVmFsaWRhdGlvbiBTZWN1cmUgU2VydmVyIENB MB4XDTE1MDIwODAwMDAwMFoXDTIwMDIwNzIzNTk1OVowVjEhMB8GA1UECxMYRG9t YWluIENvbnRyb2wgVmFsaWRhdGVkMRQwEgYDVQQLEwtQb3NpdGl2ZVNTTDEbMBkG A1UEAxMSdGllbmRhZ2FuYWRlcmEuY29tMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8A MIIBCgKCAQEAv7cwKm7ssjSakyeRFrYi303RnGbnif3+mmfyGCWRCtmmbZpxTrFg CVhFJwcuD0Gd4JkwPXk7GOuY93mhT+Zry1gDCSrAZpaSshV+Osg8bC4DJmil/ZBe /HF2pH0j7XajyYYZjLUQgY8NAuCAW62ArgUL1oBQTZfH1EMM4HSYHoy4so437Glp SwsCQnePokdyMnx/4Y9uPxkC7nZiJr1n6Ue7thXGTkayxsw9sdeBBsG/fk42U/nW JAINeRRM+5BKGqyj5tOINDUMAC+4XAAibVnnvFuvhInQ4t6pmP34vigkhXkpgp/6 IoA31BXT7SP1FK/AI3CaymO/PbF3AsBbdQIDAQABo4IB5zCCAeMwHwYDVR0jBBgw FoAUkK9qOpRaC9iQ6hJWc99DtDoo2ucwHQYDVR0OBBYEFIdRYyYSTjLGCYxfU/wO 0+j0SFMbMA4GA1UdDwEB/wQEAwIFoDAMBgNVHRMBAf8EAjAAMB0GA1UdJQQWMBQG CCsGAQUFBwMBBggrBgEFBQcDAjBPBgNVHSAESDBGMDoGCysGAQQBsjEBAgIHMCsw KQYIKwYBBQUHAgEWHWh0dHBzOi8vc2VjdXJlLmNvbW9kby5jb20vQ1BTMAgGBmeB DAECATBUBgNVHR8ETTBLMEmgR6BFhkNodHRwOi8vY3JsLmNvbW9kb2NhLmNvbS9D T01PRE9SU0FEb21haW5WYWxpZGF0aW9uU2VjdXJlU2VydmVyQ0EuY3JsMIGFBggr BgEFBQcBAQR5MHcwTwYIKwYBBQUHMAKGQ2h0dHA6Ly9jcnQuY29tb2RvY2EuY29t L0NPTU9ET1JTQURvbWFpblZhbGlkYXRpb25TZWN1cmVTZXJ2ZXJDQS5jcnQwJAYI KwYBBQUHMAGGGGh0dHA6Ly9vY3NwLmNvbW9kb2NhLmNvbTA1BgNVHREELjAsghJ0 aWVuZGFnYW5hZGVyYS5jb22CFnd3dy50aWVuZGFnYW5hZGVyYS5jb20wDQYJKoZI hvcNAQELBQADggEBACFMKXGU1ECzff4ORsJMM9tCHYijcrxLNddP7acCFGwhkj3D 7Z3w2drDTYlVEIr84S+4w4QW61LvalwoFo2M0jjTabnsOM323VppPTyXvIUN0nZP q/IVPtDTVOXgz7bbGDCXCkza2PXBRVvGgr+MhUmZ5OkHsnwU5BB9BXoX3rAS1ZSP dhf1g3QYLekz14p53gtcBxbiqQVlLTyjJM/4qlDuRSQrysK665H42x7pch+i4VOn b/5NE85soX/QToKP+cE+rF2DWb6jFjYvUcuh2hHKwRd4gg923S5XWsxsHHCHppcG 4ZZ/CmpDTpxxq61IA5aqYEKrlhKaWBkT6GV+tZ4= —–END CERTIFICATE—– —–BEGIN CERTIFICATE—– MIIFdDCCBFygAwIBAgIQJ2buVutJ846r13Ci/ITeIjANBgkqhkiG9w0BAQwFADBv MQswCQYDVQQGEwJTRTEUMBIGA1UEChMLQWRkVHJ1c3QgQUIxJjAkBgNVBAsTHUFk ZFRydXN0IEV4dGVybmFsIFRUUCBOZXR3b3JrMSIwIAYDVQQDExlBZGRUcnVzdCBF eHRlcm5hbCBDQSBSb290MB4XDTAwMDUzMDEwNDgzOFoXDTIwMDUzMDEwNDgzOFow gYUxCzAJBgNVBAYTAkdCMRswGQYDVQQIExJHcmVhdGVyIE1hbmNoZXN0ZXIxEDAO BgNVBAcTB1NhbGZvcmQxGjAYBgNVBAoTEUNPTU9ETyBDQSBMaW1pdGVkMSswKQYD VQQDEyJDT01PRE8gUlNBIENlcnRpZmljYXRpb24gQXV0aG9yaXR5MIICIjANBgkq hkiG9w0BAQEFAAOCAg8AMIICCgKCAgEAkehUktIKVrGsDSTdxc9EZ3SZKzejfSNw AHG8U9/E+ioSj0t/EFa9n3Byt2F/yUsPF6c947AEYe7/EZfH9IY+Cvo+XPmT5jR6 2RRr55yzhaCCenavcZDX7P0N+pxs+t+wgvQUfvm+xKYvT3+Zf7X8Z0NyvQwA1onr ayzT7Y+YHBSrfuXjbvzYqOSSJNpDa2K4Vf3qwbxstovzDo2a5JtsaZn4eEgwRdWt 4Q08RWD8MpZRJ7xnw8outmvqRsfHIKCxH2XeSAi6pE6p8oNGN4Tr6MyBSENnTnIq m1y9TBsoilwie7SrmNnu4FGDwwlGTm0+mfqVF9p8M1dBPI1R7Qu2XK8sYxrfV8g/ vOldxJuvRZnio1oktLqpVj3Pb6r/SVi+8Kj/9Lit6Tf7urj0Czr56ENCHonYhMsT 8dm74YlguIwoVqwUHZwK53Hrzw7dPamWoUi9PPevtQ0iTMARgexWO/bTouJbt7IE IlKVgJNp6I5MZfGRAy1wdALqi2cVKWlSArvX31BqVUa/oKMoYX9w0MOiqiwhqkfO KJwGRXa/ghgntNWutMtQ5mv0TIZxMOmm3xaG4Nj/QN370EKIf6MzOi5cHkERgWPO GHFrK+ymircxXDpqR+DDeVnWIBqv8mqYqnK8V0rSS527EPywTEHl7R09XiidnMy/ […]

使用Nginx作为多个服务器的反向代理

我正在尝试将nginxconfiguration为我局域网上多个服务器的反向代理。 他们应该在我的广域网上用不同的子域名出去。 我的configuration如下所示: @ReverseProxy:/etc/nginx/sites-enabled$ cat reverseproxy server { server_name DOMAIN.eu; # app1 reverse proxy follow proxy_set_header X-Real-IP $remote_addr; proxy_set_header Host $host; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_pass http://10.0.2.5:80; } server { server_name Subdomain.domain.eu; # app2 reverse proxy settings follow proxy_set_header X-Real-IP $remote_addr; proxy_set_header Host $host; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_pass http://10.0.2.33:80; } 但我得到这个错误,不能得到任何进一步…. @ReverseProxy:/etc/nginx/sites-enabled$ nginx -t nginx: [alert] […]

接收nginx web服务器中存在的文件的404

我最近把我的CentOS 7机器上的Web服务器从Apache切换到了Nginx。 我使用软件在我的计算机上截取屏幕截图并将其上传到服务器供公众查看。 最初,它在Apache上运行良好 – 但是,现在我遇到了一个问题,在这个问题上,nginx将为web服务器上的一些.png图像提供404错误。 我提到了一个非常类似的问题,但是在我自己的问题的背景下,我没有办法解决这个问题。 我有一个下面的图像服务器的服务器块的片段。 server { listen 80; server_name imageserver.example.com; root /usr/share/nginx/imageserver.example.com/public_html; access_log imageserver.example.com/logs/imageserver.example.com_access.log; error_log imageserver.example.com/logs/imageserver.example.com_error.log crit; location / { index index.html index.htm; } location ~* \.png { root imageserver.example.com/public_html/u/; expires max; add_header Pragma public; add_header Cache-control "public, must revalidate, proxy-revalidate"; } } 一个示例链接是这个图像 。 我已经确认该文件存在于服务器上,并具有以下权限。 $ lsa 7b724394b851299c68b15f1172f158c6.png -rw-rw-r–. 1 […]

nginx在两个不同的端口上接受HTTP和HTTPS请求

我有一个nginx服务器设置(两个configuration文件)与两个gunicornnetworking服务器设置和运行。 一个炮弹是生产,另一个是升级。 我想要nginx服务http请求xyz.com以及https请求xyz.com到生产gunicorn服务器@ 127.0.0.1:8000。 我已经完成了这个: server { listen 80; server_name xyz.com; return 301 https://$http_host$request_uri; } server { listen 443 ssl; server xyz.com; ….. <<< ssl stuff location /{ …. proxy_stuff proxy_pass http://127.0.0.1:8000; } } 我也希望HTTPstream量到xyz.com:8080和HTTPSstream量到xyz.com:8080到达临时服务器@ 127.0.0.1:8081。 我一直可以得到httpsstream量xyz.com:8080工作如下: server { listen 8080 ssl; server_name xyz.com; …… << ssl stuff location / { …… << proxy stuff […]

在Nginx服务器块中括号包含冒号的是什么?

我经常在Nginx服务器模块中看到这个,但是我不知道它是什么意思,它不是很好。 server { listen [::]:80 default_server; } [::]是什么意思?

使用带有多个端口的nginx上游组

我想用多个端口使用相同的上游定义: upstream production { server 10.240.0.26; server 10.240.0.27; } server { listen 80; server_name some.host; location / { proxy_pass http://production:1234; } } server { listen 80; server_name other.host; location / { proxy_pass http://production:4321; } } 使用该configurationnginx -t抛出: upstream "production" may not have port 1234和退出代码1。 当我尝试将proxy_pass URL(或其部分)定义为一个variables时: set $upstream_url "http://production:1234" set $upstream_host production; set $upstream_port 1234; […]

letsencrypt更新获取 – 远程错误:tls:握手失败

我试图续订我的letsencrypt证书,并得到以下错误: 远程错误:tls:握手失败 我该如何解决?