Nginx安装配置
1.Deepin安装卸载Nginx
(1) 参考文章1中,使用apt安装。
1 | ## 安装 |
1.如何在Ubuntu 18.04上安装Nginx
2.Ubuntu 16.04安装Nginx
3.CentOS7设置nginx开机自启动 (这里有如何使用systemctl控制管理nginx的开机启动)
(2) 卸载nginx
1 | ## 停止nginx |
再次使用dpkg,查看nginx相关文件,然后使用autoremove卸载其他相关文件。
1 | sudo apt-get autoremove |
2.CentOS编译安装
1 | ## 安装依赖 |
出现这个情况,我还以为是安装失败了呢
1.nginx 免安装包
2.nginx 免安装包
3.CentOS 7 源码编译安装 Nginx
4.Linux下源码安装nginx-1.9.11
5.Nginx —— configure的命令参数(nginx编译选项) (这里有配置文件的默认值)
6.nginx编译安装与模块配置
7.Nginx源码安装和yum安装对比
8. Linux下编译安装PCRE库
9.linux上安装Openssl步骤详解 这里是编译安装的过程
【10】.Nginx 源码编译安装与运行 这里的依赖包通过在线安装的方式进行了安装
问题
(1) ./configure: error: SSL modules require the OpenSSL library.You can either do not enable the modules, or install the OpenSSL library into the system, or build the OpenSSL library statically from the source with nginx by using –with-openssl=
在我执行离线安装的时候,出现了这个问题,因为我的Openssl 不是通过 yum执行安装的。
【解决方法】
解决方法就是通过yum安装 Openssl,但是因为是离线状态,没法使用yum怎么办呢?那就是下载 openssl 源码包,然后在 configure 的时候指定交易源码包的位置,比如我的openssl源码包:/home/soft/soft/nginx/openssl-1.1.1g,那么我就可以 修改配置文件:
1 | ./configure \ |
1.解决方案:./configure: error: SSL modules require the OpenSSL library.
2.Nginx 编译报错:SSL modules require the OpenSSL library 这里的相关文件给出了参考文章4,倒是非常的有用。
3.[undefined reference to `BIO_f_zlib’](https://blog.csdn.net/weixin_42806458/article/details/110678710)
4.openresty:已经安装了openssl,但是执行 ./configure时还是一直报:./configure: error: SSL modules require the OpenSSL library. 这篇文章给了解决方法
3.使用systemctl管理
编译安装之后,是无法直接使用systemctl管理nginx服务的,只能使用 /usr/local/nginx/sbin/nginx 命令加上参数进行管理和启动。如果非要使用 systemctl 进行管理,进入/ usr/lib/systemd/system 目录,新建nginx.service文件(vi /usr/lib/systemd/system/nginx.service),内容如下:(内容的具体含义可以查看参考文章)
1 | [Unit] |
执行启动停止命令:
1 | ## 停止 |
1.NGINX使用systemctl管理
4.查找nginx安装位置
(1) 在linux上配置nginx,需要首先知道nginx的安装位置,
手动编译安装的一般是/usr/local/nginx路径下。使用apt安装的时,配置文件的路径可能就不一样
apt安装:
1 | /usr/sbin/nginx:主程序 |
yum安装:
1 | Nginx配置路径:/etc/nginx/ |
事实上,只需知道Nginx配置路径,其他路径均可在/etc/nginx/nginx.conf 以及/etc/nginx/conf.d/default.conf 中查询到。
(2) 如果找不到,就用:find /|grep nginx.conf 命令查找看看。
(3) 还可以查看nginx启动进程,然后通过启动的进程查看配置文件,第一条命令:netstat -tnlp|grep nginx,获取到进程号后,在使用第二条命令:ps -aux |grep 进程号,同样也可以查找到nginx所使用的配置文件,及其安装路径。
1.ubuntu安装nginx及其默认目录结构
2.记录使用yum安装nginx之后的目录问题
3.nginx服务器详细安装过程(使用yum 和 源码包两种安装方式,并说明其区别) yum 安装是在线安装,好处是:安装方式简单,不易出错;源码包 安装是先将 nginx 的源码下载下来,在自己的系统里编译生成可执行文件,然后执行,好处是:因为是在自己的系统上编译的,更符合自己系统的性能,也就是说在自己的系统上执行 nginx 服务性能效率更好。
5.403 Forbidden
打开nginx之后,访问网站,总是提示Forbidden权限错误。
解决方法:
(1) 查看nginx启动用户
1 | ps aux | grep "nginx: worker process" | awk '{print $1}' |
使用sudo启动nginx服务的时候,用户应该是root,所以,需要修改/etc/nginx/nginx.conf(手动安装的时候就找相应的配置文件),将第一行的user www-data
改为user root
(2) 另一个需要注意的地方就是,如果nginx.conf配置文件中没有配置index index.html
这种默认文档,就需要写html的全路径,比如:http://localhost/test/test.html。如果设置了默认文档,就可以输入:http://localhost/test/
【1】.解决Nginx出现403 forbidden (13: Permission denied)报错的四种方法
【2】.fixing 403 forbidden nginx errors
【3】.解决Nginx出现403 forbidden (13: Permission denied)报错的四种方法 一、由于启动用户和nginx工作用户不一致所致;二、缺少index.html或者index.php文件;三、权限问题,如果nginx没有web目录的操作权限,也会出现403错误;四、SELinux设置为开启状态(enabled)的原因。
6.Windows安装
1 | ## 进入下载安装目录 |
1.Windows下kill Nginx所有进程
2.Windows下Nginx的启动、停止、重启等命令 这里写的很详细了,nginx.exe -s reload
3. Windows下Nginx的安装及开机启动
问题
(1) “proxy_pass” cannot have URI part in location given by regular expression, or inside named location, or inside “if” statement, or inside “limit_except” block in /etc/nginx/sites-enabled/default:91
nginx中的配置
根据参考文章3中的意思,就是如果location包含了正则表达式,则 “proxy_pass”不能包含URI part(shop_goods),也就是端口后面不能有斜杠之后的东西。
1.proxy_pass
2.“proxy_pass” cannot have URI part in location given by regular expression
3.nginx “proxy_pass” cannot have URI part in location given by regular expression
4.记我配置Nginx代理的遭遇
(2) error: this statement may fall through [-Werror=implicit-fallthrough=]
在Docker容器中,进行编译安装的时候,进行make的时候,出现了错误:
【解决方法】
在进行make的时候,加上参数
1 | make CFLAGS='-Wno-implicit-fallthrough' |
【终极解决方案】
原来是我nginx版本过低,我下载了1.10.1版本,而gcc版本是8,所以找最新的nginx 1.20.1就可以了。
1.linux下编译nginx1.0.15报错:Implicit fallthrough error gcc版本问题,有这几种解决方法:更换gcc版本,具体是升级还是降级还需测试;在报错的switch-case块中加上break。此时要对代码逻辑理解清楚,否则加上break有可能会破坏原来的逻辑; 编译时忽略Implicit fallthrough error这个错误。
2.报错解决:error: this statement may fall through [-Werror=implicit-fallthrough=] make CFLAGS=’-Wno-implicit-fallthrough’
3.Error: this statement may fall through [-Werror=implicit-fallthrough=] You should add keyword break to each case statement, if you don’t do that, the code will run from case which it matches condition and continue to meet the.您应该在每个 case 语句中添加关键字 break,如果不这样做,代码将从与条件匹配的 case 运行并继续满足