⭐⭐⭐搭建web服务器nginx的全过程详细教程

zsanjin 发布于 2023-05-01 216 次阅读


前言:
Nginx是一款开源的高性能Web服务器和反向代理服务器,由俄罗斯的程序设计师Igor Sysoev开发。Nginx可以作为HTTP服务器,也可以作为反向代理服务器,同时也支持邮件代理服务和TCP/UDP网络协议代理服务。Nginx因其高性能、稳定性和可扩展性而受到广泛的应用。 在使用Nginx作为反向代理服务器时,通常会结合v2ray使用。v2ray是一款基于VMess协议的代理软件,用于科学上网等用途。通过在Nginx配置中指定v2ray的监听端口,Nginx可以将客户端的请求转发到v2ray代理服务器上,从而实现科学上网等功能。同时,Nginx的反向代理功能还可以提供负载均衡、HTTPS协议支持、访问控制等高级功能,为科学上网提供更加可靠、安全的服务。

 

 

nginx的搭建很方便,先安装依赖,下载文件,预编译,编译,安装即可,我这里以centos7为例,教各位如何安装,一步一步走正常情况都能搭建成功,现在大部分vps都已经预装了常用命令依赖包并搭建时会给你升级系统。后续需要通过nginx来实现v2ray的反代,伪装域名等

 

①安装依赖包

先下载安装依赖包,避免在后面安装的时候出现问题

yum -y install gcc gcc-c++ automake make pcre pcre-devel zlib zlib-devel open openssl-devel gd-devel perl-devel perl-ExtUtils-Embed

 

②下载nginx-1.24.0,并解压

文件会下载到当前文件夹下,解压的时候会在当前文件夹下自动创建一个与安装包同名文件,预编译时要进入这个文件夹

wget http://nginx.org/download/nginx-1.24.0.tar.gz

解压到当前文件夹下,如我在目录/root下载的文件,那么这个压缩文件就解压在目录:/root/nginx-1.24.0

tar -xvf nginx-1.21.0.tar.gz

 

③通过预编译,编译来安装nginx

通过yum安装的nginx只安装基础模块,无法自定义配置,也不利于后续加装模块,所以我们用预编译、编译、安装的方式

进入解压缩的文件夹,以我的路径为例,我在root目录下

cd nginx-1.24.0

开始预编译,--prefix=/usr/local/nginx意思是指定你的安装路径,后面--with的内容是安装的模块,可自选,但是-http——ssl模块是肯定要的

./configure --prefix=/usr/local/nginx --with-http_ssl_module --with-http_realip_module --with-http_stub_status_module --with-http_v2_modul

执行编译

make

开始安装

make install

 

④编辑nginx配置文件

很重要的步骤,设置你网站读取的目录,设定各种规则

以我的安装路径为例,配置文件在/usr/local/nginx/conf/nginx.conf下,编辑它,按‘i’解除只读,写完后按‘Esc’,再按‘:wq!’或‘:q!’强制保存或退出

vi /usr/local/nginx/conf/nginx.conf

自定义一些基础简单的配置,建议通过Xftp软件来传输Windows和Linux的文件,编辑比较方便

   #找到这部分内容,带#号的为注释,nginx不解析#后面的内容
    server {                 
        listen       80;           #http默认监听80端口,你可以改到别的端口,这里不改
        server_name  localhost;    #这里改为你的vps的公网IP

        #charset koi8-r;            

        #access_log  logs/host.access.log  main;

        location / {                       #这里是网页的根目录设置
            root   /home/www/;             #我以我的路径为例,我把网页根目录设定在/home/www/下,那这里就改成/home/www/
            index  index.html index.htm;
        }                                  #已经可以是实现一个最基础的网页了,后面可以不需要再改了

很有用的自检命令,若在sbin目录下直接执行nginx -t即可,这里为了方便就直接给可在任意目录下执行的命令,你的配置文件是否有格式错误,反馈若出现successful、ok等字样说明格式无误(以我的安装路径为例)

/usr/local/nginx/sbin/nginx -t -c /usr/local/nginx/conf/nginx.conf

 

⑤配置nginx开机自启动

安装已经结束了,现在只要简单做个快捷的系统配置,方便开关nginx,修改完配置文件都有重启一下nginx才能生效

编辑配置服务内容,按‘i’解除只读,写完后按‘Esc’,再按‘:wq!’或‘:q!’强制保存或退出

vi /usr/lib/systemd/system/nginx.service

把下面的内容复制进去,主要内容:停止进程,开启进程,重启进程等(注意你自己的nginx安装路径,以我的安装路径为例)

[Unit]
Description=nginx - high performance web server
After=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 -c /usr/local/nginx/conf/nginx.conf
ExecStart=/usr/local/nginx/sbin/nginx -c /usr/local/nginx/conf/nginx.conf
ExecReload=/usr/local/nginx/sbin/nginx -s reload
ExecStop=/usr/local/nginx/sbin/nginx -s stop
ExecQuit=/usr/local/nginx/sbin/nginx -s quit
PrivateTmp=true

[Install]
WantedBy=multi-user.target

配置完之后,需要先重载systemctl命令

systemctl daemon-reload

这时可以用systemctl命令开启nginx了

systemctl enable nginx

几个常用命令

systemctl status nginx        #查看状态
systemctl start nginx         #启动服务
systemctl stop nginx          #停止服务
systemctl restart nginx       #重启服务
systemctl disable nginx       #禁止开机启动

cd /usr/local/nginx/sbin      #以为我的安装路径为例,进入 sbin 目录,需再该目录下执行一下命令
./nginx              #启动 Nginx
./nginx -s reload    #重新加载配置文件,重启Nginx
./nginx -t           #检测配置文件是否有语法错误
./nginx -s stop      #停止 Nginx
./nginx -s quit      #处理完所有请求后再停止服务
./nginx -s reload    #重新加载 Nginx
./nginx -v           #查看 Nginx 版本

 

⑥最后弄一个简单的静态网页

在第④步中,我们改写了nginx的配置文件,把网页根目录设置在/home/www下,这样nginx就会让该目录下的子文件夹及子文件网页显示到互联网上,或者你可以从模板之家下载网页模板,把模板直接放进网页根目录/home/www下,然后直接访问你的IP地址就可以散花了

自己弄主页不用模板的话,首先进入设置的网页读取根目录/home/www

cd /home/www

创建一个名为‘index.html’的文件

touch index.html

使用文本编辑器编辑网页

vi index.html

复制以下内容,让你的主页变成hello world,按‘i’解除只读,写完后按‘Esc’,再按‘:wq!’或‘:q!’强制保存或退出

<!DOCTYPE html>
<html>
<head>
    <title>Hello, World!</title>
</head>
<body>
    <h1>Hello, World!</h1>
</body>
</html>

提醒一下,记得如果防火墙在运行,放行80,443或者其他你需要的端口,不然无法访问网页,建议先确认一下防火墙状态,以下命令是放行80和443端口

firewall-cmd --zone=public --add-port=80/tcp --permanent
firewall-cmd --zone=public --add-port=443/tcp --permanent
firewall-cmd --reload

现在从浏览器输入你的IP地址,应该已经成功使用上nginx,我的网页效果如下

Hello, World!

互联网不是法外之地

感谢请我吃辣条
感谢请我吃泡面
感谢请我喝奶茶
  • wechat_img
此作者没有提供个人介绍
最后更新于 2023-05-01