部署环境(博主): Linx环境:CenterOS——64位——8.2版本

参考文献: 1、CetnerOS8安装Nginx 2、Centeros下Nginx安装与配置

一、Nginx前置环境

(1)安装依赖包,使用yum工具安装。

  1. yum -y install gcc make zlib-devel pcre pcre-devel openssl-devel

(2)首先我们需要添加一个名为“admin”的用户(名称自定义,在此篇文章内我使用的时admin)

  1. useradd admin

//设置密码

  1. passwd admin

然后我们需要给予admin用户sudo的权限,用户的sudo权限的文件保存在/etc/sudoers里面,使用vim或者vi打开这个文件; 注意:这里需要root用户或具有root权限的用户才能操作这个文件,因此在操作这个文件的时候需要保证自己是root用户,可以使用whoami命令查看自己的身份,如果自己不是root用户需要使用su命令切换到root用户;

  1. vim /etc/sudoers

//打开之后是这样子,然后按” i “进入编辑状态,然后进行编辑,编辑完毕后,按” esc “进行退出编辑状态,然后按” :wq! “进行强制保存并退出。
image.png

(3)然后切换到admin用户的目录:

  1. cd /home/admin

二、Nginx安装

(1)现在开始下载nginx源包,使用wget工具下载。

  1. wget http://nginx.org/download/nginx-1.6.3.tar.gz

(2)如果执行这一步的时候出现了”命令不存在”之类的错误信息,可能是因为wget工具未安装,需要使用yum工具安装一下wget工具。

  1. yum -y install wget

(3)此时admin的目录中会有一个名为nginx-1.6.3.tar.gz的压缩文件,切换到admin用户并解压这个文件。

  1. su - admin
  2. tar -xvf nginx-1.6.3.tar.gz

(4)解压之后会有一个名为nginx-1.6.3的目录文件,我们更改一下nginx-1.6.3及其子文件的属主和属组,”admin:admin”记得修改为自己的用户名和密码。

  1. chown -R admin:admin nginx-1.6.3

(5)更改成功之后进入这个文件。

  1. cd nginx-1.6.3

(6)执行配置命令。

  1. ./configure

(7)接下来编译文件,编译成功后,可以看到一个Makefile文件。

  1. make

//一般在这里会出现问题,下面给出问题截图和解决方法:
7.1:
image.png

问题原因:不知道 解决方法:进入到nginx-1.6.3目录下(解压的目录) 找到当前目录下找到objs文件夹,并进入,打开文件Makefile。

  1. vim objs/Makefile

//然后按” i “进入编辑状态,然后进行编辑(-Werror: gcc将所有的警告当成错误进行处理把这行内容中的 “-Werror”去掉),编辑完毕后,按” esc “进行退出编辑状态,然后按” :wq! “进行强制保存并退出。
image.png

7.2:错误原因:不知道
解决方法:编辑这个文件

  1. vim /home/admin/nginx-1.6.3/src/os/unix/ngx_user.c

//把这一行注释掉(35行左右),使用 “# 正文 #”进行注释。
image.png

(8)重新执行编译命令,一般不会出问题了。

  1. make

(9)执行编译安装,即也就是将编译的文件,拷贝到指定的目录。(把/nginx-1.4.4目录下的文件拷贝到/usr/local/nginx/)。一般需要自己在local新建【nginx】文件夹,然后切换到此文件夹,也可以直接使用一下方法。
image.png
因为需要在其它文件夹下创建文件夹,所以直接编写安装会报错,所以需要采用sudo方式安装。

  1. sudo make install

(10)启动nginx服务器,启动命令需要使用sudo完成。

  1. sudo /usr/local/nginx/sbin/nginx

(11)测试nginx服务器是否可用:访问服务器地址的80端口,确定是否能打开”welcome”页面。发现此时无法访问到欢迎界面(本机除外),原因是centos本地防火墙对外未打开80端口,需要在本地防火墙中将该端口打开。使用以下命令。

  1. sudo firewall-cmd --zone=public --add-port=80/tcp --permanent
  2. sudo firewall-cmd --reload

