nginx的反向代理配置
在安装nginx时出现错误。
"/etc/nginx/nginx.conf" failed (2: No such file or directory)
如果被告知没有配置文件,就将它们全部删除并重新安装。
sudo apt-get remove --purge nginx nginx-full nginx-common
sudo apt-get sintall nginx
反向代理配置
将Apache的端口更改
#listen 80
listen 8080
更改文档根目录
#好きなところに変更
DocumentRoot:/var/www/html
修改Apache虚拟主机的端口
#<VirtualHost *:80>
<VirtualHost *:8080>
在Nginx中配置反向代理。
server {
listen 80; # ポート番号80番でアクセスされたら
server_name localhost; # http://localhost でアクセスされたら
location / {
proxy_pass http://127.0.0.1:8080; # どこにアクセスさせるか
proxy_redirect off;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-Host $host;
proxy_set_header X-Forwarded-Server $host;
proxy_set_header X-Forwarded-Proto $scheme;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
}
}
nginx的配置检查命令
请检查上述配置文件中是否存在语法错误。
sudo nginx -t
nginx: [emerg] could not build server_names_hash, you should increase server_names_hash_bucket_size: 32
nginx: configuration file /etc/nginx/nginx.conf test failed
因为服务器名称被说成太长了,所以下面做修正。
http{
...
#このコメントを外す
server_names_hash_bucket_size 64;
...
}
然后进行检查
$ sudo nginx -t
nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
nginx: configuration file /etc/nginx/nginx.conf test is successful
这样就可以了
在发生问题时可能有用的命令
检查nginx配置的命令
sudo nginx -t
确认正在运动的命令。
ps aux | grep [動いているか確認したキーワード]
端口检查
#80番ポートが何に使用されているか
lsof -i:80
请参考
-
- Nginxのリーバスプロキシ化(Apacheと共存)
- nginxでサーバ名が長いって怒られた