Nginx(发音为“Nginx”)是一种高性能的Web服务器。它最初是为解决10K问题而开发的,这意味着可以提供10,000个并发连接。Nginx可以用作独立的Web服务器,也可以作为反向代理服务于其他Web服务器之前。
当作为反向代理服务器时,Nginx充当前端Web服务器,将传入的请求传递到后端的Web服务器,不同的端口等。然后Nginx可以处理SSL / HTTPS,GZip,缓存头,负载平衡等方面还有很多其他的东西。后面的Web服务器不需要知道如何处理它。并且 - 您只有一个Web服务器,您需要了解如何配置SSL / HTTPS,GZip等 - 这就是Nginx。我们在tomcat面前使用Nginx。Nginx处理所有SSL / HTTPS内容,而tomcat只支持背面的普通HTTP请求。
Installing Nginx
可以使用apt-get包管理器在Ubuntu上安装Nginx,如下所示:
apt-get install nginx
这应该在你的Ubuntu服务器上安装最新版本的Nginx。
要在其他Linux发行版上安装Nginx,请在Google,Bing等上搜索。您可以轻松找到在所需Linux发行版上安装Nginx所需的命令行。
Starting Nginx
安装Nginx后,您需要启动它。您可以使用此命令执行此操作:
/etc/init.d/nginx start
要验证Nginx是否正在运行,请尝试将浏览器定向到Ubuntu服务器的IP地址(或域名)。确保已在端口80上打开防火墙。
检查Nginx是否正在运行
检查Nginx是否正在运行的另一种方法是运行此命令:
htop
在命令的输出中,在列表中查找“nginx master process”和“nginx worker process”。如果您在列表中看到这些进程,则Nginx正在运行。
Restarting Nginx
每当您更改Nginx配置文件时,都需要重新启动Nginx。使用以下命令重新启动Nginx。
/etc/init.d/nginx restart
一个Nginx重新启动,新配置将生效。
如果配置文件中有错误,则重新启动Nginx将失败。
restart命令会在它输出的行的末尾写一个小的“OK”或“Fail”,让你知道重启失败还是成功。如果您有错误,请更正错误,然后重新启动Nginx。然后它应该再次工作。
Nginx 配置文件
Nginx主配置文件位于:
/etc/nginx/nginx.conf
Nginx配置文件可能包含其他配置文件。因此,您可以将配置划分为多个较小的可重用配置文件,这些文件都包含在主Nginx配置文件中。
要配置Nginx,我们必须更改Nginx配置文件。在对其进行更改之前,请备份原始配置文件。这样你就可以随时回到原版,以防你弄乱副本。以下是如何制作原始Nginx配置文件的副本:
cp /etc/nginx/nginx.conf /etc/nginx.conf.orig
文件/etc/nginx.conf.orig现在包含原始Nginx配置文件的副本。
配置文件
这是我原来的Nginx配置文件的样子。在任何地方你都看到了[\ n],这意味着我已经插入了与原版相比的换行符,以便更容易在浏览器中查看文件。#是备注。
user www-data; worker_processes 4; pid /run/nginx.pid; events { worker_connections 768; # multi_accept on; } http { ## # Basic Settings ## sendfile on; tcp_nopush on; tcp_nodelay on; keepalive_timeout 65; types_hash_max_size 2048; # server_tokens off; # server_names_hash_bucket_size 64; # server_name_in_redirect off; include /etc/nginx/mime.types; default_type application/octet-stream; ## # Logging Settings ## access_log /var/log/nginx/access.log; error_log /var/log/nginx/error.log; ## # Gzip Settings ## gzip on; gzip_disable "msie6"; # gzip_vary on; # gzip_proxied any; # gzip_comp_level 6; # gzip_buffers 16 8k; # gzip_http_version 1.1; # gzip_types text/plain text/css application/json [\n] application/x-javascript text/xml [\n] application/xml application/xml+rss text/javascript; ## # nginx-naxsi config ## # Uncomment it if you installed nginx-naxsi ## #include /etc/nginx/naxsi_core.rules; ## # nginx-passenger config ## # Uncomment it if you installed nginx-passenger ## #passenger_root /usr; #passenger_ruby /usr/bin/ruby; ## # Virtual Host Configs ## include /etc/nginx/conf.d/*.conf; include /etc/nginx/sites-enabled/*; } #mail { # # See sample authentication script at: # # http://wiki.nginx.org/ImapAuthenticateWithApachePhpScript # # # auth_http localhost/auth.php; # # pop3_capabilities "TOP" "USER"; # # imap_capabilities "IMAP4rev1" "UIDPLUS"; # # server { # listen localhost:110; # protocol pop3; # proxy on; # } # # server { # listen localhost:143; # protocol imap; # proxy on; # } #}
配置Nginx
配置Nginx是通过配置文件完成的。究竟要配置什么取决于你想要Nginx做什么。
使用SSL / HTTPS将Nginx配置为反向代理
下面是一个示例nginx.conf(Nginx配置文件),它向您展示如何将Nginx配置为反向代理。同样,[\ n]标记我插入换行符的位置,以便在浏览器中更容易查看文件。删除您自己的此文件版本中的[\ n]和换行符。在文件列表之后,有关配置的更多详细信息。
user www-data; worker_processes 4; pid /run/nginx.pid; events { worker_connections 768; # multi_accept on; } http { ## # Basic Settings ## sendfile on; tcp_nopush on; tcp_nodelay on; keepalive_timeout 65; types_hash_max_size 2048; # server_tokens off; # server_names_hash_bucket_size 64; # server_name_in_redirect off; include /etc/nginx/mime.types; default_type application/octet-stream; ## # Logging Settings ## access_log /var/log/nginx/access.log; error_log /var/log/nginx/error.log; ## # Gzip Settings ## gzip on; gzip_disable "msie6"; # gzip_vary on; # gzip_proxied any; # gzip_comp_level 6; # gzip_buffers 16 8k; # gzip_http_version 1.1; # gzip_types text/plain text/css application/json [\n] application/x-javascript text/xml application/xml [\n] application/xml+rss text/javascript; ## # nginx-naxsi config ## # Uncomment it if you installed nginx-naxsi ## #include /etc/nginx/naxsi_core.rules; ## # nginx-passenger config ## # Uncomment it if you installed nginx-passenger ## #passenger_root /usr; #passenger_ruby /usr/bin/ruby; ## # Virtual Host Configs ## server { listen 443; server_name _; ssl on; ssl_certificate certificate-bundle.crt; ssl_certificate_key private-key.pem; ssl_protocols TLSv1 TLSv1.1 TLSv1.2; location / { proxy_pass http://127.0.0.1:8080; } } }
反向代理的所有配置都发生在server{...}块内。
listen 443行指示Nginx侦听端口443(默认HTTPS端口)。
server_name _指示Nginx所有域名都与此服务器{...}部分匹配。
在线的ssl指示Nginx打开SSL / HTTPS。
ssl_certificate certificate-bundle.crt指向证书文件。证书文件路径是certificate-bundle.crt。此路径可以指向单个证书文件,或者在我的情况下是证书包。
ssl_certificate_key private-key.pem指向用于生成证书签名请求的原始私钥。Nginx需要此密钥才能与证书建立SSL连接。
ssl_protocols TLSv1 TLSv1.1 TLSv1.2;line设置启用了哪些SSL协议。
ocation / {...}部分指示Nginx将所有来自网站虚拟目录结构的请求转发到运行在http://127.0.0.1:8080上的Web服务器,该服务器是端口8080上的同一台机器。
本文版权归是三僡然所有,转载请标明出处。欢迎转载,欢迎评论,欢迎分享。如果你有文章想分享可以联系我。
本文暂时没有评论,来添加一个吧(●'◡'●)