建议收藏chatGPT说的编译安装nginx教程

写在前面

这个是当下最流行最时髦的AI神器chatGPT和我一起合作写的一篇通用技术文章,请读者笑纳!

chatGPT说

咚咚咚,咚咚咚,嘿嘿;咚咚咚,咚咚咚,嘿嘿;AI等一会,我来发答案,看图!!!

命令演示

首先,从nginx官方网站(https://nginx.org/en/download.html)下载最新的nginx源码包。

这里我们选择Stable version下的1.22.1版本,先下载然后解压源码包,具体步骤如下:

代码语言:txt
复制
wget https://nginx.org/download/nginx-1.22.1.tar.gz
tar -zxvf nginx-1.22.1.tar.gz
cd  nginx-1.22.1

下载的日志如下:

nginx的包解压后是这样子的

接着,安装一些必要的依赖库,执行命令:

代码语言:txt
复制
sudo apt-get install build-essential libpcre3 libpcre3-dev zlib1g zlib1g-dev libssl-dev

再接着,配置nginx,执行命令:

代码语言:txt
复制
./configure --prefix=/usr/local/nginx --with-http_ssl_module

这里的--prefix参数指定了nginx安装的路径,--with-http_ssl_module参数启用了SSL模块。

接下来是编译和安装,执行命令:

代码语言:txt
复制
make
sudo make install

启动nginx, 执行如下命令:

代码语言:txt
复制
cd /usr/local/nginx/sbin
./nginx &

如果没有报错,说明nginx已经成功安装并启动了, 可以通过ps aux | grep nginx查看nignx相关的进程。

接下来,我们要配置nginx的站点,具体如下:

在/usr/local/nginx/conf/目录下创建一个新的配置文件,例如example.conf,并添加以下内容:

代码语言:txt
复制
server {
    listen       80;
    server_name  example.com;
    root         /var/www/example.com;
location / {
    index  index.html index.htm;
}

}

这里的server_name指定了该站点的域名,root指定了站点的根目录,location指定了站点的首页文件。

重启nginx:

代码语言:txt
复制
/usr/local/nginx/sbin/nginx -s reload

这样就完成了nginx的编译和安装,并成功配置了一个站点。

或者你也可以不听它的,直接拷贝一份nginx.conf然后在nginx.conf上面改或者不改也行,默认的html目录在这里

实验拓展

试图改变首页nginx的展示

不想打字,交给AI吧, 就是这么皮,23333333。

一顿复制粘贴,如下:

代码语言:txt
复制
<!DOCTYPE html>
<html>
<head>
<title>我的页面</title>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<link rel="stylesheet" href="style.css">
</head>
<body>
<header>
<nav>
<ul>
<li><a href="#">首页</a></li>
<li><a href="#">关于我们</a></li>
<li><a href="#">产品</a></li>
<li><a href="#">联系我们</a></li>
</ul>
</nav>
<h1>欢迎来到我的页面</h1>
</header>
<main>
<section>
<h2>关于我们</h2>
<p>我们是一家专注于XXX领域的公司,致力于为客户提供优质的XXX服务。</p>
</section>
<section>
<h2>我们的产品</h2>
<ul>
<li>
<h3>产品1</h3>
<p>产品描述</p>
</li>
<li>
<h3>产品2</h3>
<p>产品描述</p>
</li>
<li>
<h3>产品3</h3>
<p>产品描述</p>
</li>
</ul>
</section>
<section>
<h2>联系我们</h2>
<form>
<label for="name">姓名:</label>
<input type="text" id="name" name="name"><br>
<label for="email">邮箱:</label>
<input type="email" id="email" name="email"><br>
<label for="message">留言:</label>
<textarea id="message" name="message"></textarea><br>
<input type="submit" value="提交">
</form>
</section>
</main>
<footer>
<p>版权所有 &copy; 2021</p>
</footer>
</body>
</html>

然后执行nignx -s reload可以看到效果还是很不错的,AI真棒!!!

试图代理个网站看看

我们把问题抛给chatGPT看看答案是什么。

反向代理核心配置代码模板如下:

代码语言:txt
复制
server {
listen 80;
server_name example.com;

location / {
    proxy_pass http://backend-server:8080;
    proxy_set_header Host $host;
    proxy_set_header X-Real-IP $remote_addr;
}

}

负载均衡核心配置代码模板如下:

代码语言:txt
复制
upstream backend {
server backend-server1:8080;
server backend-server2:8080;
}

server {
listen 80;
server_name example.com;

location / {
    proxy_pass http://backend;
    proxy_set_header Host $host;
    proxy_set_header X-Real-IP $remote_addr;
}

}

来看下代理的效果吧,原网页

代理后的,可以看到静态的页面没有问题,然后一些样式脚本可能还需要再配置下

最后,要和谐要文明,我们只支持国产,AI劝退!不过你去GitHub上搜下好像有人专门写了直接作为插件集成到nginx服务里面,可以玩玩看。

以上就是今天的全部内容,希望能在nginx入门的方面帮到你,再见!