部署环境(博主): Linx环境:CenterOS——64位——8.2版本
参考文献: 1、CetnerOS8安装Nginx 2、Centeros下Nginx安装与配置
一、Nginx前置环境
(1)安装依赖包,使用yum工具安装。
yum -y install gcc make zlib-devel pcre pcre-devel openssl-devel
(2)首先我们需要添加一个名为“admin”的用户(名称自定义,在此篇文章内我使用的时admin)
useradd admin
//设置密码
passwd admin
然后我们需要给予admin用户sudo的权限,用户的sudo权限的文件保存在/etc/sudoers里面,使用vim或者vi打开这个文件; 注意:这里需要root用户或具有root权限的用户才能操作这个文件,因此在操作这个文件的时候需要保证自己是root用户,可以使用whoami命令查看自己的身份,如果自己不是root用户需要使用su命令切换到root用户;
vim /etc/sudoers
//打开之后是这样子,然后按” i “进入编辑状态,然后进行编辑,编辑完毕后,按” esc “进行退出编辑状态,然后按” :wq! “进行强制保存并退出。
(3)然后切换到admin用户的目录:
cd /home/admin
二、Nginx安装
(1)现在开始下载nginx源包,使用wget工具下载。
wget http://nginx.org/download/nginx-1.6.3.tar.gz
(2)如果执行这一步的时候出现了”命令不存在”之类的错误信息,可能是因为wget工具未安装,需要使用yum工具安装一下wget工具。
yum -y install wget
(3)此时admin的目录中会有一个名为nginx-1.6.3.tar.gz的压缩文件,切换到admin用户并解压这个文件。
su - admin
tar -xvf nginx-1.6.3.tar.gz
(4)解压之后会有一个名为nginx-1.6.3的目录文件,我们更改一下nginx-1.6.3及其子文件的属主和属组,”admin:admin”记得修改为自己的用户名和密码。
chown -R admin:admin nginx-1.6.3
(5)更改成功之后进入这个文件。
cd nginx-1.6.3
(6)执行配置命令。
./configure
(7)接下来编译文件,编译成功后,可以看到一个Makefile文件。
make
//一般在这里会出现问题,下面给出问题截图和解决方法:
7.1:
问题原因:不知道 解决方法:进入到nginx-1.6.3目录下(解压的目录) 找到当前目录下找到objs文件夹,并进入,打开文件Makefile。
vim objs/Makefile
//然后按” i “进入编辑状态,然后进行编辑(-Werror: gcc将所有的警告当成错误进行处理把这行内容中的 “-Werror”去掉),编辑完毕后,按” esc “进行退出编辑状态,然后按” :wq! “进行强制保存并退出。
7.2:错误原因:不知道
解决方法:编辑这个文件
vim /home/admin/nginx-1.6.3/src/os/unix/ngx_user.c
//把这一行注释掉(35行左右),使用 “# 正文 #”进行注释。
(8)重新执行编译命令,一般不会出问题了。
make
(9)执行编译安装,即也就是将编译的文件,拷贝到指定的目录。(把/nginx-1.4.4目录下的文件拷贝到/usr/local/nginx/)。一般需要自己在local新建【nginx】文件夹,然后切换到此文件夹,也可以直接使用一下方法。
因为需要在其它文件夹下创建文件夹,所以直接编写安装会报错,所以需要采用sudo方式安装。
sudo make install
(10)启动nginx服务器,启动命令需要使用sudo完成。
sudo /usr/local/nginx/sbin/nginx
(11)测试nginx服务器是否可用:访问服务器地址的80端口,确定是否能打开”welcome”页面。发现此时无法访问到欢迎界面(本机除外),原因是centos本地防火墙对外未打开80端口,需要在本地防火墙中将该端口打开。使用以下命令。
sudo firewall-cmd --zone=public --add-port=80/tcp --permanent
sudo firewall-cmd --reload
(12)此时再访问centos的80端口,就可查看到欢迎界面了。
三、Nginx配置(进行反向代理)
(1)找到Nginx的配置文件,在【/usr/local/nginx/conf/】目录,编辑【nginx.conf】文件。
(2)可以输入以下命令进行编辑:然后按” i “进入编辑状态,然后进行编辑,编辑完毕后,按” esc “进行退出编辑状态,然后按” :wq! “进行强制保存并退出。
vim /usr/local/nginx/conf/nginx.conf
//可以按照以下格式进行修改:
(3)修改之后,查看Nginx配置文件间是否有效。
/usr/local/nginx/sbin/nginx -t
(4)如果没问题,输入以下命令进行重启即可。
/usr/local/nginx/sbin/nginx -s reload
四、如何进行二级域名反向代理?
(1)在域名解析中添加一条记录值,博主是在腾讯云中购买的域名。
(2)然后在Nginx的配置文件中进行反向代理。
server
{
listen 80;
server_name xxx.xxx.cn;
location / {
proxy_redirect off;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_pass http://xxx.xx.xx.xx:xxxx/;
}
access_log /var/log/nginx/dev-trainmobile-yingtongscf-com.log;
}
五、例子:配置文件
# 配置虚拟主机的相关参数,一个http中可以有多个server。
#【配置80默认端口】
server {
listen 80; #监听端口
server_name xxx.cn; #监听地址
#charset koi8-r;
#access_log logs/host.access.log main;
location / {
root html; #根路径
index index.html index.htm; #设置默认页面
}
#error_page 404 /404.html;
# redirect server error pages to the static page /50x.html
#
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root html;
}
# proxy the PHP scripts to Apache listening on 127.0.0.1:80
#
#location ~ \.php$ {
# proxy_pass http://127.0.0.1;
#}
# pass the PHP scripts to FastCGI server listening on 127.0.0.1:9000
#
#location ~ \.php$ {
# root html;
# fastcgi_pass 127.0.0.1:9000;
# fastcgi_index index.php;
# fastcgi_param SCRIPT_FILENAME /scripts$fastcgi_script_name;
# include fastcgi_params;
#}
# deny access to .htaccess files, if Apache's document root
# concurs with nginx's one
#
#location ~ /\.ht {
# deny all;
#}
}
#【配置GitLab】
server
{
listen 80;
server_name xxx.xxx.cn;
location / {
proxy_redirect off;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_pass http://xxx.xxx.xxx.xxx:xxx/;
}
access_log /var/log/nginx/dev-trainmobile-yingtongscf-com.log;
}
#【配置Blog后端管理系统】
server
{
listen 80;
server_name xxx.xxx.cn;
location / {
root html; #根路径
index index.html index.htm; #设置默认页面
}
access_log /var/log/nginx/dev-trainmobile-yingtongscf-com.log;
}