Nginx安装与配置

Nginx是一款高性能的轻量级网络服务器,在处理静态资源和反向代理方面表现优异,被广泛应用于企业级网站、大型系统和高并发场景。本文将介绍Nginx的安装与常用配置。

一、安装Nginx

Nginx安装与配置

Nginx可以通过源码编译安装和系统包管理器安装两种方式进行安装。本文介绍前者的步骤。

1. 下载Nginx源码

首先,在Nginx官网(https://nginx.org/)下载最新的稳定版本源码包,并将其解压到指定目录。

wget http://nginx.org/download/nginx-1.20.1.tar.gz
tar -zxvf nginx-1.20.1.tar.gz -C /usr/local/src

2. 安装编译工具

编译Nginx需要用到一些工具,如GNU编译器、PCRE正则表达式库、OpenSSL加密库、zlib压缩库等。在安装之前,需要安装这些依赖包。

yum install gcc gcc-c++ autoconf automake make pcre pcre-devel zlib zlib-devel openssl openssl-devel -y

3. 编译Nginx

进入解压后的Nginx源码目录,执行以下命令进行编译和安装。

cd nginx-1.20.1
./configure –prefix=/usr/local/nginx –with-http_ssl_module
make
make install

其中,–prefix指定了安装路径,–with-http_ssl_module启用了SSL支持。

4. 配置Nginx开机自启

使用systemd服务管理器控制Nginx的启动、停止和重启。在/etc/systemd/system目录下,创建一个nginx.service文件。

vi /etc/systemd/system/nginx.service

在文件中写入以下内容。

[Unit]
Description=The Nginx HTTP Server
After=syslog.target network.target remote-fs.target nss-lookup.target

[Service]
Type=forking
PIDFile=/usr/local/nginx/logs/nginx.pid
ExecStartPre=/usr/local/nginx/sbin/nginx -t
ExecStart=/usr/local/nginx/sbin/nginx
ExecReload=/bin/kill -s HUP $MAINPID
ExecStop=/bin/kill -s QUIT $MAINPID
PrivateTmp=true

[Install]
WantedBy=multi-user.target

然后启动Nginx服务,并设置为开机自启。

systemctl start nginx
systemctl enable nginx

二、基本配置

1. 目录结构

安装后,Nginx的默认配置文件位于/usr/local/nginx/conf/nginx.conf,日志文件位于/usr/local/nginx/logs/,静态文件和脚本文件位于/usr/local/nginx/html/。该目录结构如下。

/usr/local/nginx/
├── conf/
├── nginx.conf
├── html/
├── 50x.html
├── index.html
├── logs/
├── access.log
├── error.log
├── sbin/
├── nginx

2. 默认服务器

当Nginx服务器接收到请求时,会根据请求的主机名和端口号在配置文件中查找对应的服务器块进行处理。如果没有匹配的服务器块,则会将请求发送到默认服务器中。默认服务器配置如下。

nginx.conf

http {
server {
listen 80 default_server;
server_name _;
root /usr/local/nginx/html;

# Load configuration files for the default server block.
include /etc/nginx/default.d/*.conf;

error_page 404 /404.html;
location = /40x.html {
}

error_page 500 502 503 504 /50x.html;
location = /50x.html {
}
}
}

上述代码中的server_name指定了服务器的主机名,下划线表示匹配所有主机名。root指定了静态文件的根目录,在没有匹配的请求时,会返回该目录下的静态页面。其中,error_page用于定制错误页面,location用于匹配请求的路径。

3. 反向代理

常用于将请求发送到内部网络中的应用程序服务器,实现负载均衡和高可用。在Nginx中,可以使用proxy_pass指令实现反向代理。

nginx.conf

http {
upstream backend {
server backend1.example.com:8080;
server backend2.example.com:8080;
}

server {
listen 80;
server_name app.example.com;
location / {
proxy_pass http://backend;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
}
}
}

上述代码中的upstream用于定义一个服务器池,其中包含多个应用程序服务器。然后,在server中使用proxy_pass指令将请求发送到该服务器池中,并设置了一些请求头属性。

4. 负载均衡

当请求发送到服务器池中时,Nginx默认使用轮询算法将请求均匀地发送到各个应用程序服务器上。用户也可以使用其他的负载均衡算法,如加权轮询、IP hash等。

nginx.conf

http {
upstream backend {
ip_hash;
server backend1.example.com:8080 weight=3;
server backend2.example.com:8080;
}

server {
listen 80;
server_name app.example.com;
location / {
proxy_pass http://backend;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
}
}
}

在上述代码中,使用了ip_hash算法,该算法会根据请求的IP地址,将同一IP地址的请求发送到同一个应用程序服务器上。另外,还设置了权重,第一个服务器的权重为3,第二个服务器的权重为1。

5. HTTPS配置

HTTPS是一种安全的通信协议,常用于保护敏感信息的传输,如账号密码等。Nginx基于OpenSSL库实现了对HTTPS的支持。

1)生成证书

首先,需要生成一份SSL证书,用于加密通信。

openssl req -x509 -days 3650 -nodes -newkey rsa:2048 -keyout /usr/local/nginx/conf/app.key -out /usr/local/nginx/conf/app.crt

上述代码中通过openssl命令生成了一份有效期为3650天的自签名证书,证书和私钥分别保存在app.crt和app.key文件中。

2)配置HTTPS

然后,在nginx.conf文件中添加HTTPS配置块。

nginx.conf

http {
server {
listen 80;
listen 443 ssl;
server_name app.example.com;

ssl_certificate /usr/local/nginx/conf/app.crt;
ssl_certificate_key /usr/local/nginx/conf/app.key;

location / {
proxy_pass http://backend;
}
}
}

以上代码中,将监听80端口和443端口(ssl)的请求分别转发到同一个服务器中,启用了SSL证书,然后将请求发送到服务器池中。此外,还需要开放防火墙端口。

iptables –I INPUT -p tcp –dport 443 -j ACCEPT

3)重启Nginx服务

配置完HTTPS后,需要使用systemctl命令重启Nginx服务才能使更改生效。

systemctl restart nginx

总结

以上就是Nginx的安装与常用配置过程。安装Nginx需要先下载源码包,安装依赖包后进行编译安装。Nginx默认配置文件为nginx.conf,主要包含默认服务器、反向代理、负载均衡和HTTPS等常用配置。在使用反向代理和负载均衡时,可以使用upstream关键字来定义服务器池,并根据需要配置不同的负载均衡算法。在使用HTTPS时,需要生成SSL证书并配置HTTPS相关的指令。Nginx的常用配置仅仅是一个基础入门,为了更好地发挥Nginx性能,请读者在实际应用中再进行深入的学习和实践。

文章来源于网络,作者:27149高级会员,如若转载,请注明出处:https://puhuiju.com/11844.html

(0)
27149的头像27149高级会员管理团队
上一篇 2023年5月26日 上午9:19
下一篇 2023年5月26日

相关推荐

  • Nginx动态模块开发

    随着互联网技术的飞速发展,Web服务器的性能需求也越来越高。Nginx作为一款高性能的Web服务器,其优越的性能和灵活的配置方式受到了广泛的认可和使用。除此之外,Nginx还支持动…

    2023年5月27日
  • Nginx技术入门

    Nginx 是一款高性能的 Web 服务器和反向代理服务器,它的出现大大改进了现代互联网中的 web 前端开发和管理。Nginx 最初是由 Igor Sysoev 开发的,主要是为…

    2023年5月26日
  • Nginx 简介及其应用场景介绍

    Nginx 是一款轻量级的高性能 Web 服务器和反向代理服务器,由 Igor Sysoev 开发。Nginx 的名字来源于“engine x”,它的目标是提供高性能、高并发、低内…

    2023年3月24日
  • Nginx缓存技术

    Nginx是一款高性能、高可靠性的Web服务器软件,运用广泛。作为一款优秀的Web服务器,它的缓存机制对于优化网站的性能起着关键作用。在这篇文章中,我们将深入探讨Nginx缓存技术…

    2023年5月28日
  • Nginx 反向代理及负载均衡实现方法

    Nginx 反向代理及负载均衡实现方法: (1)配置反向代理服务器:在 Nginx 的配置文件中添加反向代理服务器的配置信息,指定要代理的目标服务器的 IP 地址和端口号。 (2)…

    2023年3月24日
  • Nginx的三大工作进程

    Nginx是一种高性能、轻量级的Web服务器软件,具有卓越的负载均衡能力和反向代理功能。它的设计理念是将复杂的任务分割成不同的模块,每个模块以独立的进程运行,互不影响,可以通过多个…

    2023年5月30日
  • Nginx反向代理实现负载均衡

    Nginx(发音为“engine x”)是一款高性能的开源web服务器软件,也是一款高效的反向代理和负载均衡工具,被越来越多的公司采用。 本文涵盖以下内容: 1. 什么是负载均衡2…

    2023年5月29日
  • 深入理解Nginx架构及工作原理

    Nginx是一款流行的Web服务器和反向代理服务器,它是一个高性能的HTTP和反向代理服务器,能够处理大量并发连接。在Web应用程序开发中,Nginx是一个非常重要的组件,因此,我…

    2023年3月29日
  • 《基于Nginx的前端开发快速入门》

    《基于Nginx的前端开发快速入门》:学习快速设置Nginx,开发出功能强大的Web应用.

    2023年2月26日
  • Nginx负载均衡

    引言 Nginx是一个高性能的Web服务器,其特点是轻量级、高效率、高可靠性和低内存消耗。它可以作为HTTP服务器、反向代理服务器、邮件代理服务器和TCP/UDP代理服务器。Ngi…

    2023年5月26日

发表回复

您的电子邮箱地址不会被公开。 必填项已用 * 标注

登陆
注意

保障您购买的商品请登陆账号在购买商品

资源下载
返回顶部