Articles of nginx

覆盖默认的nginxconfiguration

在CentOS中,我安装了nginx版本1.6.3,它带有一个默认的configuration文件,它定义了一个服务器端口80.我把我的configuration文件conf.d/但我找不到一种方法来覆盖默认configuration以外修改nginx.conf 。 有没有办法在不修改nginx.conf的情况下覆盖或禁用端口80上的默认服务器?

奇怪的线在nginx访问日志

我正在通过服务器上的Nginx(端口80)访问日志进行查看,我发现很多行在get语句中有一个完整的URL。 这是应该完成的? 大多数返回一个404,但其中一个(不是下面的那个)是200,并且在请求之后有几个hex代码。 到底是怎么回事? #.#.#.# – – [28/Sep/2016:18:01:31 +0000] "GET http://www.baidu.com/cache/global/img/gs.gif HTTP/1.1" 404 169 "-" "Mozilla"

Nginx将stream量redirect到ilo

我有一个带有ilo和nginx服务器的hp proliant服务器。 要从路由器外部到达ilo,我使用端口81和444,因为80和443已经被nginx占用。 但有没有办法,我可以以某种方式通过nginxredirect到某个域的交通(如ilo.example.com)到我的ilo IP?

如何使用Nginx反向代理来隐藏后端URL / URI

