Liunx 安装nginx详细教程
一、依赖环境安装
要安装 nginx,要先安装 nginx 的依赖环境:gcc-c++、openssl、pcre、zlib
1.安装 gcc-c++ 编译器和 openssl
yum install gcc-c++
yum install -y openssl openssl-devel
2.安装 pcre 包
yum install -y pcre pcre-devel
3.再安装 zlib 包
yum install -y zlib zlib-devel
二、Nginx 安装
1.在 /usr/local/ 目录下创建 nginx 文件夹
cd /usr/local
mkdir nginx
- 使用 wget 命令直接下载 nginx 安装包,也可以直接上传下载好的压缩包
wget https://nginx.org/download/nginx-1.14.0.tar.gz
- 解压并进入解压好的目录
tar -zxvf nginx-1.14.0.tar.gz
cd nginx-1.14.0/
- 使用 nginx 默认配置
./configure
- 编译安装
make
make install
如编译报错,见三、安装过程中错误处理
如果没有报错,那么你的 /usr/local/nginx目录会多些除了红框之外的东西如下
此时,说明 nginx 已经安装成功,可以启动了
- 进入 目录执行启动命令
/usr/local/nginx/sbin
./nginx
- 进入 目录执行启动命令
ps -ef | grep nginx
网页上访问自己的 ip 地址端口为 80 ,会出现下图欢迎页
nginx 安装完成
三、安装过程中的错误处理
上面安装过程的’5. 编译安装’可能会出现如下错误
1.错误一:服务器系统版本高或者 nginx 版本高
解决办法:
在nginx安装文件夹/usr/local/nginx/nginx-1.14.0下输入
vim src/os/unix/ngx_user.c
注释掉红框中的代码然后保存退出重新 make 即可。
2.错误二:
解决办法:
打开 vim objs/Makefile 把 -Werrori删掉 (-Werror,它要求GCC将所有的警告当成错误进行处理)
四、Nginx配置https
1.打开nginx配置文件
vim /usr/local/nginx/conf/nginx.conf
添加以下红框==include vhost/*.conf;==后,当服务器启动时候,会读取配置信息,然后将当前conf目录下,.conf作为后缀的配置文件读取进去,进行配置。
2.创建nginx配置文件夹
mkdir cert
mkdir vhost
3.进入vhost文件夹,创建.conf文件,添加nginx配置信息
/web/www/zsyq/admin为项目静态页面地址,根据自身情况配置创建
配置1(https)
server {
listen 443 ssl;
listen 80;
server_name xxx.com; #项目绑定的域名
ssl_certificate /usr/local/nginx/conf/cert/xxx.com.pem;
ssl_certificate_key /usr/local/nginx/conf/cert/xxx.key;
location / {
root /web/www/zsyq/admin;
index index.html index.htm;
try_files $uri $uri/ /index.html;
client_max_body_size 1024M;
client_body_buffer_size 2m; #缓冲区代理缓冲用户端请求的最大字节数,人话:一次能接受多少文件,建议根据带宽上限设置,减少磁盘读写,加快速度
proxy_connect_timeout 5m; #nginx跟后端服务器连接超时时间(代理连接超时),这个看需求
proxy_read_timeout 5m; #连接成功后,后端服务器响应时间(代理接收超时),这个 同上
proxy_send_timeout 5m;
}
location /prod-api/ {
proxy_set_header Host $http_host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header REMOTE-HOST $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_pass http://127.0.0.1:8080/;
}
}
配置2(http)
server
{
listen 80;
server_name xxx.com;
index index.html;
root /web/www/zsyq/admin;
client_max_body_size 1024M;
client_body_buffer_size 2m; #缓冲区代理缓冲用户端请求的最大字节数,人话:一次能接受多少文件,建议根据带宽上限设置,减少磁盘读写,加快速度
proxy_connect_timeout 5m; #nginx跟后端服务器连接超时时间(代理连接超时),这个看需求
proxy_read_timeout 5m; #连接成功后,后端服务器响应时间(代理接收超时),这个 同上
proxy_send_timeout 5m;
location / {
try_files $uri $uri/ /index.html;
}
location /prod-api/ {
proxy_set_header Host $http_host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header REMOTE-HOST $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_pass http://127.0.0.1:8080/;
}
}
五、解决Nginx配置Https缺少SSL模块
#启动nginx
/usr/local/nginx/sbin/nginx
当配置ssl证书后启动报错如下:
证明此时Nginx缺少该模块
1.进入Nginx安装目录
cd /usr/local/nginx/nginx-1.14.0
2.查看Nginx版本号
/usr/local/nginx/sbin/nginx -V
查看configure arguments:后边有没有值,如果有,就复制下来。
3、重新配置SSL模块
./configure --prefix=/usr/local/nginx --with-http_stub_status_module --with-http_ssl_module --原来有的模块(如果有的话)
如果运行之后,最终报错如下:
3.1、下载OpenSSL库(没报错可忽略该步骤)
yum -y install openssl openssl-devel
3.2、配置完成后,运行命令make命令
make
# 注意,此处不能mark install 否则就是覆盖安装
== 如果make过程中出现如下错误:==
vi objs/Makefile 把 -Werrori删掉 (-Werror,它要求GCC将所有的警告当成错误进行处理)
解决错误后重新make
4、 替换已安装好的Nginx包
替换之前先备份:
cp /usr/local/nginx/sbin/nginx /usr/local/nginx/sbin/nginx.bak
先停止Nginx服务
# 停止服务
./usr/local/nginx/sbin/nginx -s stop
将刚刚编译好的nginx覆盖掉原有的nginx
# 在Nginx解压目录下使用以下命令
cp ./objs/nginx /usr/local/nginx/sbin/
# 通过查看版本命令收看是否下载SSL模块成功
/usr/local/nginx/sbin/nginx -V
此时应该显示如下,即配置成功:
5.启动服务即可,命令如下
./usr/local/nginx/sbin/nginx