服务器学习心得


nginx 1.8 源码包安装

<ul> <li>操作系统为:CentOS7</li> </ul> <h2>1-参考网址</h2> <h4>1--nginx在centos上安装</h4> <ul> <li><a href="http://zyan.cc/nginx_php_v5/">http://zyan.cc/nginx_php_v5/</a></li> </ul> <h4>2--nginx源码包安装</h4> <ul> <li><a href="https://www.cnblogs.com/uniquemelody/p/12956523.html">https://www.cnblogs.com/uniquemelody/p/12956523.html</a></li> </ul> <h4>3--Linux下nginx源码包安装</h4> <ul> <li><a href="https://blog.csdn.net/tyro_blog/article/details/51484507">https://blog.csdn.net/tyro_blog/article/details/51484507</a></li> </ul> <h4>4--Nginx源码安装的方法步骤</h4> <ul> <li><a href="https://www.jb51.net/article/142431.htm">https://www.jb51.net/article/142431.htm</a></li> </ul> <h2>2-查看操作系统要求</h2> <ul> <li>uname -a</li> <li>要求内核为linux2.6及以上版本的操作系统</li> </ul> <h4>1--是否有nginx用户</h4> <pre><code class="language-bash">compgen -u | grep nginx</code></pre> <h4>2--源码包方式安装,默认是没有nginx用户</h4> <pre><code class="language-bash">useradd nginx</code></pre> <h4>3-安装nginx所依赖的软件</h4> <pre><code class="language-bash">yum install -y gcc gcc-c++ pcre pcre-devel zlib zlib-devel openssl openssl-devel</code></pre> <h4>4-准备安装nginx所需要的目录</h4> <h5>1--源代码存放目录</h5> <p>​ 放置源码文件,已及第三方或我们自己写的模块源代码文件</p> <h5>2--编译阶段产生的中间文件存放的目录</h5> <p>​ 放置在configure命令执行后所生成的源文件及目录,以及make命令执行后生成的目标文件和最终连接成功的二进制文件。</p> <p>​ 默认情况下,configure命令会将该目录命名为objs,并放在nginx源代码目录下。</p> <h5>3--部署目录</h5> <p>​ 存放实际nginx服务运行期间所需要的二进制文件,配置文件等。</p> <p>​ 默认情况下该目录为,/usr/local/nginx </p> <h5>4--日志文件存放目录</h5> <p>​ 日志文件通常比较大,研究nginx底层架构时,需要打开debug级别的日志,这个级别的日志非常详细,会导致日志文件大小增长的极快, ​ 需要预先分配一个拥有更大磁盘空间的目录。</p> <h5>5--创建目录结构</h5> <pre><code>/opt/nginx 放置nginx相关软件目录 /opt/nginx/download下载nginx源码包存放目录 /opt/nginx/program 安装目录 /opt/nginx/bin 启动目录 /opt/nginx/log 日志目录 /opt/nginx/log/error 错误日志目录 /opt/nginx/openssl_1.0.2 安装相关目录也只可以不用创建,采用nginx安装默认目录</code></pre> <h4>5-Linux内核参数优化</h4> <p>​ 根据实际情况,自行判断是否需要参数优化</p> <h4>6-获取nginx源码</h4> <pre><code class="language-bash"># 1--进入创建好的nginx目录 cd /opt/nginx/download # 2--下载 wget http://nginx.org/download/nginx-1.18.0.tar.gz # 查看下载文件 ll # 显示 nginx-1.18.0.tar.gz # 3--解压 tar -zxvf nginx-1.18.0.tar.gz # 显示 nginx-1.18.0 cd nginx-1.18.0 </code></pre> <h5>7-配置</h5> <h5>1--查看configure安装参数</h5> <pre><code class="language-bash">./configure --help</code></pre> <h5>2--进行配置</h5> <p>​ 1、采用不指定具体相关安装目录,nginx安装会自动默认相关目录,直接执行configure就行 ​ 如: ./configure ​ 2、采用默认安装比较方便</p> <pre><code class="language-bash">./configure --prefix=/opt/nginx/program --sbin-path=/opt/nginx/bin --error-log-path=/opt/nginx/log/error --http-log-path=/opt/nginx/log --with-openssl=/opt/nginx/openssl_1.0.2 --with-http_ssl_module # ./configure --prefix=安装目录 --sbin-path=启动目录 --error-log-path=错误日志目录 --http-log-path=日志目录</code></pre> <h5>3--出现错误</h5> <p>​ 报错 make: *** 没有指明目标并且找不到makefile ​ 参考网址:<a href="https://blog.csdn.net/kakak2000/article/details/105735630">https://blog.csdn.net/kakak2000/article/details/105735630</a></p> <pre><code class="language-bash"># 1、安装pcre的库不能使用原因导致,需要手动下载pcre源码包安装 yum install pcre # 2、下载pcre源码包 wget https://ftp.pcre.org/pub/pcre/pcre-8.44.tar.bz2 # 3、查看下载文件 ll # 显示 pcre-8.44.tar.bz2 # 4、安装bzip2 yum install -y bzip2 # 5、解压 tar -xjf pcre-8.44.tar.bz2 # 6、进入目录 cd pcre-8.44 # 7、配置 ./configure # 8、编译并安装 make &amp;&amp; make install</code></pre> <h4>8-编译</h4> <pre><code class="language-bash">make # 1--查看编译后的相关文件 ls -rlt # 2--查看Makefie less Makefie</code></pre> <h4>9-安装</h4> <pre><code class="language-bash">make install # 查看安装成功的相关文件 ls -rlt</code></pre> <h4>10-二进制启动程序</h4> <pre><code class="language-bash">/usr/local/nginx/sbin/nginx -V # 1--查看nginx是否启动 netstat -anpt | grep nginx ps -ef | grep nginx # 2--启动服务 /usr/local/nginx/sbin/nginx # 3--停止服务 /usr/local/nginx/sbin/nginx -s stop # 4--重启服务 /usr/local/nginx/sbin/nginx -s reload</code></pre> <h4>11-不能直接使用nginx命令</h4> <p>出现问题:nginx 未找到命令</p> <pre><code class="language-bash"># 1--编辑环境变量 # 1、vi /etc/profile # 2、添加环境变量 PATH=$PATH:/usr/local/nginx/sbin/ export PATH # 2--重新加载环境 source /etc/profile # 3--验证 # 1、命令行验证 nginx -V ps aux | grep nginx 或者 pstree | grep nginx # 如果pstree命令不管用,请安装 psmisc yum install psmisc -y curl -I http://127.0.0.1 # 2、浏览器验证 # 通过ip或者域名,在浏览器地址输入,看看是否访问成功 # http://192.168.32.128/</code></pre> <h4>12-使用systemctl工具管理Nginx</h4> <h5>1--建立服务文件</h5> <pre><code class="language-bash">vi /usr/lib/systemd/system/nginx.service</code></pre> <h5>2--填写内容</h5> <pre><code class="language-shell">[Unit] Description=The nginx HTTP and reverse proxy server After=syslog.target network.target remote-fs.target nss-lookup.target [Service] Type=forking ExecStart=/usr/local/nginx/sbin/nginx ExecReload=/usr/local/nginx/sbin/nginx -s reload ExecStop=/usr/local/nginx/sbin/nginx -s quit PrivateTmp=true [Install] WantedBy=multi-user.target</code></pre> <h5>3--填写内容说明</h5> <blockquote> <p>Description: 描述服务 After: 描述服务类别 [Service] 服务运行参数的设置 Type=forking 是后台运行的形式 ExecStart 为服务的具体运行命令 ExecReload 为重启命令 ExecStop 为停止命令 PrivateTmp=True 表示给服务分配独立的临时空间 注意: [Service] 的启动、重启、停止命令全部要求使用绝对路径 [Install] 运行级别下服务安装的相关设置,可设置为多用户,即系统运行级别为3</p> </blockquote> <h5>4--加入开机启动</h5> <pre><code class="language-bash">systemctl enable nginx.service</code></pre> <h5>5--参考网址</h5> <p>​ centos7 nginx开启启动 ​ <a href="https://www.cnblogs.com/liqing1009/p/7772395.html">https://www.cnblogs.com/liqing1009/p/7772395.html</a></p> <h5>6--常用命令</h5> <pre><code class="language-bash"># 1、启动nginx服务 systemctl start nginx.service # 2、设置开机自启动 systemctl enable nginx.service # 3、停止开机自启动 systemctl disable nginx.service # 4、查看服务当前状态 systemctl status nginx.service # 5、重新启动服务 systemctl restart nginx.service # 6、查看所有已启动的服务 systemctl list-units --type=service # 7、停止启动 systemctl stop nginx.service</code></pre>

页面列表

ITEM_HTML