我们公司开发了一个新的SaaS解决scheme,供经销商和他们的客户使用。 对于我们的经销商的客户,如果解决scheme是品牌的,就像经销商自己的软件应用程序一样。 这是完全执行1个东西的URL。 我做了很多研究如何隐藏一个URL / URI和反向代理似乎是最好的解决scheme。 我读了一些关于不同的软件应用程序,我可以使用它来构build一个反向代理,Nginx似乎是完美的工作。 我安装了一台全新的CentOS服务器,并在其上安装了Nginx。 这很容易(即使对我来说,Linix noob)。 经过一番与configuration文件struggeling我发现如何configurationNginx作为反向代理。 现在,当我浏览到我的代理IP(铁192.168.1.100 / SATA)我看到SaaS解决scheme,有另一个IP。 在地址栏中,我看到了反向代理IP,非常希望! 当我点击SaaS解决scheme中的链接或button后,地址栏中的IP就变成了SaaS解决scheme的真实IP。 我读了这个 , 这个 , 这个和更多的话题,但我不能得到它的工作。 我的configuration“位置”部分看起来像这样的atm: location /SaaS { proxy_pass http://192.168.1.200/login/; } 只要把它改成这个(我在互联网上find的正确的configuration在多篇文章中) location /SaaS { proxy_pass http://192.168.1.200/login; proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; include /etc/nginx/proxy_params; } 我收到错误“找不到您正在查找的网页”。 来自Nginx。 我错了什么?

nginx与384位ecc证书和openssl但曲线secp256r1不可用

我在Debian 8上使用nginx 1.11.7和Openssl 1.1.0c ,并且有一个自我签名的ecc证书和384位密钥用于testing目的。 我想使用曲线X25519,secp384r1和secp256r1。 Nginx通常在nginx config中启用X25519和secp384r1: ssl_ecdh_curve X25519:secp384r1; , 但在使用secp256r1时拒绝重新启动/重新加载: ssl_ecdh_curve secp256r1; 错误消息: SSL_CTX_set1_curves_list("secp256r1") failed (SSL:) 。 那么我怎样才能在上面提到的设置中使用secp256r1曲线?

在nginx反向代理背后访问synology DSM

我试图访问我的synology nas web ui,在我的覆盆子上运行的nginx反向代理之后。 Nginx反向代理正在为其他的东西,像我的鬼博客。 我复制/粘贴设置,通过nas.my.domain访问我的nas 192.168.0.123:5000,但是我find了“Synology / Sorry,找不到页面”而不是DSM的login提示。 这是我的nginx的设置 upstream nas { server 192.168.0.123:5001; # server 192.168.0.123:5000; KO # server 192.168.0.123; KO } server { listen 80; return 302 https://$server_name$request_uri; } server { server_name nas.my.domain; listen 443 ssl http2; # listen [::]:443 ssl http2; access_log /var/log/nginx/nas.access.log; error_log /var/log/nginx/nas.error.log; ssl_certificate /etc/letsencrypt/live/nas.my.domain/fullchain.pem; ssl_certificate_key /etc/letsencrypt/live/nas.my.domain/privkey.pem; include /etc/nginx/include/diffie-hellman; […]

Nginx的代理响应时间非常慢

最近我们在清漆前添加了nginx以用于ssl卸载。 我们正在将所有的http请求重写为https。 但是后来我们发现,即使是由nginx提供的http调用,响应时间也有显着增加。 而没有nginx的同样的请求服务清漆响应时间快得多。 我调整了代理缓冲区(2048 4k),以便响应不会存储在文件中,并closures代理缓冲。 但是这两种方法都没有帮助。 所以我克隆了nginx服务器(虚拟机),并发出了相同的请求对克隆的。 响应时间与清漆相当。 所以看起来,当nginx负载(大约700个请求/秒)时,响应时间似乎会增加。 有人能告诉我,我错过了明显的东西吗? 这是我的nginxconfiguration #nginx.conf worker_processes auto; worker_rlimit_nofile 90000; pid /var/run/nginx.pid; error_log /var/log/nginx/error.log error; events { worker_connections 40000; multi_accept on; use epoll; } http { ## # Basic Settings ## sendfile on; tcp_nopush on; tcp_nodelay on; keepalive_timeout 65; types_hash_max_size 2048; client_max_body_size 20M; client_body_buffer_size 128k; server_tokens off; keepalive_requests […]

NGINX – 将所有内容转发到php脚本

我试图转发每个请求到相同的PHP脚本。 我想出了这个configuration: server { listen 80; server_name example.com; root /var/www/html; index api.php; location / { try_files $uri /api.php$is_args$args; } location ~ \.php { try_files $uri =404; fastcgi_split_path_info ^(.+\.php)(/.+)$; include fastcgi_params; fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; fastcgi_param SCRIPT_NAME $fastcgi_script_name; fastcgi_index api.php; fastcgi_pass 127.0.0.1:9000; } } 虽然它起作用,但如果提供了正确的$ uri,它仍然允许直接访问资源。 如果我尝试将第一个位置块更改为: location / { try_files /api.php$is_args$args =404; } 它不起作用,总是返回404。

使用嵌套位置正则expression式在指定位置添加代理标头

我正在尝试使用Nginx和Puma在我的Rails API上设置一个WebSocket端点。 我有(工作但丑陋) 下面的Nginxconfiguration工作正常 ,但我觉得我可以使用更聪明的东西,以避免重复@puma和@puma_ws命名的位置: upstream puma { server unix:///path/to/socket.sock; } server { listen 80; server_name example.com; root /var/www/public; location / { try_files $uri/index.html $uri @puma; } location ~ ^/api/websocket { try_files $uri/index.html $uri @puma_ws; } location @puma { proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header Host $http_host; proxy_redirect off; proxy_pass http://puma; } location @puma_ws { # These […]

在NGINX Web服务器上安装SSL证书

我用这个代码创build了一个domain.csr和domain.key: openssl req -new -newkey rsa:2048 -nodes -keyout domain.key -out domain.csr 然后,使用这两个我买了一个证书,我从RapidSSL获得证书。 RapidSSL给了我一个my_domain.crt。 一切安好。 但是,当我尝试安装此.crt文件时,有一个问题。 文件说: 使用以下代码连接SSL和中级CA证书: cat intermediateCA.crt >> SSL_Certificate.crt 但是我的远程服务器中没有任何.crt文件,我也不知道哪一个是我的:intermediateCA.crt或SSL_Certificate.crt 我怎样才能在我的networking服务器上安装这个证书?