CentOS安装Nginx – 架设Web服务器

一、安装Nginx

Nginx是一款轻量级高性能的Web服务器和反向代理服务器,被广泛使用于互联网领域,特别是在高并发的情况下。在CentOS中安装Nginx非常简单,只需要执行以下命令:

yum install nginx

执行完上述安装命令后,Nginx就已经安装并运行了。可以使用以下命令启动、停止、重启、重新加载配置:

systemctl start nginx       #启动Nginx
systemctl stop nginx        #停止Nginx
systemctl restart nginx     #重启Nginx
systemctl reload nginx      #重新加载Nginx配置(不会中断正在进行的连接)

二、设置Nginx的基本配置

默认情况下,Nginx的配置文件路径为/etc/nginx/nginx.conf。在该配置文件中可以配置Nginx的基本设置,比如监听的端口、访问日志等。打开配置文件后,可以进行一些基本设置:

worker_processes  1;         #指定工作进程数
error_log  /var/log/nginx/error.log warn;    #错误日志
pid        /var/run/nginx.pid;                #PID文件保存路径
                                                                                           
events {
    worker_connections  1024;
}                                   #设置work连接数
                                       
http {
    include       /etc/nginx/mime.types;
    default_type  application/octet-stream;
    log_format  main  '$remote_addr - $remote_user [$time_local] "$request" '
                        '$status $body_bytes_sent "$http_referer" '
                        '"$http_user_agent" "$http_x_forwarded_for"';
    access_log  /var/log/nginx/access.log  main;

    sendfile        on;
    #tcp_nopush     on;

    keepalive_timeout  65;

    #gzip  on;

    include /etc/nginx/conf.d/*.conf;
}                                   #http的全局配置

三、配置虚拟主机

虚拟主机,常见于Web服务器,允许在同一台服务器上运行多个网站,每个网站有自己的域名或IP地址。虚拟主机的配置,需要在Nginx的配置文件/etc/nginx/nginx.conf中进行,可以在文件底部添加下面的代码:

    server {
        listen       80;
        server_name  example.com;

        location / {
            root   /usr/share/nginx/html;
            index  index.html index.htm;
        }
    }

上述代码会为example.com域名创建一个虚拟主机,并且指定该虚拟主机使用的端口是80。其中,location指令定义了Web服务器如何响应URI,root指令指定了Web服务器文件的根目录。

四、设置HTTPS

使用HTTPS可以保证网站和用户之间的数据传输是安全的。Nginx支持HTTPS,可以使用以下命令进行安装:

yum install -y nginx openssl

安装完以上两个软件包后,就可以进行HTTPS配置了。首先需要生成SSL证书文件,在命令行中执行:

openssl req -x509 -nodes -days 365 -newkey rsa:2048 -keyout /etc/nginx/cert.key -out /etc/nginx/cert.crt

执行完上述命令后,会在/etc/nginx目录下生成一个cert.key和cert.crt文件,接下来在Nginx的配置文件/etc/nginx/nginx.conf中添加以下内容:

server {
        listen       443 ssl;
        server_name  example.com;

        ssl_certificate /etc/nginx/cert.crt;
        ssl_certificate_key /etc/nginx/cert.key;

        location / {
            root   /usr/share/nginx/html;
            index  index.html index.htm;
        }
    }

注意,需要将server监听端口改为443,并添加ssl指令来开启HTTPS服务。其中,ssl_certificate指令指定证书文件位置,ssl_certificate_key指令指定私钥文件位置。

五、启用Nginx缓存

启用Nginx缓存可以提高网站性能,大大减少后端服务器的压力,同时可以提供更快的访问速度。Nginx缓存可以设置为三种模式:fastcgi、proxy和memcached。下面以proxy模式为例:

upstream myserver {
   server backend1.example.com;
   server backend2.example.com;
}
server {
        listen       80;
        server_name  example.com;

        location / {
            proxy_pass  http://myserver;
            proxy_cache_bypass $http_pragma;
            proxy_cache_revalidate on;
            proxy_cache_valid 200 302 10m;
            proxy_cache_valid 404 1m;
            proxy_cache_key "$host$request_uri";
            proxy_cache_path /var/cache/nginx levels=1:2 keys_zone=my_cache:10m inactive=60m;
            proxy_temp_path /var/cache/nginx/temp;
            add_header X-Proxy-Cache $upstream_cache_status;
        }
    }

上述代码使用了proxy模式,创建了一个名称为myserver的upstream,指定了多个后端服务器。然后在location指令中引用myserver,其后设置缓存的相关指令。

六、启用Nginx负载均衡

Nginx可以使用负载均衡来提高网站并发量,同时也可以将负载均衡作为一种扩展手段来进行服务器架构的设计。Nginx提供了多种负载均衡算法,如轮询、IP哈希、加权轮询等,在使用时需要根据实际情况进行选择。以下是一个简单的Nginx负载均衡配置示例:

upstream myserver {
   server backend1.example.com weight=5;
   server backend2.example.com;
   server backend3.example.com;
}
server {
        listen       80;
        server_name  example.com;

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

上述代码定义了一个名为myserver的upstream,其中backend1的权重为5,backend2和backend3的权重均为1。在location指令中引用myserver即可实现负载均衡。

七、总结

本文主要介绍了在CentOS中安装Nginx,以及如何进行基本配置、设置虚拟主机、启用HTTPS、启用Nginx缓存、启用Nginx负载均衡等。通过本文的介绍,您应该已经对Nginx有了更深入的了解,能够更好地进行Web服务器的架设和性能优化。

原创文章,作者:HJLOH,如若转载,请注明出处:https://www.506064.com/n/317726.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
HJLOHHJLOH
上一篇 2025-01-11 16:27
下一篇 2025-01-11 16:27

相关推荐

  • Python Web开发第三方库

    本文将介绍Python Web开发中的第三方库,包括但不限于Flask、Django、Bottle等,并讨论它们的优缺点和应用场景。 一、Flask Flask是一款轻量级的Web…

    编程 2025-04-29
  • 服务器安装Python的完整指南

    本文将为您提供服务器安装Python的完整指南。无论您是一位新手还是经验丰富的开发者,您都可以通过本文轻松地完成Python的安装过程。以下是本文的具体内容: 一、下载Python…

    编程 2025-04-29
  • STUN 服务器

    STUN 服务器是一个网络服务器,可以协助网络设备(例如 VoIP 设备)解决 NAT 穿透、防火墙等问题,使得设备可以正常地进行数据传输。本文将从多个方面对 STUN 服务器做详…

    编程 2025-04-29
  • CentOS 6如何删除resolv.conf的DNS

    本文将介绍在CentOS 6操作系统下如何删除resolv.conf文件中的DNS配置信息。 一、备份resolv.conf文件 在修改resolv.conf文件之前,建议首先备份…

    编程 2025-04-29
  • Web程序和桌面程序的区别

    Web程序和桌面程序都是进行软件开发的方式,但是它们之间存在很大的区别。本文将从多角度进行阐述。 一、运行方式 Web程序运行于互联网上,用户可以通过使用浏览器来访问它。而桌面程序…

    编程 2025-04-29
  • 解决docker-compose 容器时间和服务器时间不同步问题

    docker-compose是一种工具,能够让您使用YAML文件来定义和运行多个容器。然而,有时候容器的时间与服务器时间不同步,导致一些不必要的错误和麻烦。以下是解决方法的详细介绍…

    编程 2025-04-29
  • 使用CentOS配置监控

    本文将介绍如何使用CentOS配置监控,包括如何安装监控工具、配置监控参数、监控其他服务器等方面。 一、安装监控工具 要想进行监控,首先需要安装监控工具。在CentOS系统中,常见…

    编程 2025-04-29
  • 在CentOS上安装Redis

    Redis是一款非关系型数据库,它支持多种数据结构,包括字符串、哈希、列表、集合、有序集合等。Redis运行内存内并且支持数据持久化,它还可以应用于缓存、消息队列等场景。本文将介绍…

    编程 2025-04-28
  • Python操作Web页面

    本文将从多个方面详细介绍Python操作Web页面的技巧、方法和注意事项。 一、安装必要的库 在Python中操作Web页面,需要用到一些第三方库。 pip install req…

    编程 2025-04-28
  • 如何使用WebAuth保护Web应用

    WebAuth是用于Web应用程序的一种身份验证技术,可以提高应用程序的安全性,防止未经授权的用户访问应用程序。本文将介绍如何使用WebAuth来保护您的Web应用程序。 一、什么…

    编程 2025-04-28

发表回复

登录后才能评论