(12)此时再访问centos的80端口,就可查看到欢迎界面了。
image.png

三、Nginx配置(进行反向代理)

(1)找到Nginx的配置文件,在【/usr/local/nginx/conf/】目录,编辑【nginx.conf】文件。
image.png

(2)可以输入以下命令进行编辑:然后按” i “进入编辑状态,然后进行编辑,编辑完毕后,按” esc “进行退出编辑状态,然后按” :wq! “进行强制保存并退出。

  1. vim /usr/local/nginx/conf/nginx.conf

//可以按照以下格式进行修改:
image.png

(3)修改之后,查看Nginx配置文件间是否有效。

  1. /usr/local/nginx/sbin/nginx -t

image.png

(4)如果没问题,输入以下命令进行重启即可。

  1. /usr/local/nginx/sbin/nginx -s reload

四、如何进行二级域名反向代理?

(1)在域名解析中添加一条记录值,博主是在腾讯云中购买的域名。
image.png
(2)然后在Nginx的配置文件中进行反向代理。
image.png

  1. server
  2. {
  3. listen 80;
  4. server_name xxx.xxx.cn;
  5. location / {
  6. proxy_redirect off;
  7. proxy_set_header Host $host;
  8. proxy_set_header X-Real-IP $remote_addr;
  9. proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
  10. proxy_pass http://xxx.xx.xx.xx:xxxx/;
  11. }
  12. access_log /var/log/nginx/dev-trainmobile-yingtongscf-com.log;
  13. }

五、例子:配置文件

  1. # 配置虚拟主机的相关参数,一个http中可以有多个server。
  2. #【配置80默认端口】
  3. server {
  4. listen 80; #监听端口
  5. server_name xxx.cn; #监听地址
  6. #charset koi8-r;
  7. #access_log logs/host.access.log main;
  8. location / {
  9. root html; #根路径
  10. index index.html index.htm; #设置默认页面
  11. }
  12. #error_page 404 /404.html;
  13. # redirect server error pages to the static page /50x.html
  14. #
  15. error_page 500 502 503 504 /50x.html;
  16. location = /50x.html {
  17. root html;
  18. }
  19. # proxy the PHP scripts to Apache listening on 127.0.0.1:80
  20. #
  21. #location ~ \.php$ {
  22. # proxy_pass http://127.0.0.1;
  23. #}
  24. # pass the PHP scripts to FastCGI server listening on 127.0.0.1:9000
  25. #
  26. #location ~ \.php$ {
  27. # root html;
  28. # fastcgi_pass 127.0.0.1:9000;
  29. # fastcgi_index index.php;
  30. # fastcgi_param SCRIPT_FILENAME /scripts$fastcgi_script_name;
  31. # include fastcgi_params;
  32. #}
  33. # deny access to .htaccess files, if Apache's document root
  34. # concurs with nginx's one
  35. #
  36. #location ~ /\.ht {
  37. # deny all;
  38. #}
  39. }
  40. #【配置GitLab】
  41. server
  42. {
  43. listen 80;
  44. server_name xxx.xxx.cn;
  45. location / {
  46. proxy_redirect off;
  47. proxy_set_header Host $host;
  48. proxy_set_header X-Real-IP $remote_addr;
  49. proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
  50. proxy_pass http://xxx.xxx.xxx.xxx:xxx/;
  51. }
  52. access_log /var/log/nginx/dev-trainmobile-yingtongscf-com.log;
  53. }
  54. #【配置Blog后端管理系统】
  55. server
  56. {
  57. listen 80;
  58. server_name xxx.xxx.cn;
  59. location / {
  60. root html; #根路径
  61. index index.html index.htm; #设置默认页面
  62. }
  63. access_log /var/log/nginx/dev-trainmobile-yingtongscf-com.log;
  64. }